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,声明时自动 ...
随机推荐
- 关于jquery的css的一些知识
Query实例CSS 样式表动态选择本实例主要说的还是jquery的选择器,关于jquery的css的一些知识用类似 $("li").css("cursor", ...
- logstash实战input插件syslog
vim /etc/logstash/conf.d/syslog.conf input{ syslog{ type => "system-syslog" port => ...
- Git之远程仓库
1,注册账号 登录https://github.com注册一个账号 2,上传公钥 本地CentOS使用命令 ssh-keygen -t rsa生成秘钥 复制秘钥输入到github网站 3,新建仓库 4 ...
- 查询ip
ifconfig | grep "inet " | grep -v 127.0.0.1
- Codeforces 349C - Mafia
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- UOJ 145 - 神奇的幻方 - [简单数学题]
题目链接:http://uoj.ac/problem/145 题目描述 幻方是一种很神奇的 N∗N 矩阵:它由数字 1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N ...
- Codeforces Round #439 (Div. 2)
A. The Artful Expedient 题目链接:http://codeforces.com/contest/869/problem/A 题目意思:给你两个数列,各包含n个数,现在让你从上下两 ...
- 网站优化(SEO)的10大误区
前段时间大前端也有关于SEO的文章贡献给广大读者,今日,再发一文,网站优化(SEO)的10大误区.很多新手站长初次接触SEO,感受到SEO 的无穷魅力,想要做一位优秀的SEOer,然而新手朋友在进行S ...
- 洛谷P4424 寻宝游戏 [HNOI/AHOI2018]
正解:思维题 解题报告: 传送门! 这题就是很思维题,,,想到辣实现麻油特别难,但难想到是真的TT 这题主要是要发现一个性质:&1无意义,&0相当于赋值为0,|1无意义,|1相当于赋值 ...
- (3.3)mysql基础深入——mysql启动深入分析
基础:(2.1)学习笔记之mysql基本操作(启动与关闭) 0.mysql启动的 3种方式 (1)mysql.server (2)mysqld_safe (3)mysqld 1.启动分析 [1.1]概 ...