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章 连接查询和分组查询


  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值