SQL标准语法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL标准语法
1、USE (使用)
语法:USE NETBAR
功能:使用名为的NETBAR数据库
说明:代码优先级高于手动设置

2、CREATE (建立)
语法:CREATE DATABASE STUDENT
功能:建立名为STUDENT的数据库
说明:数据定义语法 可用于库的建立、表的建立及其它建立

3、DROP (删除)
语法:DROP TABLE STUDENT
功能:删除名为STUDENT的表
说明:数据定义语法 可用于库、表、约束的删除及其它删除

4、TRUNCATE (截断)
语法:TRUNCATE TABLE STUDENT
功能:删除名为STUDENT表下所有行
说明:数据定义语法 等同于不带条件的DELETE 不可回滚

5、ALTER (修改)
语法:ALTER TABLE STUDENT
ADD SEX CHAR(2)
功能:修改名为STUDENT的表
添加名为SEX的字段 长度为CHAR类型 2字节
语法:ALTER TABLE STUDENT
DROP COLUMM SEX
功能:修改名为STUDENT的表
删除名为SEX的字段
说明:数据定义语法 每条ALTER命令只能执行一次修改操作

6、CHECK (检查)
语法:AGE INT CHECK(AGE>0 AND AGE<100)
功能:检查AGE字段是否在1-99之间
语法:AGE INT CHECK(AGE BETWEEN 0 AND 100)
功能:同上
语法:EMAIL VARCHAR(20) CHECK(EMAIL LIKE'%@%')
功能:检查EMAIL字段是否存在@字符 %代表@前后允许有任意字符
语法:TEL VARCHAR(20) CHECK(TEL LIKE'[0-9]...[0-9]')
功能: 检查TEL字段内的数字是否都在0-9之间 ...省略中间的[0-9]
语法:SEX CHAR(2) CHECK(SEX='男' OR SEX='女')
功能:检查SEX字段是否为"男"或"女"
语法:SEX BIT CHECK(SEX IN('男','女'))
功能:同上
说明:最重要的域完整性约束语法 检查约束

7、NOT NULL (非空 必填)
语法:NUMBER VARCHAR(20) NOT NULL
功能:NUMBER字段必须填写
说明: 域完整性约束语法 数据约束

8、DEFAULT (默认)
语法:PAYMENT VARCHAR(20) DEFAULT 0
功能:PAYMENT字段如不填写 默认为0
说明:域完整性约束语法 默认约束

9、PRIMARY KEY (主键)
语法:SID VARCHAR(20) PRIMARY KEY
功能:SID字段必填 设置为主键
语法:SID INT
CLASSID VARCHAR(20)
PRIMARY KEY(SID,CLASSID)
功能:把SID字段和CLASSID字段设置为复合主键
说明:实体完整性约束语法 不得为空 不得重复
复合主键尽量不要频繁使用
10、UNIQUE (唯一)
语法:SID VARCHAR(20) UNIQUE
功能:SID字段为唯一值
说明:实体完整性约束语法 不得重复 但可以为空

11、IDENTITY (标识符)
语法:SID INT IDENTITY(1,1) PRIMARY KEY
功能:SID为标识字段 起始编号为1 每次增长为1 设置为主键
说明:实体完整性约束语法 只能用于整数 自动编号

12、CONSTRAINT (约束)
语法:BEGINTIME DATETIME
ENDTIME DATETIME
CONSTRAINT CK_BE CHECK(ENDTIME>BEGI

NTIME)
功能:设置名为CK_BE的约束 检查ENDTIME是否大于BEGINTIME
语法:DROP CONSTRAINT CK_BE
功能:删除名位CK_BE的约束
语法:ALTER TABLE STUDENT
ADD CONSTRAINT DEF_ADD DEFAULT'北京'FOR ADDRESS
功能:设置名为DEF_ADD的约束 把ADDRESS设置为默认为'北京'
说明:单独设置约束 可单独删除约束 不用更改字段
CONSTRAINT搭配DEFAULT需注意特别语法 具体如上示例三
13、FOREIGN KEY (外键)REFERENCES (关联)
语法:SID INT FOREGIN KEY REFERENCES STUDENT(SID)
功能:把SID字段设置为STUDENT表中SID字段的外键
语法:ALTER TABLE STUDENT1
ADD CONSTRAINT FK_SID FOREGIN KEY(SID) REFERENCES STUDENT(SID)
功能:把STUDETN1 表中SID字段设置为STUDENT表中SID字段的外键 在表外同样可用CONSTRAINT语法单独设立主外键关系
说明:引用完整性约束语法 插入信息时先主键表后外键表 删除信息时先外键表后主键表 删除表时先外键表后主键表

14、INSERT (插入)
语法:INTSERT INTO STUDENT(SNAME,AGE,ADDRESS) VALUES('XXX',18,'BEIJING')
功能:向STUDENT表中SNAME,AGE,ADDRESS字段顺次插入'XXX','18','BEIJING'的信息
语法:INSERT INTO STUDENT VALUES('XXX',18,'BEIJING')
功能:同上 如省略原表列名 默认为整行插入 标识符字段不用输入
说明:数据操作语法 只能以行为单位插入

15、SELECT (查询)
语法:SELECT*FORM STUDENT
功能:查询名为 STUNDENT的表所有字段(*代表所有字段)
语法:SELECT TOP 3 *FROM STUDENT
WHERE C++>=80 AND C#>=80
ORDER BY C++,C#
功能:在表STUDENT查询同时满足C++>=80和C#>=80条件的列 并按C++和C#次序升序排列 最后获取前三列信息
语法:SELECT 20 PERCENT *FROM STUDENT
WHERE C++<60 OR C#<60
ORDER BY C++,C# DESC
功能:在表STUDENT查询满足C++<60或C#<60条件的列 并按C++和C#的次序降序排列 最后获取总信息列的前20%
语法:SELECT SUM(C++)AS SUM FROM STUDENT
功能:查询表STUDENT中C++列之和 结果集生成在名为SUM的字段
语法:SELECT TEAM AVG(SCORE) FROM STUDENT
WHERE PERJECT='C#'
GROUP BY TEAM HAVING AVG(SCORE)>=60
功能:从表STUDENT中以TEAM为分组条件查询C#的SCORE平均值
并筛选出SCORE平均值大于等于60的组
说明:数据操作语法 可用于表的查询、字段的查询及其它查询
如需选择查询字段 在*处替换输入要查询字段
ORDER BY语法默认为升序(即ASC)
SUM( ) AVG( ) MIN( ) MAX( ) COUNT( )属于单行函数 功能分别为求和 求平均 求最小 求最大 计算行数 其中前两者仅适用数字型数据 后三者适用所有数据 COUNT(*)为统计所有行
如果采用GROUP BY分组 则SELECT子句后只能跟随分组条件(即GROUP BY后条件)和聚合函数 只有HAVING能以聚合函

数作为条件 HAVING只能跟随GROUP BY出现且只能用与分组相关条件作为后缀条件

16、SELECT INTO (查询生成)
语法:SELECT*INTO STUDENT1 FROM STUDENT
功能:查询表STUNENT内所有数据 并以此数据生成表STUDENT1
语法:SELECT SNAME,AGE,ADDRESS INTO STUDENT1 FROM SUTDENT WHERE SID=1
功能:查询表STUNENT内条件为SID=1行的SNAME AGE ADDRESS字段信息 并以此数据生成表STUDENT1
语法:INSERT INTO STUDENT1(SNAME,AGE,ADDRESS)SELECT SNAME AGE ADDRESS FROM STUDENT
功能:从STUDENT中查询SNAME AGE ADDRESS的字段信息 并插入STUDENT1中对应的SNAME AGE ADDRESS字段中

17、UPDATE (修改)
语法:UPDATE STUDENT SET ADDRESS='BEIJING'WHERE SID=3
功能:把STUDENT表中条件为SID=3的行中ADDRESS字段修改为'BEIJING'
语法:UPDATE STUDENT SET AGE='18',SNAME='XXX' WHERE SNAME IS NULL
功能:把STUDENT表中SNAME字段为空的行中AGE字段修改为'18' SNAME字段修改为'XXX'
说明:数据操作语法 修改表中字段 也可为空字段赋值

18、DELETE (删除)
语法:DELETE FROM STUDENT WHERE SID=1
功能:删除表STUDENT中条件为SID=1的列的数据
说明:数据操作语法 删除整行数据

19、INNER JOIN (内连接)
语法:SELECT STUDENT.SNAME,SCORE.SCORE,SCBJECT.SCBJECT
FROM STUDENT
INNER JOIN SCORE ON STUDENT.SID=SCORE.SID
INNER JOIN SCBJECT ON STUDENT.SID=SCBJECT.SID
WHERE SCORE.SCORE>=60
功能:内连接STUDENT表、SCORE表和SCBJECT表 查询三个表中共有SID字段且满足SCORE>=60的行
说明:内连接为多表查询最常用的连接方法

20、LEFT\RIGHT\FULL\CROSS JOIN (外连接)
语法:SELECT STUDENT.SNAME,SCORE.SCORE
FROM STUDENT LEFT JOIN SCORE
ON STUDENT.SID=SCORE.SID
功能:左外连接STUDENT表和SCORE表 查询SCORE表中没有的数据和SCORE表与STUDENT表共有的数据
语法:SELECT STUDENT.SNAME,SCORE.SCORE
FROM SCORE RIGHT JOIN STUDENT
ON STUDENT.SID=SCORE.SID
功能:右外连接SCORE表和STUDENT表 功能同上
说明:左外连接和右外连接没有明确界定 完全取决于主表在语法中的位置而确定是左外连接和右外连接
完全连接和交叉连接语法与左外连接右外连接相同 替换关键字LEFT\RIGHT为FULL\CROSS即可 完全连接为查询两个表中共有的信息和非共有的信息 交叉查询为交叉为前表的每行信息与后表的每行信息依次查询 交叉查询所得信息行数为两表行数之积



相关文档
最新文档