以sql server数据库为例的知识点

以sql server数据库为例的知识点(一)

1:创建数据库
方式:工具创建数据库 脚本创建数据库
服务器名称:local . 远程:服务器Ip,端口号
身份验证:Windows身份验证
SQL server身份验证 登录名 密码
Windows身份验证登录,安全性----登录名—右击登录名,选择新建登录名,选择SQL server
身份验证,设置登陆密码,给它设置服务器角色(权限)
创建数据库的过程:右击数据库节点,选择新建数据库,设置数据库名称,路径,点击确定,成功创建好数据库。

数据库:文件的形式

数据库:文件和文件组组成
2:数据库文件
1)主要数据文件 存放数据和数据库的初始化信息。每个数据库有且只能有一个主要的数据文件、mdf 扩展名
2)次要数据文件 存放除了主要的数据文件以外的所有数据的文件。次要数据文件并不是必须的可以没有,如果有的话,可以是一个,也可以是多个,.ndf扩展名
3)事务日志文件 存放用于恢复数据库的所有日志信息。每个数据库至少有一个日志文件,也可以有多个
默认.ldf扩展名

3:文件组:是数据库文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便对文件的分配和管理。分为两种类型
1)主文件组 primary 主要数据文件和没有明确指派给其他文件组的文件
2)用户自定义的文件组 create Database或者alert database语句中,filegroup关键字指定的文件组
设计原则:1)文件只能是一个文件组的成员
2)文件或文件组不能由一个以上的数据库使用
3)数据和日志信息不能属于同一个文件或文件组
4)日志不能作为文件组的一部分。

4:数据库常用的对象
1)表:包含数据库中所有的数据对象,行和列组成,用于组织和数据存储
2)字段:表中的列 一个表可以有多个列,自己的属性:数据类型(决定了该字段存储的那种类型),大小(长度)
3)视图:表(虚拟表)一张或者多张表中导出来的表 用户查看数据的一种方式,结构和数据是建立在对表的查询基础之上的。
4)索引:为了给用户提供一种快速访问数据的途径,是依赖于表而建立的,索引检索数据时,不用对整个表进行扫描,可以快速的查找到所有的数据
5)存储过程:是一组为了完成特定功能的SQL语句的集合(可以有查询,插入,修改,删除),编译后,存储在数据库中,以名称进行调用,当调用执行时,这些操作就会被执行。
6)触发器 在数据库中,属于用户定义的SQL事务命令集合,针对于表说,当对表执行增删改操作时,命令就会自动触发而去执行。
7)约束:对数据表中的列,进行的一种限制。可以更好的规范表中的列
8)缺省值:对表中的列可以指定一个默认的值,当进行插入时如果没有为这个列插入值,那么就会自动以预先设置的默认值进行补充;
5:数据类型分类
数值型:
1)整型数据类型:bigint int smallint tinyint
2)浮点型:float 近似值 存在精度损失;rel近似数值。 float(24) decimal 精确数值 不存在精度的损失 decimal(18)
3)货币类型:smallmoney money
字符型:
1)char 固定长度 8000
2)varchar(n)可变长度字符串 8000
3)varchar(max)可变长度字符串
4)text 可变长度字符串 2GB
unicode字符串
5) ncha(n) 4000
6) nvarchar(n) 4000
7) nvarchar(max) varchar长度的1/2
8)ntext
前面带n,存储中文汉字还是英文或者数字,长度都是1,存储大小2个字节,不带n,英文或数字,就是1个长度,中文就是两个长度
日期类型:
1)datetime 精确度高;
2)datetime2精确的更高,100纳秒
3)smalldatetime 精度1分钟 时间范围小
4)date 存储时期
5)time存储时间
其他类型
1)unique identifier guid 全球唯一标识符;

6:《1》约束的定义:规定表中的规则。如果存在违反约束的数据行为,行为就会被阻止。
《2》分类:
主键 primary key 约束 唯一性非空 不能修改
外键 foreign key 约束 加强两个表的一列或者多列数据之间的连接的。先建立主表的主键,然后再定义从表中的外键。只有主表
主键才能被从表用来作为外键使用。主表限制了从表的更新和插入的操作。当删除主表中的某种数据,应该是先删除从表中相关的数据在删除主表;
unique约束 唯一性约束 确保表中的一列数据没有相同的值。与主键约束相似。但又不相同主键只能有一个,但一个表中可以定义多个唯一约束;
check约束:通过逻辑表达式来判断数据的有效性,用来限制输入一列或者多列的值的范围。
default约束:默认值约束。用户再插入新的数据行时,如果该行没有指定的数据,那么系统会将默认值赋给该列,如果没有设置默认值,系统就会默认为null;

7:数据库脚本:用于创建数据库对象的语句集合。
T-SQL:Transact-SQL 基于SQL(Structured Query Language)结构化查询语言,用于应用程序和数据库之间沟通的编程语言。sql server支持的脚本语言;
SQL语言:一种有目的的编程语言,用于存取数据,查询,更新和管理关系数据库,高级的非过程化的编程语言。
SQL语言作用:可以完成移植,提高数据的访问效率,完成对数据的相关处理
  SQL语言分类:
1) DQL 数据查询语言 select 列 from 表面 where 条件
2) DML数据操纵语言 Insert 插入 insert into 表名 (列,列,…) values (对应的值,对应的值)
update更新 update 表名 set 列名=值,列名=值 where 条件
delete删除 delete from 表名 where 条件
3)DDL 数据定义语言 创建数据库及其对象 Create/Alter/Drop Database/Table/View/Proc/Index
4) DCL数据控制语言 用于授予或回收访问数据库某种特权,对数据库实行监视等 commit 提交 rollback 回滚 grant授权

8:创建脚本:
为什么创建新的数据,要选择master?
master:系统数据库,它记录了SQL server 系统的所有系统级信息,还记录了所有其他数据库的存在,数据库文件的位置,SQL server的初始化信息。
使用脚本创建数据库
user master
go
create database 数据库名
on primary
(
–主要数据库文件的设置
name
filename
size
filegrowth
)
log on
(
–日志文件的设置
name
filename
size
filegrowth
)
go

删除数据库
–删除数据库
drop database 数据库名
go

9:使用T-SQL创建表
《1》 表信息准备
产品信息表:标识列,int
编号 varchar(50)
名称 nvarchar(50)
产品类型 TypeId int
价格 decimal(18,2)
数量 int
产品类型表 :编号:TypeId int
名称:nvarchar(20)
《2》脚本创建表:
同一个数据库下,不能有两张表同名
use 数据库名
go

create table 表名

----------------列名 类型 长度 是否为空 标识列 主键 默认值,约束 列与列之间以逗号隔开;

10:
《1》直接在原来的 脚本基础上进行修改
先把脚本代码进行修改,在删除原来的表,然后再执行创建表的脚本代码
这种方式,一般情况都不采用,后果很严重。除非表里数据不重要或者空表,可以使用上面这种方式。
《2》alter table进行修改
1)添加一列:alter table 表名 add 列名 数据类型 是否为空
2)删除一列:alter table 表名 drop column 列名
3)修改列:一般情况不要修改列名,在设计时,定义好就不要改了。修改的是数据类型,是否为空
alter table 表名 alter column 列名 类型 是否为空

猜你喜欢

转载自blog.csdn.net/m0_46454966/article/details/127415684