SQL语句总结

SQL 语句总结
一. 模式的定义和删除

1. 定义模式: create scheme <模式名> authorization <用户名> Eg:定义一个学生-课程模式 S-T create scheme “S-T” authorization Wang (为学生 wang 定义了一个模式 S-T,如果没有指定模式名,则模式名默认为用户名 wang) 2. 删除模式: Drop schema <模式名> <cascade/restrict>(cascade:级联删除) 二.创建库: Create database qiao; 二. 基本表的定义,删除和修改: 1. 表的定义:建立一个“课程”表 Caurse create table Courae (Cname char(40), Cpno char(4) ) 2. 表的删除: drop table <表名> cascade/restrinct 3. 表的修改: Alter table <表名> add<新表名><数据类型>完整性约束(用于增加新列和新的完整性约 束条件) drop<完整性约束名>(用于删除指定的完整性约束) alter column<列名><数据类型>(用于修改原有的列定义,包括修改 列名和数据类型) Eg:向 Student 表增加“入学时间”列,其中数据类型为时期型: alter table Student add S_entrance DATE; Eg:将年龄的数据类型由字符型改为整数: alter table Student alter molumn Sage INT; Eg:增加课程名称必须取唯一值的约束条件: alter table Course add unique(Cname); 三. 索引的建立与删除: 1. 建立索引: create unique/cluster index<索引名> on <表名> (列名 ASC/DESC,列名 ASC/DESC,列名 ASC/DESC);(ASC 表升序) 。 Eg:为学生-课程数据库中的 student 表建立索引,按学号升序和课程号 降序建立唯一索引:create unique index SCno on SC(Sno ASC,Cno DESC); unique 表明此索引的每一个索引值只对应唯一的数据记录 cluster 表明要建立的索引是聚促索引,所谓聚促索引是指索引项的顺序 与表中记录的物理顺序一致的索引组织。

四.

2. 删除索引:drop index <索引名> 数据查询。 1.查询全部列 select * from <表名>
2.查询部分列,查询经过计算得值,消除重复行,并满足 between…and 和 not between…and 条件,多个条件用 and 或 or 连接, Eg: select DISRINCT Sno,Sname,2004-Sage,LOWER(Sdept) from student where Sage between 20 and 23 and Grade<60; 3.确定集合:in/not in select Sname from student where Sadept in(‘CS’,’MA’,’IS’); 4.字符匹配: 单个字符用_代替, 多个用%代替, 注意一个汉字用两个_代替, 注意 用 like 连接: 如果用户要查询的字符串本身就含有通配符%或_,这时就要用ESCAPE,对 通配符进行转意: Eg;查询以“DB_“开头,且倒数第三个字符为 i 的课程的详细信息: select * from Course where Cname like ‘DB\_%i_ _’ESCAPE’\’; 5.涉及控制的查询 select Sno from SC where Grade is(not) null ; 6.聚促函数 为了进一步方便用户,增强检索功能,SQL 提供了许多聚促函数,主要有: count(distinct/all*) count(distinct/all <列名>) sum(distinct/all <列名>) avg(distinct/all <列名>) mav(distinct/all <列名>) min(distinct/all <列名>) Eg:查询选修了课程的学生人数 select count(distinct sno) from SC 7.order by 子句和 group by 子句 <1>用户可以用 order by 子句对查询结果按照一个或多个属性的升序 ASC 或降 序 DESC 排列,缺省值为升序。对于空值,若按升序排,含空值的元组将最后显示, 若按降序排,空值的元组将最先显示。 Eg.查询选修了 3 号课程的学生的学号及其成绩,查询结果按分数的降序排列。 select sno,grade

from SC where Cno=’3’ order by grsde DESC <2>group by 子句将查询结果按某一列或多列的值分组,值想的的为一组 (对查询结果分组的目的是为了细化聚集函数的作用对象,如果未对查询结果 分组,聚集函数将作用于整个查询结果) Eg:求各个课程及相应的选课人数: select Cno,count(Sno) from SC 该语句对查询结果按 Cno 的值分组,所有具有相同 Cno 值的元组为一组, 然后对每一组作用聚集函数 Count 计算,以求得改组的学生人数。 Eg:查询选修了 3 门以上课程的学生学号 select Sno from SC group by Sno having count(*)>3 (where 子句与 having 短语的区别在于作用对象不同, where 子句作用于基本表 或视图, 从中选择满足条件的元组, having 短语作用于组, 从中选择满足条件的组。 8.带有 IN 谓词的子查询 Eg:查询与”刘晨”在同一个系学习的学生 select Sno,Sname,Sdept from Student where Sdept IN (select Sdept from Student where Sname=’刘晨’); 9.带有 ANY(SOME)或 ALL 谓词的子查询 >ANY 大于子查询结果中的某个值 >ALL 大于子查询结果中的所有值 <ANY 小于子查询结果中的某个值 <ALL 小于子查询结果中的所有值 >=ANY 大于等于子查询结果中的某个值 >=ALL 大于等于子查询结果中的所有值 <=ANY 小于等于子查询结果中的某个值 <=ALL 小于等于子查询结果中的所有值 =ANY 等于子查询结果中的某个值 =ALL 等于子查询结果中的所有值 !=(或<>)ANY 不等于子查询结果中的某个值 != (或<>)ALL 不等于子查询结果中的任何一个值 ----------------------------------------------------------------------------------------------Eg:查询其他系中比计算机科学系某一学生年龄小的学生姓名和年龄 select Sname,Sage from Student where Sge<ANY(select Sage

from Student where Sdept=’CS’) and Sdept<>’CS’


相关文档

SQL语句大全 总结
SQL基础语句总结
常用SQL语句简单总结
SQL语句优化
标准sql语句总结
sql基本语句(代码总结)
SQL查询语句总结_精华
T-SQL常用语句总结
常用的SQL数据库语句总结
总结经典常用的SQL语句(2
电脑版