MySQL笔记(四)DDL与DML风格参考
便于 COPY
▲ 在所有操作之前:
SET character_set_database=utf8;
确保 ↓
mysql> SHOW VARIABLES LIKE "%char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
▲ 创建数据库:
CREATE DATABASE sql_lab;
▲ 然后创建表:
CREATE TABLE chucang (
chucang_no VARCHAR(12),
enterprise_name VARCHAR(20),
chucang_time DATE,
chucang_type CHAR(1) COMMENT '企业性质,Y 公有,N 私有',
enterprise_address VARCHAR(50),
delivery_car_no VARCHAR(12),
chucang_sum DECIMAL(8,2), PRIMARY KEY(chucang_no) ) ENGINE=INNODB DEFAULT CHARSET=utf8; CREATE TABLE chucang_detail (
chucang_no VARCHAR(12),
product_no VARCHAR(12),
price DECIMAL(8,2),
quantity INT,
total DECIMAL(8,2), FOREIGN KEY (chucang_no)
REFERENCES chucang(chucang_no) ) ENGINE=INNODB DEFAULT CHARSET=utf8;
PS. 别漏掉 DEFAULT CHARSET=utf8
▲ 确认表是否创建:
mysql> SHOW TABLES;
+-------------------+
| Tables_in_sql_lab |
+-------------------+
| chucang |
| chucang_detail |
+-------------------+
2 rows in set (0.01 sec)
▲ 插入数据:
INSERT INTO chucang
(chucang_no,
enterprise_name,
chucang_time,
chucang_type,
enterprise_address,
delivery_car_no,
chucang_sum)
VALUES
('',
'enterprise_a',
'1997-10-11',
'Y',
'????',
'',
0.00),
('',
'enterprise_b',
'1997-10-21',
'Y',
'shanghai',
'',
0.00),
('',
'enterprise_c',
'1997-10-22',
'N',
'beijin',
'',
0.00),
('',
'enterprise_d',
'1997-10-23',
'Y',
'shanghai',
'',
0.00),
('',
'enterprise_e',
'1997-10-24',
'N',
'guangdong',
'',
0.00); INSERT INTO chucang_detail
(chucang_no,
product_no,
price,
quantity,
total)
VALUES
('',
'',
30.5,
20,
0.00),
('',
'',
31.5,
22,
0.00),
('',
'',
40.5,
20,
0.00),
('',
'',
41.5,
20,
0.00),
('',
'',
43.5,
20,
0.00);
▲ 检查数据:
SELECT *
FROM chucang_detail
LIMIT 3\G
▲ 修改表,插入一个新的字段/属性/列:
ALTER TABLE chucang
ADD enterprise_phone CHAR(20);
▲ 检查是否修改成功:
mysql> DESCRIBE chucang;
▲ 更新数据:
UPDATE chucang_detail
SET total = quantity * price;
UPDATE chucang x, chucang_detail y
SET x.chucang_sum = y.total
WHERE x.chucang_no = y.chucang_no;
-- 多表示例 ↑ ↓
UPDATE chucang x
SET x.chucang_sum = (
SELECT SUM(total)
FROM chucang_detail y
GROUP BY y.chucang_no
HAVING y.chucang_no = x.chucang_no
)
▲ 最简单的查询:
SELECT chucang_sum
FROM chucang
WHERE chucang_type = 'Y'
▲ 排序:
SELECT chucang_no, enterprise_name
FROM chucang
ORDER BY chucang_no
▲ 子查询:
SELECT chucang_no
FROM chucang_detail
WHERE chucang_no NOT IN (
SELECT chucang_no
FROM chucang
)
▲ 分组过滤 & 聚集函数:
SELECT chucang_type, SUM(chucang_sum)
FROM chucang
GROUP BY chucang_type
HAVING chucang_type = 'Y'
▲ 本题无关,联表查询示例:
SELECT employee_no, employee_name, product_name, quantity, price
FROM employee x
LEFT OUTER JOIN order_master y ON x.employee_no = y.saler_no
LEFT OUTER JOIN order_detail z ON z.order_no = y.order_no
LEFT OUTER JOIN product m ON m.product_no = z.product_no
WHERE (
SELECT COUNT(DISTINCT product_no)
FROM order_master w
LEFT OUTER JOIN order_detail e ON w.order_no = e.order_no
WHERE w.saler_no = x.employee_no) >= 5
ORDER BY employee_no
MySQL笔记(四)DDL与DML风格参考的更多相关文章
- 【MySQL作业】DDL 和 DML——美和易思使用 DML 删除表数据应用习题
点击打开所使用到的数据库>>> 删除客户"刘一鸣". 执行 SQL 代码"delete from customer where cName=' 刘一鸣 ...
- 【MySQL作业】DDL 和 DML——美和易思使用 DML 新增和更新表数据应用习题
点击打开所使用到的数据库>>> 1.添加 easyShopping 客户数据. insert into customer values('abc111','111',' 刘一鸣 ', ...
- 【MySQL作业】DDL 和 DML——美和易思使用 DDL 维护数据库表结构应用习题
点击打开所使用到的数据库>>> 1.使用 DDL 语句修改 easyShopping 商品表 goods 表结构,要求如下: 新增字段生产厂商 manufacturer,它的类型为 ...
- 【MySQL作业】DDL 和 DML——美和易思使用 DDL 定义数据库表结构应用习题
点击打开所使用到的数据库>>> 1.使用 DDL 创建 easyShopping2 数据库. create database easyShopping2 2.使用 DDL 更改 ea ...
- 关于mysql中的DDL,DML,DQL和DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- MySQL笔记总结-DDL语言
DDL语言 数据类型 一.数值型 1.整型 tinyint.smallint.mediumint.int/integer.bigint 1 2 3 4 8 特点: ①都可以设置无符号和有符号,默认有符 ...
- mysql中的DDL,DML,DQL,DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- 【MySQL笔记】数据操纵语言DML
1.数据插入 INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)... 注: 1)如果表中的每一列均有数据插 ...
- mysql列属性auto(mysql笔记四)
常见的的是一个字段不为null存在默认值 没值得时候才去找默认值,可以插入一个null到 可以为null的行里 主键:可以唯一标识某条记录的字段或者字段的集合 主键设置 主键不可为null,声明时自动 ...
随机推荐
- 8.23 js
2018-8-23 15:12:05 js 参考 :https://www.cnblogs.com/liwenzhou/p/8011504.html 2018-8-23 20:56:29 上面js的东 ...
- python----并发编程之IO模型
一:IO模型介绍 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个 ...
- hihocoder 1322 - 树结构判定 - [hiho一下161周][模板题/水题]
题目链接:http://hihocoder.com/problemset/problem/1322 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个包含 N 个顶 ...
- python3学习笔记(4)_function-参数
#python学习笔记 17/07/10 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- import math #函数 函数的 定义 #定义一个求绝对值 ...
- Subsequence---poj3061(尺取法||二分)
题目链接:http://poj.org/problem?id=3061 题意:给n个正整数和一个数S,求出总和不小于S的连续子序列的长度的最小值,如果无解输出0: 我们可以用sum[i]表示前i项的和 ...
- lmathlib文件
lua的math库是通过lua扩展而来,主要对系统math库进行了一次封装,以供lua使用,一般可以从lmathlib文件开始阅读源码. //绝对值 static int math_abs (lua_ ...
- 一致性 hash 算法(转)
add by zhj:介绍了什么是一致性hash,以及实现一致性hash的一种算法. 原文:http://my.oschina.net/u/195065/blog/193614 目录[-] 一致性 h ...
- kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录
1.基本概念 上节在k8s中部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: &q ...
- 010-spring cloud gateway-过滤器-自定义局部、全局过滤器、区别
一.自定义局部过滤器 自定义过滤器需要实现GatewayFilter和Ordered.其中GatewayFilter中的这个方法就是用来实现你的自定义的逻辑的 Mono<Void> fil ...
- Spark2.x学习笔记:Spark SQL快速入门
Spark SQL快速入门 本地表 (1)准备数据 [root@node1 ~]# mkdir /tmp/data [root@node1 ~]# cat data/ml-1m/users.dat | ...