查询语句中常用的关键字
去掉重复的记录显示
distinct
select distinct * from student
select distinct name from student
select distinct name,cid from student
distinct根据关键字后面所写的字段来判断是否相同
distinct根据关键字后面的第一个字段排序(asc)
连接多个语句查询的结果
多个查询语句的结构(显示的字段数据类型和数量一样)要一致
union
连接多个查询语句的结果,并且判断去掉重复的记录
select * from student union select * from student
union all
只是简单把多个查询语句的结果连接在一起,不会判断去掉重复,也不会排序
select * from student
union all
select * from student
视图
视图是一个虚表,存放在服务器,可以一些复杂的查询语句操作
视图优点:
1.可以隐藏表的真实信息
2.可以实现代码共享,提高开发效率
3.降低sql语句的难度
A:select * from tablename
B:select * from tablename
视图创建语法
create view viewname//虚表
as
select * from tablename//只能查询语句
viewname//虚表
tablename//基表
虚表的数据是来自于基表的数据
create view stu_view1 as select * from student;
select * from stu_view1;
create view stu_view2 as select * from student,class where student.cid=class.cid
select * from stu_view2
create view stu_view4 as
select cid,sum(id),max(id),avg(id),min(id),count(id)
from student
group by cid;
select * from stu_view4
是否可以通过视图修改基表中数据
1.可以利用一般的视图修改基表中的数据
2.可以利用一般的视图修改多个基表中的数据
3.带有别名字段的视图也可以秀噶基表中的数据
一些情况是不能修改的
1.视图包含聚合函数 distinct group by是不能利用视图修改基表中的数据
索引
索引是根据某个字段来查找记录,主要是用来提高多数据的查询效率
索引分类:
聚集索引
1.根据某个字段的升序来查找
2.一个表中只能有一个聚集索引
3.聚集索引只是在查询的效率提高,但是在新增 修改 删除时没效率是非常低
非聚集索引
1.任何一个字段都可以创建一个非聚集索引
2.一个表中可以用多个非聚集索引
3.非聚集索引在查询的效率非常低,但是在新增 修改 删除时效率高
索引实现方式:
1.唯一索引
create unique index indexname
on tablename(fieldname)
//fieldname值是唯一
2.主键索引
create index indexname
on tablename(fieldname)
//fieldname是主键
如果指定了表中的主键字段,系统会自动根据主键字段创建一个索引
3.函数索引
create index indexname
on tablename(upper(fielename))
4.组合索引
create index indexname
on tablename(fieldname1,fieldname2)
5.bitmap索引
create bitmap indexname
on tablename(fieldname);
表中那些字段能够创建索引
1.字段的值分配比较均匀,区间很大,适合建索引
2.主键字段,适合建索引
3.根据查询的条件字段(要求该字段的值区间要广)可以创建索引
4.表中某个字段当作查询的条件次数非常多,可以建索引
4.字段的值是有限个数,该字段不适合建索引
一个表允许创建多个不同的索引
阅读(1143) | 评论(0) | 转发(1) |