当前位置:文档之家› SQL常用命令汇总

SQL常用命令汇总

SQL常用命令汇总SQL是结果化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据定义、数据操纵和数据控制四个部分。

SQL简洁、功能齐全,已成为目前应用最广的关系数据库语言。

一、SQL的发展及标准化1.SQL的发展SQL是当前最为成功、应用最为广泛的关系数据库语言,其发展主要经历了以下几个阶段;(1)1974年,由Chamberlin和Boyce提出,当时称为SEQUEL(Structured English Query Language);(2)1976年,IBM公司对SEQUEL进行了修改,并将其用于本公司的SYSTEM R关系数据库系统中;(3)1981年,推出了商用关系数据库SQL/DS,并将其名字改为SQL,由于SQL功能强大,简洁易用,因此得到了广泛的应用;(4)今天,SQL广泛应用于各种大型数据库,如Sybase,INFORMIX,SQL Server,Oracle,DB2,INGRES等,也用于各种小型数据库,如FoxPro,Access等。

2.SQL标准化随着关系数据库系统和日益广泛,SQL的标准化工作也在紧张地进行着,二十多年来已制订了多个SQL标准:SQL-86,SQL-89,SQLL2和SQL-99。

二、SQL的基本概念1.基本表——一个关系对应一个表。

基本表是独立存在的表,不是由其他的表导出的表。

2.视图——是一个或几个基本表导出的表,是一个虚拟的表。

它本身不独立存在于数据中,数据库中只存放视图对应的数据,这些数据仍存放在导出视图的基本表中。

当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。

三、SQL的主要特点SQL有如下几个特点。

(1)SQL是类似于英语的自然语言,简洁易用。

(2)SQL是一种非过程语言。

(3)SQL是一种面向集合的语言。

(4)SQL既是自含式语言,又是嵌入式语言;可独立使用,也可以嵌入到宿主语言中。

(5)SQL是数据库查询(Query)、数据定义(Definition)、数据操纵(Manipulation)和数据控制(Control)四种功能。

创建数据表语法格式:CREA TE TABLE<表名>(<列定义>[{,<列定义>|<表约束>}])例:create table s(xingm c(8),xueh c(8),chengj c(3)) 结果:数据查询数据查询是数据库中最常用的操作。

SQL 提供SELECT 语句,通过查询操作可得到所需要的信息。

SELECT 语句的一般格式为:SELECT[ALL|DISTINCT][TOP N [PERCENT][WITH TISE]]<列名>[AS 别名 1][{,<列名>[AS 别名 2]}][TNTO 新表名]FROM<表名 1 或视图名 1>[[AS] 表 1 别名][{,<表名 2 或视图 2>[[AS] 表 2 别名]}][WHERE<搜索条件>][GROUP BY<列名 1>[HAVING<条件表达式>]][ORDER BY<列名 2>[ASC|DESC]] 1.查询全般同学的名字: Select xingm from s 结果:2.查询学生的全部信息: Select * from s 结果:3.查询学号是’001’的成绩:Select chengj from s where xueh=’001’ 结果:4.查询成绩及格且姓李同学的所以信息:Select xueh from s where chengji>=60 and xingm like ’张%’ 结果:5.查询选课不是’c1’或’c3’同学的所有信息:Select xingm,xueh from s where xuank<>’c1’ and xuank<>’c3’ 结果:等价于:Select xingm,xueh from s where xuank not in (‘c1’,’c3’) 6.查询没选课同学的名字:Select xingm from s where xuank is null 结果:7.查询全班的平均成绩: Select avg(*) as pingj from s 结果:8.查询全班数学的总成绩: Select sum(chengj) from s where kec=shux 结果:9.查询最高分同学的姓名:Select xingm,max(chengj) from s结果:10. 查询成绩高于80的最低分:Select min(chengj) from s where chengj>=80 结果:11. 统计选修是’c1’的同学人数:Select count(*) as c1shu from s where xuank=’c1’ 结果:12. 统计成绩在70~80选修’c2’是的人数:Select count(*) from s where chengj>=70 and chengj<=80 and xuank=’c2’ 结果:13. 查询选修三课以上的同学学号:Select xueh,count(*) as zong from s group by xuank having(count(*)>=3) 结果:14. 查询学校有多少选修课可选择:Select count(distinct xuank) from s 结果:15. 给选课是’c1’的同学升序排名:Select xingm,xueh from s where xuank=’c1’ order by chengj结果:16. 按总分降序排名:Select xingm from s order by zongf 结果:17. 给选修两课、总分高于500且课程成绩不低于90的同学降序排名:18. select xueh,count(*) from s group by xuank having(count(*)=2 where zongf>=500 and chengj>=90 结果:19. 给成绩在70~80之间并且有选课的同学按总分降序排名:Select xingm,chengj from s where xuank is not null and chengj>=70 and chang<=80 order by zongfen结果:20. 给总分在600~610分之间的学生按总分降序排名,总分一样的按课程的成绩sh 升序排名:Select xingm,xueh,zongf from s where zongf in(600,610) order by zongf desc,chengj asc结果:数据表连接及连接查询用户可能对数据库中的多个表进行操作,即为连接查询,它的结果集或结果表即为表之间的连接。

1.查询两个表连接后的所有信息: Select * from s,t结果:2.查询教学号’002’为的学生的选修老师的姓名:Select t.xming from s,t where s.xuank=t.kcheng and s.xueh=’002’ 结果:3.三个表连接找到教’002’学生的老师姓名及编号:Select xming,bhao from ss,tt,kk where ss.xueh=’002’ and ss.xuank=kk.xke and kk.keh=tt.khao 结果:4.查询分数比高强高的同学的姓名和学号:Select xueh from ss where chengj>(select chengj from ss where xingm=’高强’) Select x.xueh from ss as x,ss as y where y.xingm=’高强’ and x.chengj>y.chengj 结果:数据操纵SQL 提供的数据语句操纵 DML(Data Manipulation Langnage)主要包括填加数据、修改数据和删除数据。

一、填加数据1. 填加一条新记录(姓名、学号和成绩): Insert into s values(‘戈与’,’002’,’90’)Insert into s(xingm,xueh,chengj) values (‘戈与’,’002’,’90’) 之前:之后:2. 填加一行记录的部分信息(学号和成绩): Insert into s(xueh,chengj) values(‘辰风’,‘86’)结果:二、修改数据可以使用SQL 的UPDATE 语句对表中的一行或多行记录的某些列值进行修改,其语法格式为:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>][WHERE<条件>] 1.把所有同学的选课都换成’c1’: Update s set xuank=’c1’ 之前:之后:2.把学号为’001’的学生成绩修改成’99’:Update s set chengj=’99’ where xueh=’001’ 之前:之后:3.把柳云的学号和成绩分别改成’009’和’89’:Update s set xuah=’009’,chengj=’89’ where xingm=’柳云’ 之前:之后:三、删除数据使用SQL 的DELETE 语句可以删除表中的一行或多行记录,其语法格式为:DELETE FROM <表名> [WHERE <条件>]Delete from s where xingm=’高粱’之前:之后:2.删除所以同学的信息:Delete from s执行完此语句后,s表即为一个空表,但其定义仍存在数据字典中。

3.删除成绩比赵四高的同学的记录:Delete from s where chengj>(select chengj from s where xingm=’’)之前:之后:4.将带有逻辑删除的记录进行物理删除:之前:之后:。

相关主题