1.sql语句分类
1)DQL(数据查询语言):查询语句,凡是select语句都是DQL
2)DML(数据操作语言):insert delete update,对表当中的数据进行增删改
3)DDL(数据定义语言):create drop alter,对表结构的增删改
4)TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)
5)DCL(数据控制语言):grant授权,revoke撤销权限等


2.一些基本的Mysql语句
1)查看有那些数据库

show databases;

2)创建数据库

create database  数据库名;

3)使用数据库数据

use  数据库名;

4)查看当前数据库中有那些表

show tables;



3.sql语句的常用命令
1)当sql脚本中的数据量太大时,可以用source命令完成初始化

source  sql脚本的绝对路径;

2)查看表结构

desc  表名;

3)查看当前使用的数据库

select database();

4)查看MySQL的版本号

select version();

5)结束一条语句: ctrl+c

6)查看创建表的语句

show create table 表名;

7)删除数据库

drop database unipue;



4.简单的查询语句(DQL)及注意
1)查询语句顺序
select 5
…(当一条语句中有group by的话,select后面只能跟分组函数和参与分组的字段)
from 1

where 2

group by 3
…(按照某个字段或者某些字段进行分组)
having 4
…(对分组之后的数据进行再次过滤。一条语句中要有group by,才能有having
order by 6
…(默认为升序。asc表示升序,desc表示降序)
当按多个字段进行排序时,越靠前的字段越能起主导作用。只有当前面字段无法完成排序时,才会用到后面的)
limit 7
…;

注意事项
1.sql语句不区分大小写
2.标准sql语句中要求字符串使用单引号括起来(MySQL支持双引号,但尽量别用)
3.字段可以参与数学运算




2)条件语句查询
2.1、between and的使用
between and在使用时必须左小右大
between and除了用在数字方面(闭区间)之外,还可以用在字符串方面(左闭右开)

2.2、is null 和 is not null的使用
在数据库中NULL不是一个值,代表什么也没有,为空
只能使用is null和is not null来查询

2.3、模糊查询like
%代表任意多个字符,代表任意一个字符
注意:要想找出名字带有%、
、\这些字符的,要使用转义字符****

2.4、isnull()函数的使用
由于有NULL参与的运算结果一定为NULL,因此用isnull()函数处理,把NULL当作0处理
isnull(可能为null的数据,被当作什么处理)
eg:isnull(sal,0) 把sal字段中为NULL的数据都当作0来处理

2.5、distinct关键字去除重复记录
distinct只能出现在所有字段的最前面
与count()连用,可以统计出某个字段不重复的总数量(比如统计岗位的数量)

2.6、union使用
union可以将查询结果集相加
可以将多张不相干的表中数据拼接在一起显示!!!

2.7、limit使用(分页效果)
limit:取结果集中的部分数据
语法机制:limit startIndex(可省略),length
startIndex:起始位置 length:取几个




3)分组函数(分完组之后才能用)
3.1、分组函数有哪几个
count 计数,sum 求和,avg 平均值,max 最大值,min 最小值
注意
1.分组函数会自动忽略NULL
2.分组函数不能在where语句中使用,由于group by是在where执行后才会执行。
3.count()和count(某个字段)的区别
count(
):不是统计某个字段中数据的个数,而是统计总记录条数。(与某个字段无关)
count(某个字段):表示统计某个字段不为NULL的数据的总数量




4)链接查询
4.1、什么是连接查询及连接查询分类
(1)通过多张表进行联合查询称为链接查询
(2)分类:内连接和外连接
4.2、什么是内连接、外连接及他们的区别
内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。
AB两张表没有主副之分,两张表是平等的。

外连接:
	假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中
	的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。

外链接的分类:
左外链接(左连接):表示左边的这张表是主表
右外连接(右连接):表示右边的这张表是主表

4.3、内连接、外连接的写法
内连接:
select

from
…(表)
(inner) join
…(表)
on
连接的条件
where
再次过滤的条件


外连接:(左外连接\左连接)
select

from
…(表)
left (outer) join
…(表)
on
连接的条件
where
再次过滤的条件

注意:
把lefe改为right,就是右外连接\右连接
外连接重要的特点:主表的数据无条件的全部查询出来




5)子查询
5.1、select语句 当中嵌套select语句,被嵌套的select语句是子查询

5.2、子查询出现在如下地方:
select
… (select),
from
…(select),
where
…(select);