便于 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风格参考的更多相关文章

  1. 【MySQL作业】DDL 和 DML——美和易思使用 DML 删除表数据应用习题

    点击打开所使用到的数据库>>> 删除客户"刘一鸣". 执行 SQL 代码"delete from customer where cName=' 刘一鸣 ...

  2. 【MySQL作业】DDL 和 DML——美和易思使用 DML 新增和更新表数据应用习题

    点击打开所使用到的数据库>>> 1.添加 easyShopping 客户数据. insert into customer values('abc111','111',' 刘一鸣 ', ...

  3. 【MySQL作业】DDL 和 DML——美和易思使用 DDL 维护数据库表结构应用习题

    点击打开所使用到的数据库>>> 1.使用 DDL 语句修改 easyShopping 商品表 goods 表结构,要求如下: 新增字段生产厂商 manufacturer,它的类型为 ...

  4. 【MySQL作业】DDL 和 DML——美和易思使用 DDL 定义数据库表结构应用习题

    点击打开所使用到的数据库>>> 1.使用 DDL 创建 easyShopping2 数据库. create database easyShopping2 2.使用 DDL 更改 ea ...

  5. 关于mysql中的DDL,DML,DQL和DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  6. MySQL笔记总结-DDL语言

    DDL语言 数据类型 一.数值型 1.整型 tinyint.smallint.mediumint.int/integer.bigint 1 2 3 4 8 特点: ①都可以设置无符号和有符号,默认有符 ...

  7. mysql中的DDL,DML,DQL,DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  8. 【MySQL笔记】数据操纵语言DML

    1.数据插入   INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)...   注: 1)如果表中的每一列均有数据插 ...

  9. mysql列属性auto(mysql笔记四)

    常见的的是一个字段不为null存在默认值 没值得时候才去找默认值,可以插入一个null到 可以为null的行里 主键:可以唯一标识某条记录的字段或者字段的集合 主键设置 主键不可为null,声明时自动 ...

随机推荐

  1. NuGet 安装EntityFramework5 历程

    第一步:VS2012中 (据说VS2010还得安装一下NuGet)工具->库程序包管理器->程序包管理器控制台,打开控制台 Install-Package EntityFramework ...

  2. java基础解析系列(六)---注解原理及使用

    java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及 ...

  3. python2和python3的不同

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...

  4. [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  5. CCCC L2-017. 人以群分 贪心

    https://www.patest.cn/contests/gplt/L2-017 题解:贪心,一点小数学 坑:XJB改下标改错了 #include <iostream> #includ ...

  6. HDFS文件上传

    下图描述了Client向HDFS上传一个200M大小的日志文件的大致过程: 1)首先,Client发起文件上传请求,即通过RPC与NameNode建立通讯. 2)NameNode与各DataNode使 ...

  7. php 实现 二维码 扫描登录

    本人简单实现的示例,使用任意二维码工具打开二维码对应链接 http://www.54php.cn/demo1/scan 原理介绍: 第一步:访问登录页面,生成唯一key,例如MkhjDFL=,并且将此 ...

  8. 修改机器名、IP对arcgis server、portal的影响?

    修改机器名.IP是否对ArcGIS Server .Portal等有影响? 请教赛姐:修改IP对ArcGIS Server .Portal 无影响,不过建议将ArcGIS Server .Portal ...

  9. Web Responsive Table, 只需CSS使table在手机和平板中完美显示

    在做responsive或者手机版页面的时候,经常碰到<Table>在手机和平板中会因为长度问题把页面撑大.最近看到一个比较好,比较方便的方法,而且仅仅用CSS 2就可以实现! 实例URL ...

  10. (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析【待写】

    (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析[待写]