重点:DDL(create alter drop)数据定义语言—通过语句创建表、添加修改约束等
掌握4种约束 :主键、唯一键、非空、外键
查询语句:多表连接查询、联合查询、子查询
事务:特性
索引:作用、类别、存储结构(B树索引)—后续扩展
视图及数据类型
优化SQL语句
5个聚合函数:max min avg sum count
- DDL 数据定义语言
以 create alter drop开头的语句都称为DDL
2.查询:
Select 列名1 as 别名 from 表名 +
Where 条件1 and /or 条件2 【等值判断(=);逻辑判断(and,or,not);不等值(<,>,<=,>=,!=);区间判断(between and);空与非空(is null,is not null);枚举(in(值1,值2 ,值3))】
Order by 条件1 ASC/DESC,条件2
Group by 分组条件1 ,分组条件2
Having 分组查询条件
模糊查询: selecr * from goods where name like \’%xxx%\’;
分支结构查询: select username,gender,
case role
WHEN 0 THEN \’管理员\’
WHEN 1 THEN \’用户\’
END AS 角色 from user
时间查询: sysdate()—当前系统时间
curdate()/curtime()–获取当前日期/时间
week(date)–获取指定日期为一年中的第几周
year(date)–获取指定日期的年份
hour(date)/minute(date)–获取指定时间的小时/分钟值
datediff(date1,date2)–获取相隔天数
assdate(date,n)–计算date加上n天之后的日期
字符串查询:concat(str1,str2,str3…..)–将多个字符串拼接查询
insert(str,pos,len,newStr)—将str中指定pos位置开始len长度的内容替换为newStr
lower(str)/upper(str)—将指定字符串转为小写/大写
substring(str,num,len)—将str字符串指定num位置开始截取len个内容
聚合函数:SUM(),AVG(),MAX(),MIN(),COUNT()
限定查询(数据库分页): select 列名 from 表名 limit ?,?;
SQL的编写 及 执行顺序:
子查询:将子查询到的“一行一列“的结果,作为外部查询条件,进行第二次的查询条件
select * from tb_grades where name>(select tb_grades where name=\’xxx\’)
子查询分类:
- 简单子查询:> >= < <= = != <> 子查询的结果必须是1行1列
- In/not in select * from tb_goods where price in(1000,2000)
- Any =any 相当于in
>any 大于子查询结果的最小值
<any 小于子查询结果的最大值
- all >all 大于子查询结果的最大值
<all 小于子查询结果的最小值
联合查询: select * from 表名1 union select * from表名2 (去除重复记录)
select * from 表名1 union all select * from表名2 (保留重复记录)
注:合并结果的两张表,列数须相同,列的数据类型可以不同
连接查询:查询结果来源于多张表
- 等值连接查询
2.内部连接 内连接
【总结】以上两种查询效果相同,表的先后顺序不影响查询结果, 都是把两个表中都符合条件的数据进行关联显示
3.左外连接查询
4.右外连接查询 相当于左外连接查询的表顺序颠倒
外连接和内连接的区别是什么?使用场合是什么?
1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。
2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。
在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
DML:insert delete update truncate
约束
事务
原理:数据库回味每一个客户端都维护一个空间独立的缓存区(回滚段),一个事务中所有的增删改语句的执行结果都会缓存到回滚段中,只有当事务中所有sql语句均正常结束(commit),才会将回滚段中的数据同步到数据库,否则无论因为哪种原因失败,整个十五将回滚(rollback)
事务特性:
Atomicity(原子性)
表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败
Consistency(一致性)
表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前的状态
Isolation(隔离性)
事务查看数据操作时 数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据
Durability(持久性)
持久性十五完成之后,它对于系统的影响是永久性的
DCL:数据控制语言,创建用户及分配、撤销权限
创建用户:create user 用户名 identified by 密码:
授权: grant all on 数据库,表 to 用户名
撤销: revoke all on 数据库,表名 from 用户名
删除: drop user 用户名