Sql基本语法
USE (使用)
语法:USE NETBAR
功能:使用名为的NETBAR数据库
说明:代码优先级高于手动设置
CREATE (建立)
语法:CREATE DATABASE STUDENT
功能:建立名为STUDENT的数据库
说明:数据定义语法 可用于库的建立、表的建立及其它建立
DROP (删除)
语法:DROP TABLE STUDENT
功能:删除名为STUDENT的表
说明:数据定义语法 可用于库、表、约束的删除及其它删除
TRUNCATE (截断)
语法:TRUNCATE TABLE STUDENT
功能:删除名为STUDENT表下所有行
说明:数据定义语法 等同于不带条件的DELETE 不可回滚
ALTER (修改)
语法:ALTER TABLE STUDENT ADD SEX CHAR(2)
功能:修改名为STUDENT的表添加名为SEX的字段 长度为CHAR类型 2字节
语法:ALTER TABLE STUDENT DROP COLUMM SEX
功能:修改名为STUDENT的表删除名为SEX的字段
说明:数据定义语法 每条ALTER命令只能执行一次修改操作
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('男','女'))
功能:同上
说明:最重要的域完整性约束语法 检查约束
NOT NULL (非空 必填)
语法:NUMBER VARCHAR(20) NOT NULL
功能:NUMBER字段必须填写
说明: 域完整性约束语法 数据约束
DEFAULT (默认)
语法:PAYMENT VARCHAR(20) DEFAULT 0
功能:PAYMENT字段如不填写 默认为0
说明:域完整性约束语法 默认约束
PRIMARY KEY (主键)
语法:SID VARCHAR(20) PRIMARY KEY
功能:SID字段必填 设置为主键
语法:SID INT CLASSID VARCHAR(20)PRIMARY KEY(SID,CLASSID)
功能:把SID字段和CLASSID字段设置为复合主键
说明:实体完整性约束语法,不得为空,不得重复。复合主键尽量不要频繁使用!
UNIQUE (唯一)
语法:SID VARCHAR(20) UNIQUE
功能:SID字段为唯一值
说明:实体完整性约束语法 不得重复 但可以为空
IDENTITY (标识符)
语法:SID INT IDENTITY(1,1) PRIMARY KEY
功能:SID为标识字段 起始编号为1 每次增长为1 设置为主键
说明:实体完整性约束语法 只能用于整数 自动编号
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需注意特别语法 具体如上示例三
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语法单独设立主外键关系
说明:引用完整性约束语法 插入信息时先主键表后外键表 删除信息时先外键表后主键表 删除表时先外键表后主键表
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')
功能:同上 如省略原表列名 默认为整行插入 标识符字段不用输入
说明:数据操作语法 以行为单位插入
DELETE(删除)
语法:DELETE FROM STUDENT
功能: 删除STUDENT表中所有记录
语法:DELETE FROM STUDENT WHERE AGE = '18'
功能:删除STUDENT表中所有AGE为18的记录
说明:数据操作语法 以行为单位删除
UPDATE(修改)
语法:UPDATE STUDENT SET SNAME= 'XXX' WHERE AGE = '18'
功能:修改STUDENT表中所有AGE为18的记录的SNAME改为XXX
说明:数据操作语法 以行为单位修改
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出现且只能用与分组相关条件作为后缀条件