admin管理员组

文章数量:1794759

sqlserver学习

sqlserver学习

目录 第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