SQLServer笔记

这里是我学习完Sqlserver所整理的笔记,仅供参考!


                                                             Sql Server


该数据库不能跨平台应用

一个项目是由前台应用和后台存储形成的。

一、SQLServer启动和关闭

Net Startmssqlserver

Net Stopmssqlserver

严格的说服务器是软件。

二、创建数据库的步骤:

自然语言 à挖掘实体 à挖掘属性 à放关系  à转换成表

三、数据库文件

(1)数据文件

数据库文件是存放数据库数据和数据库对象的文件,数据库文件

有主数据库文件(.mdf)和次数据库文件(.ndf)两种,每个数

据库必须只能有一个.mdf,可以有多个.ndf

主数据文件用来存储数据库的启动信息和部分或全部数据

(2)日志文件

日志文件(.ldf)用来存放数据库的日志信息,每个数据库必须

至少有一个日志文件

三、数据库命令代码

CREATE DATABASE 数据库名

[

ON { [PRIMARY] (NAME = 文件引用名 (逻辑地址),

FILENAME = ‘文件名 (物理地址)’

[, SIZE = 文件大小]

[, MAXSIZE = {文件最大容量 } ]

[ ] [, FILEGROWTH= 文件增长幅度 ] )

} [ ,……n ]

]

 

 

[

LOG ON {( NAME = 文件引用名 (逻辑地址),

FILENAME = ‘文件名 (物理地址)'

[, SIZE = 文件大小]

[, MAXSIZE = {文件最大容量 } ]

FILEGROWTH = ] [, 文件增长幅度 ] )

} [ ,……n ]

]

注意:[]是可有可无的内容;{}为必须存在的内容

使用命令查看、重命名、修改数据库:

使用命令查看数据库:sp_helpdb 数据库名

示例:sp_helpdb school

使用命令重命名数据库

sp_renamedb '旧名', '新名'

示例 :sp_renamedb'school''sch’

使用命令删除数据库

Drop database 数据库名

示例:drop database sch

四、数据冗余

为了数据查找,允许数据有一定的冗余(严格上只有主、外键可以冗余)

数据库3大范式:

第一范式:

如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)

第一范式的目标是确保每列的原子性

第二范式

在满足1NF的前提下,且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF)

第二范式要求每个表只描述一件事情

第三范式:

如果一个关系满足2NF,且除了主键以外的其他列都不传递依赖于

主键列,则满足第三范式(3NF)

第三范式不能够存在传递性依赖

数据完整性 = 可靠性 + 准确性

 

五、约束

检查约束:

eg: student_sex in (‘男’,’女’)

或者student_sex= ‘男’or student_sex = ‘女’

 

使用命令添加、删除列:

语法

ALTER TABLE table_name

|ADD col_name1 column_properties,[…n]

ALTER TABLE table_name

|ADD col_name1 column_properties,[…n]

|DROP COLUMN col_ _ name1 ,[ n]

示例

ALTER TABLE st

P P DROP N COLUMN s st t _name

示例

E R E ALTER TABLE st

ADD st_name varchar(50)

 

数据标识类定义之后,数据只要操作就会自动加1.即使是错位的操作也会自增

不拥有外键的是主表

五、选择主键的原则

主键不允许进行修改

• 最少性

尽量选择单个键作为主键

• 稳定性

尽量选择数值更新少的列作为主键

六、T- SQL的组成

1.DDL(Data Dfinition Language数据定义语言)

——用来建立数据库、数据库对象和定义其列

——CREATE TABLE、DROP TABLE等

2.DCL(Data Control Language数据控制语言)

——用来控制存取许可、存取权限等

——GRANT、REVOKE等

3.DML(Data Manipulation Language数据操作语言)

——查询、插入、删除和修改数据库中的数据

——SELECT、INSERT、UPDATE、DELETE等

变量说明、流程控制、功能函数

——定义变量、判断、分支、循环结构等

——日期函数、数学函数、字符函数、系统函数等

六、查询

1.查询空行:SELECT teacher_name FROM teacher WHERE teacher_age IS NULL

2. 限制固定行数:

SELECT TOP 5 teacher_name, teacher_age

FROM teacher WHERE teacher_work = ‘ 讲师’

3. 返回百分之多少行:

SELECT TOP 10 PERCENT teacher_name, teacher_age

FROM teacher WHERE teacher_work = ‘ 讲师’

六、模糊查询

1. 模糊查询 LIKE(像此类的数据)

查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容

Eg: SELECT SName AS 姓名 FROMStudents

WHERE SName LIKE '张%'

2. 模糊查询 BETWEEN(在一个范围之间)

把某一字段中内容在特定范围内的记录查询出来

Eg :SELECT StudentID, Score FROM SCore WHERE Score

BETWEEN 60 AND 80

3. 模糊查询 IN(像零散的一些数据点)

把某一字段中内容与所列出的查询内容列表匹配的记录查询出来

Eg: SELECT SName AS 学员姓名,SAddress As 地址 FROMStudents

WHERE SAddress IN ('北京','广州','上海')

 

 

六、聚合函数

1.求和sum

SELECT SUM(grade_value) AS 总成绩 FROM grade

2. 求平均AVG

ELECT AVG(grade_value) AS 平均成绩 FROM grade

3.求最大值、最小值

SELECT MAX(grade_value) AS 最高分,

MIN(grade_value) AS 最低分 FROM grade

4.计数count

SELECT COUNT( ) AS 优秀人数 FROM grade

WHERE grade_value >= 90

如果在select中写了聚合函数(聚合列)不能在后面写聚合列,两者不能混合使用;但后面可以继续写同类型的列

集合以前的行筛选用where,聚合以后的行筛选要用having

七、单表查询

Select * from 表名

 

Select 列筛选 from 表名

Where 行筛选

Group by 分组

Having 行筛选

Order by 排序

八、多表联合查询

多表联合查询适用于同时查询几张存在关系的表

1.内联结 (INNER JOIN)

2.外联结

——左外联结 (LEFT JOIN): 匹配上就匹配上,没有匹配上的补Null。即左边的表中数据无论如何也要保存下来。

—— 右外联结 (RIGHT JOIN):

匹配上就匹配上,没有匹配上的补Null。即右边的表中数据无论如何也要保存下来。

——完整外联结 (FULL JOIN):

匹配上就匹配上,没有匹配上的补Null。即左、右两边的表中数据无论如何也要保存下来。

3.交叉联结 (CROSS JOIN)

九、子查询(嵌套查询)

子查询时解决复杂查询问题的重要手段,用内层查询的结果作为外

层查询的条件进行查询操作

十、几种约束

1. 主键约束----PK

2. 默认值约束-----DF

3.唯一值约束-----UQ

4. Check约束-----CK

5.外键约束--------FK

十一、sql变量

全局变量: @变量名       用户自定义可读写

局部变量 : @@变量名      系统定义,只读

 

十二、强制转换

1. cast@变量名as 要转换的数据类型)

print '@age = ' + cast(@age as varchar(2))

2.convert(要转换的数据类型,@变量名)

print'@age='+convert(varchar(2),@age)

 

Ctrl +1 : 错误代码纠正方案

十三、事物

1. 为什么需要事务?

同时执行多条INSERT,UPDATE,DELETE语句时.要保证数据的正确性。

2. 什么是事务?

事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作

这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行(要么全部执行,要么全丌执行)

事务是一个不可分割的工作逻辑单元

 

3.事物的特性:

事务必须具备以下四个属性,简称ACID属性:

原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行

一致性(Consistency):当事务完成时,数据必须处于一致状态

隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于戒影响其他事务

永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性

4. T-SQL中使用事务

BEGIN TRANSACTION   开始事物

COMMIT TRANSACTION   提交事务

ROLLBACK TRANSACTION  回滚事物

@@ERROR        统计有没有异常发生

5.事务的分类

显式事务

隐性事务

自动提交事务

6.事务的要点

保证执行多条SQL的Statement对象为同一对象,或者为同一个Connection创建的对象。

即:sta可以是不同的类型写法,但是必须要保证来自同一个con

十四、视图

视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 同一张原始表,根据不同用户的不同需求,可以创建不同的视图

1. 视图的用途

(1)筛选表中的行

(2)防止未经许可的用户访问敏感数据

(3)降低数据库的复杂程度

(4)将多个物理数据库抽象为一个逻辑数据库

十五、索引----查询

1. 什么是索引

是SQL Server编排数据的内部方法。它为SQLServer提供一种方法来编排查询数据

索引页:数据库中存储索引的数据页;索引页类似于汉语字(词)典中按拼音戒笔画排序的目录页。

索引的作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。

2. 索引类型

(1)唯一索引:唯一索引丌允许两行具有相同的索引值

(2)主键索引:为表定义一个主键将自劢创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空

(3)聚集索引(Clustered):表中各行的物理顺序不键值的逻辑(索引)顺序相同,每个表叧能有一个

(4)非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个

3. 索引的优缺点

(1)优点:

 加快访问速度;

 加强行的唯一性。

(2)缺点:

 带索引的表在数据库中需要更多的存储空间;

 操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新。

4. 创建索引的指导原则

请按照下列标准选择建立索引的列。

 (1).该列用于频繁搜索

 (2).该列用于对数据进行排序

 请不要使用下面的列创建索引:

 (1).列中仅包含几个不同的值。

 (2).表中仅包含几行。为小型表创建索引可能不太划算,因为SQL Server在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值