重点:DDL(create alter drop)数据定义语言---通过语句创建表、添加修改约束等
掌握4种约束 :主键、唯一键、非空、外键
查询语句:多表连接查询、联合查询、子查询
事务:特性
索引:作用、类别、存储结构(B树索引)---后续扩展
视图及数据类型
优化SQL语句
5个聚合函数:max min avg sum count
以 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')
子查询分类:
>any 大于子查询结果的最小值
联合查询: select * from 表名1 union select * from表名2 (去除重复记录) select * from 表名1 union all select * from表名2 (保留重复记录) 注:合并结果的两张表,列数须相同,列的数据类型可以不同 连接查询:查询结果来源于多张表 2.内部连接 内连接 【总结】以上两种查询效果相同,表的先后顺序不影响查询结果, 都是把两个表中都符合条件的数据进行关联显示 3.左外连接查询 4.右外连接查询 相当于左外连接查询的表顺序颠倒 外连接和内连接的区别是什么?使用场合是什么? 1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。 2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 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 用户名
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。
在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。