sql基础教程

2020-04-18  本文已影响0人  美琦miki视觉笔记

语言定义

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
上一篇下一篇

猜你喜欢

热点阅读