目录
第6章 程序数据集散地:数据库
第7章 用表组织数据
第8章 用SQL语言操作数据
第9章 数据查询基础
第10章 模糊查询和聚合函数
第11章 连接查询和分组查询
(1)检验每行数据是否符合要求
(2)检验每列数据是否符合要求
1.实体完整性约束
要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。
通过索引,唯一约束,主键约束或标识列属性,可以实现表的实体完整性。这些方法的实现将在后面说明
2.域完整性约束
指的是给定列输入的有效性。
通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空约束等多种方法,可以实现表的域完整性。
3.引用完整性约束
在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系。
4.自定义完整性约束
用户自定义完整性用来定义特定的规则。例如.在向用户信息表中插入一个用户记录时,要求通过身份证编号来检查在另外一个数据库中是否存在该用户,并且该用户的信誉度是否满足要求,等等。若不满足要求,则不能够插入,这个时候就需要使用数据库的规则,存储过程等方法来进行约束。
7.3.2建立主键 点击右键,“设置主键” 7.3.3默认值
7.3.4识别列
7.3.5向表中插入数据
第6章 程序数据集散地:数据库
第7章 用表组织数据
第8章 用SQL语言操作数据
第9章 数据查询基础
第10章 模糊查询和聚合函数
第11章 连接查询和分组查询
第6章 程序数据集散地:数据库
分离附加数据库
分离
分离数据库是从服务器中移去逻辑数据库,但不会删除数据库文件:附加数据库将会创建一个新的数据库,并使用已有的数据库文件和事务日志文件中的数据。
分离数据库后,D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA文件夹下面增加了两个文件:ldgxdb.mdf和ldgxdb_log.ldf
附加数据库
选择刚才的文件,操作成功后,可以看到数据库ldgxdb又显示在对象资源管理器中。
备份还原数据库
备份数据库
备份完数据库后
D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\ldgxdb.bak
还原数据库
收缩数据库
通过收缩所有数据库文件释放未使用的空间,可以减少数据库的大小。若要收缩单个数据库文件,请使用“收缩文件”。
生成脚本
第7章 用表组织数据
7.1表相关的几个概念
7.1.1数据完整性
为了实现完整性,数据库需要做以下两方面的工作(1)检验每行数据是否符合要求
(2)检验每列数据是否符合要求
1.实体完整性约束
要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。
通过索引,唯一约束,主键约束或标识列属性,可以实现表的实体完整性。这些方法的实现将在后面说明
2.域完整性约束
指的是给定列输入的有效性。
通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空约束等多种方法,可以实现表的域完整性。
3.引用完整性约束
在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系。
4.自定义完整性约束
用户自定义完整性用来定义特定的规则。例如.在向用户信息表中插入一个用户记录时,要求通过身份证编号来检查在另外一个数据库中是否存在该用户,并且该用户的信誉度是否满足要求,等等。若不满足要求,则不能够插入,这个时候就需要使用数据库的规则,存储过程等方法来进行约束。
7.3完善表的设计结构
7.3.1是否允许为空值 选中表,点击右键,选择“设计”7.3.2建立主键 点击右键,“设置主键” 7.3.3默认值
7.3.4识别列
7.3.5向表中插入数据
7.5建立表间的关系
ALTER TABLE [dbo].[Zonghe2] WITH CHECK ADD CONSTRAINT [FK_Zonghe2_Zonghe2] FOREIGN KEY([SubjectId])
REFERENCES [dbo].[Subject2] ([SubjectId])
7.6 建立检查约束
check约束表达式
score>0 and score<100
smail like '%@%'
第8章 用SQL语言操作数据
第9章 数据查询基础
9.1.2使用select 语句进行查询
9.3在查询中使用函数
字符串函数
-- 寻找一个指定的字符串在另一个字符串中的起始位置
-- 运行结果:3
select CHARINDEX('a','ssadd',1);
-- 返回传递给它的字符串长度
-- 运行结果:6
select LEN('劳动关系学校');
-- 把传递给它的字符串转换为大写
-- 运行结果:SQL SERVER课程
select UPPER('sql server课程');
-- 清除左边的空格
-- 运行结果:[劳动关系学校 ]
select concat('[',LTRIM(' 劳动关系学校 '),']');
--清除右边的空格
-- 运行结果:[ 劳动关系学校]
select concat('[',RTRIM(' 劳动关系学校 '),']');
--替换一个字符串中的字符
-- 运行结果:1二三四
select REPLACE('一二三四','一','1');
--在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串
-- 运行结果:A我的音乐我的世界EFG
select STUFF('ABCDEFG',2,3,'我的音乐我的世界');
日期函数
--获取当前的系统日期
-- 运行结果:2018-01-29 11:04:33.730
select GETDATE();
--将指定的数值添加到指定的日期部分后的日期,mm:日期部分的month
-- 运行结果:2009-05-01 00:00:00.000
select DATEADD(mm,4,'01/01/2009');
--两个日期之间的指定日期部分的间隔
-- 运行结果:4
select DATEDIFF(mm,'01/01/2009','05/01/2009');
--日期中指定日期部分的字符串形式,dw:日期部分的weekday
-- 运行结果:星期六
select DATENAME(dw,'01/01/2000');
--日期中指定日期部分的整数形式,day:日期部分中的day
-- 运行结果:15
select DATEPART(day,'01/15/2000');
数学函数
--数学函数
-- 返回从0到1之间的随机float值
-- 运行结果:0.064468287757367
select RAND();
--取数值表达式的绝对值
-- 运行结果:43
select ABS(-43);
--取大于 或等于指定数值,表达式的最小整数
-- 运行结果:44
select CEILING(43.5)
--取小于或等于指定表达式的最大整数
--运行结果:43
select FLOOR(43.5)
--取数值表达式的幂值
--运行结果:25
select POWER(5,2);
--取数值表达式四舍五入为指定精度
--运行结果:43.500
select ROUND(43.543,1);
--对于正数返回+1,对于负数返回-1,对于0则返回0
--运行结果:-1
select SIGN(-43)
--取浮点表达式的平方根
--返回结果:3
select SQRT(9);
系统函数
--用来转变数据类型
--返回结果:12345
select CONVERT(VARCHAR(5),12345);
--返回当前用户的名字
--返回结果:dbo
select CURRENT_USER;
--返回用于指定表达式的字节数
--返回9
select DATALENGTH('中国A联盟');
--返回当前用户所登录的计算机名字
--返回结果:IDXZC2FNKSQOYM6
select HOST_NAME();
--返回当前所登录的用户名称
--返回结果:sa
select SYSTEM_USER;
--从给定的用户ID返回用户名
--返回结果:dbo
select USER_NAME(1);
第10章 模糊查询和聚合函数
10.1模糊查询
通配符
--_一个字符
select * from sel where a like 'S110100_';
--% 任意长度的字符串
--[]括号中所指定范围内的一个字符
select * from sel where a like 'S110100[0-5]';
--[^]不在括号中所指定范围内的一个字符
select * from sel where a like 'S110100[^0-5]';
10.2 T-SQL中的聚合函数
-- sum返回表达式中所有数值的总和,空值将被忽略,只能用于数字类型的列
--avg函数返回表达式中所有数值的平均值,空值将被忽略。只能用于数字类型
select SUM(f) as 总值, AVG(f) as 平均值,MAX(f) as 最大值,MIN(f) as 最小值,COUNT(f) as 数量 from sel;
第11章 连接查询和分组查询
更多推荐
sqlserver学习
发布评论