实体完整性约束
约束种类 功能描述
PRIMARY KEY(主键)约束 唯一识别每一条记录的标志,可以有多列共同组成
IDENTITY(自增)约束 列值自增,一般使用此属性设置的列作为主键
UNIQUE(唯一)约束 可以使用UNIQUE约束确保在非主键列中不存在重复值,但列值可以是NULL(空)
域完整性约束
CHECK(检查)约束 用于限制列中值得范围
FOREIGN KEY(外键) 一个表中的FORENIGN KEY 指向另一个表中的PRIMARY KEY
DEFAULT(默认值)约束 用于向列中插入默认值
NOT NULL(非空)约束 用于强制列不接受NULL(空)值
注意:
1、PRIMARY KEY用于将表中的某类设置为主键,一张表中只有一个主键,主键可以是一列或由多列组成。
2、NOT NULL是对列值进行限制,即在表中添加数据时不允许有NULL值。
3、CHECK约束的语法规则:CHECK(表达式)
外键的使用:字段名 数据类型 [FOREIGN KEY] REFERENCES 表名(字段名)
向数据库中添加值:
语法:INSERT [INTO] table_name [(COLUMN1,COLUMN2,.....)] VALUES (VALUE1,VALUE2,.....)
注意:
1、VALUES需要与COLUMN对应
2、添加数据时,如果字段类型为varchar或datetime,否则必须使用单引号('')引起来。
3、虽然没有显示地添加IDENTIRY约束字段,但是数据库会自动按照IDENTITY规则添加数据
一次添加多行数据
语法:
INSERT [INTO] tabale_name([COLUMN1,COLUMN2,.....])
SELECT VALUE UNION
SELECT VALUE
删除表中的数据
语法:DELECT FROM table_name[WHERE <表达式>]
注意:
1、使用DELETE语句删除数据时,是以整条记录为单位的,不能只删除某个字段
删除整张表数据
语法:TRUNCATE TABLE table_name
两种删除语句的优缺点
语句 优点 缺点
DELETE 选择性地删除,数据可恢复 当删除整张表的数据时效率低
TRUNCATE 只能删除整张表的数据,但是效率高于 不能选择性地删除,数据可恢复
DELETE语句
修改表中的数据
语法:UPDATE table_name SET COLUMN1={},COLUMN2={},.... WHERE<表达式>
注意:分离数据库是将数据库文件从SQL Server中分离出来,而删除数据库是将数据库文件删除。
查询语句语法结构
语法:SELECT FROM [表达式] [ORDER BY [ASC或DESC]]
ORDER BY 子句用于对查询结果进行排序。ASC表示升序,DESC表示降序排列,默认的排序是ASC.
注意:将查询得到的结果称为结果集(RecordSet).SQL Server对大小写不敏感,包括关键字在内。例如,SELECT、select和Select是等效的。
使用别名
1、语法:SELECT 字段名1 别名,字段名2 别名 FROM 表名
2、语法:SELECT 别名=字段名1,别名=字段名2 FROM
3、语法:SELECT 字段名1 AS 别名,字段名2 AS 别名 FROM 表名
注意:使用“=”更改查询结果列名时比较特殊,在SELECT语句中语法必须是“别名=字段名”;
单列排序:SELECT * FROM table_name ORDER BY
多列排序;SELECT * FROM table_name ORDER BY COLUMN1 DESC,COLUMN2 DESC....
查询限定行TOP N
语法:SELECT TOP N FROM [WHERE <表达式>] [ORDER BY [ASC或DESC]]
查询百分比
语法:SELECT TOP N PERCENT FROM [WHERE <表达式>] [ORDER BY [ASC或DESC]]
条件查询注意:
1、在一个WHERE子句中,可以同时使用多个AND运算符链接多个查询条件。
2、在“(表达式1)OR(表达式2)”中,如果表达式1为TRUE,将不再执行表达式2。
SQL Server内置函数(内置函数可作为where条件,聚合函数不能做为where条件)
字符串函数
函数名 示例 函数功能
CharIndex CharIndex('ab','cdab')结果返回3 返回‘ab’在‘cdab’中的位置,将返回第一个字母的位置
Len Len('adc')结果返回3 返回字符串的长度
Upper Upper('abc')结果ABC 将字符串中的小写字母转换为大写
Ltrim Ltrim(' adc')结果返回adc 清楚左边空格
Rtrim Rtrim('abc ')结果返回abc 清除右边空格
Replace Replace('abb','b','z')结果返回azz 替换指定的字符
Stuff Stuff('abcd',1,2,'mm')结果返回mmcd 替换指定范围的字符
substring substring('abc','2','2')结果返回bc 从指定位置截取
实例:测试字符串长度SELECT Len(字段名) FROM table_name
将内置函数作为条件使用:SELECT * FROM table_name WHERE Len(字段名)>VALUE
日期函数
函数名 示例 函数功能
GetDate GetDate结果返回“当前日期” 返回当前日期
DateAdd DateAdd(mm,2,'2009-10-08')结果返回‘2009-12-08’ 向日期指定部分添加数字,其中,yy表示年、mm表示月、dd表示日
DateDiff DateDiff(dd,'2009-09-09','2010-09-09')结果返回‘365’ 返回两个日期之间的间隔,其中,yy表示年、mm表示月、dd表示日
DateName DateName(DW,'2009-09-09')结果返回“星期三” 以字符串的形式返回某个日期指定的部分
DatePart DatePart(DW,'2009-09-09')结果返回“4” 以整数形式返回某个日期指定的部分
实例:获取系统当前日期函数为GetDate(),表达式可以写为“COLUMN1 SELECT * FROM table_name WHERE COLUMN1 注意:在创建数据库时,如果对于时间的选择。例如声明类型YYYY-MM-DD则需要使用Date类型,如果精确到时、分、秒则需要使用Datetime类型。
如果需要使用默认时间则只需在类型后添加 default getdate()。在插入数据时,对应的时间字段只需使用default即可。
判断选课时间是否是星期三的函数为DateName(DW,COLUMN),表达式可以写成“DateName(DW,COLUMN)=‘星期三’”,SQL语句如下:
SELECT * FROM table_name DateName(DW,COLUMN)=‘星期三’
数学函数
函数名 示例 函数功能
Abs Abs(-1)结果返回“1” 求绝对值
Ceiling Ceiling(24.1)结果返回“25” 大于24.1的最小整数
Floor Floor(24.1)结果返回“24” 小于24.1的最大整数
Power Power(2,3)结果返回“8” 计算2的3次方
Round Round(748.32,1)结果返回“748.30” 返回一个数值,舍入到指定的长度或精度
Sign Sign(100)结果返回“1” 正整数返回1,负整数