语言定义
DDL(data definition language数据定义语言):
create创建。drop删除,alter修改
DML(data manipulation language数据操纵语言)
select查询 insert插入 update更新 delete删除
DCL(data control language 数据控制语言)
commit确认变更,rollback取消变更,grant赋予用户操作权限,revoke取消用户操作权限
大小写
关键字不区分大小写,但数据区分大小写Computer COPUTER computer
表中字符串也区分比如,'ABC'和‘aBC'
建议规则:
关键字和表名大小写,其余列名等小写
建表语句
CREATE DATABASE xxx;
CREATE TABLE Product
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
sale_price INTEGER,
regist_date DATE,
PRIMARY KEY (product_id)
);
数据类型:数字/字符/日期
INTEGER 整数
CHAR 字符串 char(8)输入'abc' 会补全5个半角空格变成'abc '
VARCHAR 可变字符串 varchar(8)输入'abc'就是'abc'
DATE 日期
约束
1.NOT NULL
2.主键约束:为取出唯一特定列
表的删除和更新
DROP TABLE Product 删除表,删了无法恢复,要注意
ALTER TABLE Product ADD COLUMN product_name VARCHAR(100);
ALTER TABLE Product DROP COLUMN product_name VARCHAR(100);
屏幕快照 2020-04-18 下午5.25.26.png
屏幕快照 2020-04-18 下午6.45.07.png
第二章
1.select xxx as “中文”,别名可以用中文,但是需要用双引号括起来
2.distinct 会把null也聚合成一条,distinct只能用在第一个列名前面。
3.注释 -- /* */
4.所有包含null的计算结果都是null
选取null不能用 xxx=NULL 要用 is null
5.AND优先于OR,记得加括号
第三章
1.聚合函数会把null排除,count() 是个例外。count() 包含null count(列名)没有null
聚合函数和group by常见错误
1.使用group by 时,select子句不能出现聚合键以外的列名。
mysql中支持,但不建议使用。原因是group by以后会聚合成一列,不在聚合列的比如product name可能不存在一对一的情况。
屏幕快照 2020-04-18 下午5.10.52.png屏幕快照 2020-04-18 下午5.18.37.png
‘
2.group by 子句写不能写别名(这个在postgresql和mysql是可以的,但不常用),原因是执行顺序是先group by再select
4.groupby子句其实并不能排序。
去重的方法
(1)distinct:想删除选择结果中的重复记录 (2)group by:适用于计算汇总结果
这部分书上解释的不好,没说多组去重。
屏幕快照 2020-04-18 下午5.25.26.png
网友评论