分组查询
关键字:group by 字段名
group by执行过程:
1.根据group by指定的字段对表进行分组
2,根据指定的聚合函数将分组后的每组中的若干条记录中找出一条记录
3,将二中查询出来的部门编号和每个部门的工资和
where 和 having 都是用来进行条件过滤的
但是where不能用在分组后面,也就说不能用在
分页查询
关键字:limit m,n
m 表示查询的起始行(舍弃前m条记录)
n 表示查询的总行数
要求对员工表进行分页查询,每页查询五条记录
select * from emp limit 0,5;
select * from emp limit 5,5;
写查询语句的顺序(严格执行)
select 字段名 from 表名
where 条件 condtion (行条件)
group by 字段名(对结果进行分组)
having condtion (分组后的行条件)
order by 字段名 (对结果进行排序)
limit offset_start,row+count ;(结果限定【分页】)
约束
主键约束:唯一+非空,一个表只能有一个
,主键自增约束:在主键原有的基础上加一
,非空约束:指定当前列不能为空
,唯一性约束:指定当前列的值不能重复
,外键约束:外键约束是表与表产生关联的前提
主键约束和唯一性约束的区别:
一个表中只能有一个主建约束,而可以有多个唯一性约束
创建约束的两种方式
1,表级约束:创建完表后添加的约束
2,列级约束:顺序设置约束
主键约束:
primary key:在数据库中的意思是主键,用来确保记录的唯一性
主键自增约束:
auto_incrementde:表示这个值是自动增加的, 默认开始值是1,
如果希望修改起始值,格式如下:
alter table cin_01 auto_increment = 20;
非空约束:
modify 修饰,调整 ------修改字段属性
DEFAULT 约束 用于向列中插入默认值。
唯一性约束
INSERT INTO 语句用于向表格中插入新的行:INSERT INTO 表名称 VALUES (值1, 值2,…)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
级联删除
可以了解,不重要
多表联查:
连接查询分类:
内链接–:
取得两个表的交集
sql内连接写法
关键字:[inner] join … on 关联字段等式
去两张表中共有的数据
外连接-- :
取得两个表的并集
关键字:left[outer] join … on 关联字段等式
select e., d.dname 部门名称 from emp.e,dept.d where e.depton = d.depton;
select e., d.dname 部门名称 from emp.e inner join dept.d on e.depton = d.depton;
左外连接:
左外连接先查询左表(即以左表为主),然后查询右表
右表中满足条件的显示出来,不满足条件呢的显示null
关键字左边的就是左表,关键字右边的就是右表
selct * from emp left join dept on emp.depton = dept.depton;
右外连接:
关键字:right [outer] join … on 关联字等式
右外连接先查询右表,(即以右表为主),然后查询左表
左表中满足条件的显示出来,不满足条件的显示null
关键字左边的就是左表,关键字右边的就是右表
selct * from emp right join dept on emp.depton = dept.depton
自然链接
自然连接中无需给出主外键关联等式,它会自动找到这个等式
相当于内连接的自然连接
自然连接:select * from emp natural join dept;
内连接: select e.* ,p.* from emp.e inner join dept.d on e.depton = e.depton;
相当于左连接的自然连接
select * from emp left join dept;
相当于右连接的自然连接
select * from emp right join dept;
子查询
select语句中包含select,如果一条语句当中存在两个或两个以上的select,
那么是子查询语句。
自查询:自己查自己
查询员工姓名及领导人姓名:
自查询 自己连接自己
查询员工的姓名以及领导人姓名
select e1.ename 员工姓名,e2.ename 领导人姓名 from
emp e1 inner join emp e2 on e1.mgr=e2.empno;
后续 SQL学习方向:
1,数据库的备份和还原
2,事务
3,powerdes
4,数据库集群
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
数据库学习常见单词
ATABASE 数据库
show 查看数据库中所有表
alter 更改
table 表
create 创建
drop 删除表
alter table 语句用于在已有的表中添加、修改或删除列。
desc 查看表结构
insert 插入
updent 修改
delete 删除
values 值
modify 修饰,调整 ------修改字段属性
constraint 约束
default 默认
change 改变
unique 独特
primary key 主键 primary 主要
auto_increment 自增 increment 增加
references 引用
foreign 外国,涉外的
foreign key 外键
inner 内
join 连接
natural 自然的