便于 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. 9.21 form 和Ajax详解

    form 表单 参考连接  : http://www.cnblogs.com/liwenzhou/p/8747872.html

  2. Python之时间模块

    1,怎么打印时间戳 2,怎么打印日期 3,怎么把字符串转换成python认识的日期 把日期转换成字符串 字符串转换成日期格式 time.strptime("2017-5-16",& ...

  3. 线性DP总结(LIS,LCS,LCIS,最长子段和)

    做了一段时间的线性dp的题目是时候做一个总结 线性动态规划无非就是在一个数组上搞嘛, 首先看一个最简单的问题: 一,最长字段和 下面为状态转移方程 for(int i=2;i<=n;i++) { ...

  4. POJ-1456 Supermarket(贪心,并查集优化)

    Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10725 Accepted: 4688 Descript ...

  5. HDU 2829 - Lawrence - [斜率DP]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 T. E. Lawrence was a controversial figure during ...

  6. MySQL复制原理

    mysql从3.23开始提供复制功能,复制指将主库的ddl和dml操作通过binlog文件传送到从库上执行,从而保持主库和从库数据同步.mysql支持一台主库同时向多台从库复制,从库同时也可以作为其他 ...

  7. css 计算属性 calc的使用

    宽度等于父元素的宽度减去16像素 高度等于父元素的高度减去16像素 注意:100%和16px   与减号之间必须有空格,否则高度会失效!!!! .box{ width:calc(100% - 16px ...

  8. oracle(一)复习起航

    住了三年的宿舍,前几天不得不搬走.也断了好几天网,所以顺手拿了本以前买的<oracle编程艺术>,感觉翻译的书就是有些地方读起来不通顺,好吃力. 还好以前有点oracle经验,不然真看不懂 ...

  9. Win10系统 Eclipse 下'Publishing to Tomcat'has encountered a problem解决办法

    首先贴出来错误: 详情为:Publishing failedCould not publish to the server.There were issues during deployment to ...

  10. 虫师的性能测试思想html网页学习

    http://www.cnblogs.com/fnng/category/387349.html