自关联
定义:简单理解就是一个表与自身连接
语法: SELECT * FROM areas as p INNER JOIN areas as c ON c.pid = p.aid WHERE p.atitle = '陕西省'
函数
-
函数介绍
- 事先提供好的一些功能可以直接调用
- 函数可以用在SELECT语句及其子句
- 也可以用在DUPATE,DELETE语句当中
函数分类:字符串函数、数值函数、日期和时间函数、流程函数、其他函数
字符串函数:
REPLACE(str,a,b)
、INSERT('myxq123',5,3,‘lk’)
、LOWER(str)
等
SELECT LEFT('LEBO40',4) -----LEBO
- 日期与时间函数:```SELECT DATE_FORMAT(now(),'%M,%D,%Y')
- 数值函数:ABS(x)
- 流程函数
- 其他常用函数
事务
- 事务广泛的运用于订单系统,银行系统等多种场景
- 四大特性:原子性、一致性、隔离性、持久性
- 对应关系
- 事务隔离级别:脏读、不可重复度、幻读
- 读未提交
- 不可重复读
- 可重复读
- 串行化
服务器端连接数据库:
- mysql -uroot -p
- 输入password
- use lebo16
- 开始事务:begin
- 提交事务:commit(未提交的事务,数据不会同步更新,提交后才可以更新)
- 回滚:rollback(相当于取消操作,回退到上一个操作)
视图
- 定义:查询出的数据放在一个新建的表中,这个表就是视图(虚拟的表)
- 语法:
CREATE VIEW v_students AS SELECT * FROM STUDENTS;
- 作用:安全性、提高性能、提高数据的独立性
存储过程
- 创建步骤:函数-函数向导-过程-编写函数-右击运行函数
- 声明关键字:DECLARE
- 设置数值关键字:SET
- 批量创建数据语句:
CREATE DEFINER = CURRENT_USER PROCEDURE `cre_demo`()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i< 100 DO
INSERT INTO students(name) VALUES(rand_string(5));
SET i = i + 1;
END WHILE;
END;
索引
- 定义:用于快速超出在某一列中有一特定值的行
- 优势:
- 提高数据检索效率,降低数据库的IO成本
- 对于数据进行排序,减低数据排序的成本,降低CPU的消耗
- 劣势:
- 索引列也占用空间
- 降低更新表的速度,如对表进行增删改
- 语句:
CREATE INDEX in_index ON STUDENTS(name)