==============【康师傅的Day3笔记】=================
目录
DDL ( Data Definition Languages ) 数据定义语言
DML ( Data Manipulation Languages ) 数据操作语言
DCL ( Data Control Languages ) 数据控制语言
1. SQL分类
DDL ( Data Definition Languages ) 数据定义语言
对表进行的一系列操作
CREATE 创建 \ ALTER 修改 \ DROP 删除 \ RENAME 重命名 \ TRUNCATE 清空
DML ( Data Manipulation Languages ) 数据操作语言
对表中的一条条记录进行操作
INSERT 增加 \ DELETE 删除 \ UPDATE 修改 \ SELECT 查询
DCL ( Data Control Languages ) 数据控制语言
COMMIT \ ROLLBACK 事务操作相关 \ SAVEPOINT \ GRANT \ REVOKE
2. SQL语言规则与规范
2.1 基本规则
1.可以写成一行,也可以分行写,要以 ; 或者 \g 或者 \G 结尾
2.关键字不能被缩写,也不能被分行
3.必须使用英文半角模式
4.字符串型、日期时间类型数据可是使用 ‘ ’ 表示
5.列的别名,尽量使用 “ ” 表示,不建议省略 as
2.2 SQL大小写规范
1. 在windows环境下对大小写不敏感,自动忽略大小写
2.在Linux环境下对大小写敏感,严格区分大小写
数据库名、表名、表的别名、变量名 严格区分大小写
关键字、函数名、列名(或字段名)、列的别名忽略大小写
3.推荐的书写规范
数据库名、表名、表别名、字段名等都小写
SQL关键字、函数名、绑定变量都大写
2.3 SQL注释
单行注释用 "#" 或者 "-- ", --后面一定要加一个空格才行!
多行注释用 / * * /
2.4 命名规则
1. 数据库、表名不得超过30个字符,变量名限制为29个字符
2.必须只能包括A-Z,a-z,0-9,_共63个字符
3.数据库名、表名、字段名中间不能包含空格
4.同一个MySQL软件中,数据库不能同名;同一个数据库中,表不能同名;同一个表中,字段不能同名
5.必须保证字段等没有个系统保留字冲突。如果坚持使用,请在SQL语句中使用 ` 引起来
6.保持字段名和类型的一致性
3.基本SELECT语句
3.1 最基本的查询语句:单独使用 SELECT
SELECT基本语句是:
SELECT 字段1,字段2,... FROM 表名;
字段可以理解为 列 ,这个语句意在节选出整个大表中的这三项进行显示
“ * ”代表表中所有字段(列),即显示整个表:
SELECT * FROM 表名;
单独执行一个非常简单的语句时,可以不用表或者使用伪表:
SELECT ... ;
SELECT ... FROM DUAL; #DUAL是伪表,用来维持结构平衡
3.2 给列起别名
黄色表出的是列的名字,也称字段,想给字段起一个别名有三种方式
1.用空格分隔开
SELECT 原名 别名 FROM 表名;
2. 用AS分隔,这里的AS不是介词,而是alias(别名)的简称
SELECT 原名 AS 别名 FROM 表名;
3.用 “ ” 把别名引起来。这种主要是可以解决起的别名里希望有空格的情况
SELECT 原名 “别名” FROM 表名;
黄色的部分还可以生成一个新列!(太好玩了!)
注意一下,当我们执行完起别名的语句后,会发现下面的字段都被修改成别名了,并且可能还会出现新的列。但是这个操作仅会在本次显示,并不会修改原来的表中字段
3.3 删除重复行
如果想要得到员工表中都涉及到哪些部门,单独查询出部门会出现大量的重复,这种情况下需要去重
去重语句,加一个DISTINCT:
SELECT DISTINCT 字段 FROM 表名;
这次就没有重复信息啦!
如果在这个语句中添加了多个字段,则拣选出来的是字段组合不重复的信息
3.4 空值参与运算
空值:NULL 不是0的意思,代表一种未定义,不知道的意思
NULL参与运算时,无论加减乘除,结果也为NULL。即未知加已知=未知
这里由于commission_pct(奖金率)中有大量的NULL导致的
解决方案:用IFNULL
IFNULL (可能含有NULL的字段,将NULL替代成什么)
3.5 ``````着重号`````
当表名或者字段名不小心用到了关键字的时候,要用着重号
比如在atguigudb中有一个表名为order,我们想查询这个表的时候会出现报错。还发现这个表名也变成关键字的蓝色了,这就说明它占用了关键字的名字0.0
用着重号引一下就好啦:
3.6 查询常数
可以用于添加一列表里没有的重复信息。字符串用 “ ” 引起来
4.显示表的结构
显示表中字段的详细信息,字段类型,约束等等
DESCRIBE 表名;
DESC 表名;
5. 过滤数据*
当我们只需要固定条件的某个信息时,需要过滤拣选数据
过滤条件语句:
SELECT * FROM 表名 WHERE 条件;
过滤一下工资17000的员工信息: