事务、索引、函数
CREATE TABLE product(
pname VARCHAR(10) PRIMARY KEY,
pcount INT)
TRUNCATE product;
SHOW ENGINES;
SHOW CREATE TABLE product;
事务:
访问并可能更新数据中各数据项的一个程序执行单元
特点:
原子性:每个事务必须是一个不可分割的单元
一致性:事务在完成时,必须使所有数据从一种一致性的状态转换到另一种一致性的状态
孤立性:一个事务中的操作语句所作的修改必须和其他事务所作的修改相隔离
持久性:事务完成后,所做的修改对数据的影响是永久的
事务控制语句:
启动一个事务:START TRANSACTION / BEGIN
保存当前状态:SAVEPOINT
回滚到:ROLLBACK TO
回滚:ROLLBACK
提交事务:COMMIT
开启一个事务
START TRANSACTION;
INSERT INTO product VALUES ('牙膏',10);
DELETE FROM product;
TRUNCATE product;
ROLLBACK;
COMMIT;
START TRANSACTION;
SAVEPOINT sp1;
INSERT INTO product VALUES ('iphone',10),('ipad',5),('iwatch',9);
ROLLBACK TO sp1;
SELECT * FROM product;
COMMIT;
索引
索引是一种特殊的文件,它包含着对数据库表里的所有记录的引用指针
创建索引
CREATE INDEX i_sage ON student(sname(2));
DESC student;
删除索引
DROP INDEX i_sage ON student;
函数的分类及使用
数学函数
绝对值
SELECT ABS(-5);
比2.3大的最小整数值
SELECT CEILING(2.3);
比2.3小的最大整数值
SELECT FLOOR(2.3);
最大值
SELECT GREATEST(2,3,4);
最小值
SELECT LEAST(1,2,3);
取余
SELECT MOD(10,3);
四舍五入,保留两位小数
SELECT ROUND(10.234,2);
截断,保留两位小数
SELECT TRUNCATE(10.234,2)
随机数
SELECT RAND(5);
聚合函数
求和
SELECT SUM(score) FROM score WHERE cname = '数学';
平均值
SELECT AVG(score) FROM score;
最大值
SELECT MAX(score) FROM score;
最小值
SELECT MIN(score) FROM score;
数量
SELECT COUNT(score) FROM score;
SELECT cname 科目名 ,AVG(score) 平均分 FROM score GROUP BY cname;