常用SQL语句培训.ppt
《常用SQL语句培训.ppt》由会员分享,可在线阅读,更多相关《常用SQL语句培训.ppt(27页珍藏版)》请在三一办公上搜索。
1、常用SQL语句,2007-12-4,1,查询语句,select*from class;查询表class中的所有列.select class,teacher from class;查询表class中的列class,teacherSelect count(*)as count_all from class;返回表class中的总行数给结果集.select sum(studentnumber)as all_student_number from class:返回class表中studentnumber的总数给结果集select avg(studentnumber)as avg_student_num
2、ber from class:返回class中studentnumber的平均值给结果集Select max(studentnumber)as max_studentnumber from class:求某个字段的最大值,最小值.min是最小值.select*from class where studentnumber=(Select max(studentnumber)from class):求的最大值可以作为条件被引用.Select*from class where studentnumber=50(50,=50,50):返回studentnumber=50(50,=50,50 and t
3、eacher=li 两个查询条件用and表示与,or表示或.Select*from class where studentnumber in(44,55):in表示studentnumber为括号中所列的可能值.Select*from class where class in(select class from student):in中的内容可以是另一个查询语句的结果.Select distinct class from student:查询字段的值不重复select*from class order by studentnumber(asc,desc):对查询结果排序,可以按升序,也可以按降
4、序.,2,查询语句(续),select class,count(*)from student group by class:查询结果根据group by 分组.select class,count(*)from student group by class having count(*)=5:对分组的结果再用条件过滤select*from student where id19:UNION:将两个查询语句的查询结果放在一起,如果有重复的行,就删除,如果是UNION ALL:则重复的行不删除.模糊匹配查询:select*from student where name like%ang%整型,日期类
5、型的字段可以指定范围.用betweenselect*from student where born between 1980-05-04 and 2983-10-18select*,12 from student 返回结果中增加一列,且值均为12.select RTRIM(class)+RTRIM(teacher)AS name1,studentnumber from class:将两个字段先删除尾部的空格,再连接起来返回.其中:连接起来的字段名称返回时为name1Select class.*,student.*from class,student where class.class=stud
6、ent.class:两个表的内容联合起来查询,字段也可以用JOIN子句实现:select*from class JOIN student on class.class=student.classJOIN又分为内连接,外连接,左外连接,右外连接等,具体请查看相关的数据库的手册.,3,插入,修改,删除语句,插入:指定字段名称及值的插入Insert into class(class,studentnumber,teacher)values(gaoer,55,abc);不指定字段名称的插入Insert into class values(chuyi,abc,55);一次插入多条记录:只能执行多条ins
7、ert语句.从另一个表中读出数据插入当前的表先创建一个新表:select*into class_bak from class where 1=2insert into class_bak select*from class where class=gaoer修改:Update class set class=gaoerer where class=gaoer删除:Delete from class where class=gaoerer,4,创建新表,create table dbo.class_bak(Name nvarchar(25)NOT NULL DEFAULT abc primary
8、 key,studentnumber int DEFAULT 0);insert into.class_bak(studentnumber)values(23):则插入的值col1的默认值就是abc.复制一个表的结构到一个新表.select*into class_bak from class where 1=2:复制一个表为另一个表,如果不导数据,就将条件置为1=2即可.显示某表的建表语句:ORACLE:desc table_nameINFORMIX:dbschmea SQLSERVER:,5,修改表结构,删除表,Alter table class_bak add monitor varcha
9、r(10);:增加一列Alter table class_bak alter COLUMN montior nvarchar(10):修改一列Alter table class_bak drop COLUMN monitor;:删除一列删除表:Drop table class_bak,6,索引,用于在查询数据时,加快查询速度,create UNIQUE index idx1_class on class(class)在字段class上创建唯一索引,即插入时,该字段不允许重复.名称为idx_classinsert into class(class,teacher)values(gaoer,lis
10、i);此插入语句执行第二次将会失败.删除索引:drop index idx1_class on class索引的重新生成,重新组织:当一个表经过多次修改,插入,删除后,需要重建索引,以便以后可提高查询效率.但重建的过程是较为消耗资源的.在SCP等业务繁忙的机器上,一定要选择合适的时间段才能重建索引.ALTER INDEX idx_class on class REBUILD重新生成索引将会删除并重新创建索引。这将根据指定的或现有的填充因子设置压缩页来删除碎片、回收磁盘空间,然后对连续页中的索引行重新排序。ALTER INDEX idx_class on class REORGANIZE 使用最
11、少系统资源重新组织索引。,7,索引使用技巧与数据库性能调优.,查询语句中,对于字符串型的字段,一定要用单引号括起来,对于整型不要用引号,对于日期型的字段,目前暂无定论,是否会对性能有影响.可进一步跟踪.尽量不要用in子句,那样的话无法使用索引,导致查询效率低下,可以改用UNION来连接多个查询.这样可以提高效率.多个查询条件,应该将过滤多的带索引的字段的条件放在前面.查询条件中尽量用等号,不要用大于,小于等,那样可能会用不上索引.在全部查询出所有结果时,要求带上条件1=1,可以避免使用索引,提高效率.,8,创建存储过程,set ANSI_NULLS ONset QUOTED_IDENTIFIE
12、R ONgoCREATE PROCEDURE dbo.get_avage_age-Add the parameters for the stored procedure hereclass_name nchar(10),CheckDate datetimeASBEGIN-SET NOCOUNT ON added to prevent extra result sets from-interfering with SELECT statements.SET NOCOUNT ON;select avg(age)from student where class=class_name and born
13、CheckDate-Insert statements for procedure hereEND,9,执行存储过程,USE gaotestGODECLAREreturn_value intEXECreturn_value=dbo.get_avage_ageclass_name=gaosan,CheckDate=2009-01-01SELECTReturn Value=return_valueGO删除存储过程:Drop procedure get_avage_age;,10,视图的创建,删除与使用,创建:create view view_1 as SELECT,AS Expr1 FROM db
14、o.class INNER JOIN dbo.student ON=使用:select*from view_1删除:drop view view_1,11,创建触发器,set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoCREATE TRIGGER trigger_1 ON dbo.class AFTER DELETEAS BEGIN-SET NOCOUNT ON added to prevent extra result sets from-interfering with SELECT statements.SET NOCOUNT ON;delete fr
15、om dbo.student where dbo.student.class not in(select class from dbo.class)-Insert statements for trigger hereEND,此触发器的功能是:当class表有删除操作时,同步student表中的记录,将不存在的班级的记录全部删除.,12,使用触发器,alter table student drop CONSTRAINT FK_CLASSselect*From student where class=chuyiselect*From class where class=chuyidelete f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用 SQL 语句 培训

链接地址:https://www.31ppt.com/p-6279053.html