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)四种功能。

创建数据表
语法格式:CREATE TABLE<表名>(<列定义>[{,<列定义>|<表约束>}])
xingm
xueh
chengj
张三
001
78
张竟
009
100
例:create table s(xingm c(8),xueh c(8),chengj c(3))
xingm
xueh
chengj
结果:
数据查询
数据查询是数据库中最常用的操作。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
xingm
张三
李五
结果:
2.查询学生的全部信息:
Select * from s
xingm
xueh
chengj
张三
001
78
李五
002
89
结果:
3.查询学号是001的成绩:
Select chengj from s where xueh=001
结果:
Chengj
78
4.查询成绩及格且姓李同学的所以信息:
Select xueh from s where chengji>=60 and xingm like 张%
xingm
xueh
欧阳
034
侗剧
021
结果:
5.查询选课不是c1c3同学的所有信息:
Select xingm,xueh from s where xuank<>c1 and xuank<>c3
Xingm
马蔺
臼海
结果:
等价于:Select xingm,xueh from s where xuank not in (c1,c3)
6.查询没选课同学的名字:
Select xingm from s where xuank is null
结果:
pingj
80
Expr1
6758
7.查询全班的平均成绩:
Select avg(*) as pingj from s
结果:
xingm
Axpel
张竟
100
8.查询全班数学的总成绩:
Select sum(chengj) from s where kec=shux
结果:
Expr1
82
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
C1shu
34
结果:
12.统计成绩在70~80选修c2是的人数:
Select count(*) from s where chengj>=70 and chengj<=80 and xuank=c2
Expr1
12
结果:
13.查询选修三课以上的同学学号:
Select xueh,count(*) as zong from s group by xuank having(count(*)>=3)
xueh
Zong
023
3
008
3
结果:
14.查询学校有多少选修课可选择:
Select count(distinct xuank) from s
Expr1
67
结果:
15.给选课是c1的同学升序排名:
Select xingm,xueh from s where xuank=c1 order by chengj
xingm
sql语句实现的四种功能
Xueh
柳举
007
戈缶
039
胡枯
067
张三
001
结果:
16.按总分降序排名:
Select xingm from s order by zongf
xingm
浮虎
书噶
啊宰
结果:
17.给选修两课、总分高于500且课程成绩不低于90的同学降序排名:
18.select xueh,count(*) from s group by xuank having(count(*)=2 where zongf>=500 and chengj>=90
xueh
Expr1
009
2
056
2
045
2
结果:
19.给成绩在70~80之间并且有选课的同学按总分降序排名:
Select xingm,chengj from s where xuank is not null and chengj>=70 and chang<=80 order by zongfen
xingm
Chengj
呀户
70
杜盐
78
煞湖
73
结果:
20.给总分在600~610分之间的学生按总分降序排名,总分一样的按课程的成绩sh升序排名:
Select xingm,xueh,zongf from s where zongf in(600,610) order by zongf desc,chengj asc
xingm
xueh
Zongf
王二
029
605
赵大
045
609
刘小
017
601
结果:
数据表连接及连接查询
用户可能对数据库中的多个表进行操作,即为连接查询,它的结果集或结果表即为表之间的连接。
1.查询两个表连接后的所有信息:
Select * from s,t
结果:
Xingm
xueh
xuank
xming
kcheng
杨能
001
jiy
勒乐
jiy
杨能
001
Jiy
斐在
shengh
郭好
002
Shengh
勒乐
jiy
郭好
002
Shengh
斐在
shengh
谢客
003
Jiy
勒乐
jiy
谢客
003
Jiy
斐在
shengh
2.查询教学号002为的学生的选修老师的姓名:
Sing from s,t where s.xuank=t.kcheng and s.xueh=002
xming
斐在
结果:
3.三个表连接到教002学生的老师姓名及编号:
Select xming,bhao from ss,tt,kk where ss.xueh=002 and ss.xuank=kk.xke and kk.keh=tt.khao

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。