1.聚合函数
SELECT MAX(sal) FROM emp;
SELECT MIN(sal) FROM emp;
SELECT AVG(sal) FROM emp;
SELECT COUNT(sal) FROM emp;
SELECT COUNT(*) FROM emp
SELECT COUNT(1) FROM emp
2.分组
把数据按照一些维度分成组,然后再把这一组数据继续分析
SELECT AVG(sal) FROM emp GROUP BY job;
SELECT deptno,COUNT(1) FROM emp GROUP BY deptno
SELECT YEAR(hiredate),COUNT(1) FROM emp GROUP BY YEAR(hiredate);
SELECT deptno,MAX(sal) FROM emp GROUP BY deptno;
SELECT deptno,MAX(sal) as max FROM emp
GROUP BY deptno
HAVING MAX(sal)>10000;
SELECT COUNT(1)b,YEAR(hiredate)a FROM emp
GROUP BY a
HAVING b>1
3.事务
3.1 概述
事务(Transaction),保证多条操作要么全部成功,要么全部失败
3.2 事务的四大特点
ACID
- 原子性:把多条SQL看作是一个原子,要么全都执行成功,要么全都执行失败。
- 隔离性:保证多个操作之间是隔离的
- 持久性:多数据库的操作是持久生效的
- 一致性:保证数据在多个系统中是一致的
3.3 隔离级别
- 读未提交:性能最好,安全性最差
- 读已提交:性能较差,会出现不可重复读的现象,安全性较高,Oracle数据库默认隔离级别
- 可重复读:性能较差,不会出现不可重复读的现象,安全性较高,Mysql数据库默认隔离级别
- 串行化:性能太差
测试手动管理事务
START TRANSACTION;
INSERT INTO test VALUES(NULL,'2');
INSERT INTO test VALUES(NULL,'3');
COMMIT;
4. 字段约束
create table a(
id int primary key auto_increment,
sex varchar(10) default '男'
)
create table b(
id int primary key auto_increment,
age int,
check(age<100)
)
create table jd_user(
id int primary key auto_increment,
name varchar(20),
password varchar(50)
)
create table jd_user_add(
add_id int primary key,
address varchar(50),
foreign key(add_id) references jd_add(id)
)
|