欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQLServer数据库基础知识点

程序员文章站 2022-03-03 20:00:19
...

SQLServer数据库有哪几种文件组成?
主数据文件:.mdf
次要数据文件:
.ndf
日志文件:*.ldf
创建SQLServer数据库时,需要指定哪些属性?
文件存放位置,分配的初始空间,属于哪个文件组
文件增长:可以按百分比或实际大小指定增长速度
文件容量设置:可以指定文件增长的最大值或不受限
创建数据库语法:

USE master   (数据库中的数据库,默认数据库)
GO
CREATE DATABASE Tset      (数据库名称)
ON PRIMARY              (默认属于PRIMARY主文件组,可省略)
(                                      --数据文件的具体描述
NAME='Tset_data',          (主数据文件的逻辑名称)
FILENAME ='D:\数据库\Tset\Tset_data.mdf',    (路径,文件存放位置)
SIZE=5MB,              (主数据文件的初始大小)
FILEGROWTH=1MB,    (主数据文件的增长率)
MAXSIZE=100MB      (主数据文件增长的最大值)
)
LOG ON      
(                                       --日志文件的具体描述,各参数含义同上
NAME='Tset_log',
FILENAME='D:\数据库\Tset\Tset_log.ldf',
SIZE=3MB,
FILEGROWTH=1MB
)
GO

创建多个数据文件和多个日志文件代码:

CREATE DATABASE employees
ON PRIMARY
( --主要文件
NAME ='employee1',
FILENAME='D:\数据库\Employees\employee1.mdf',
SIZE=10,
FILEGROWTH=10%
),
(
--次要文件
NAME='employee2',
FILENAME='D:\数据库\Employees\employee2.ndf',
SIZE=20,
MAXSIZE=100,
FILEGROWTH=1
)
LOG ON
(
NAME ='employeelog1',
FILENAME='D:\数据库\Employees\employeelog1.ldf',
SIZE=20,
FILEGROWTH=1,
MAXSIZE=50
),
(
NAME ='employeelog2',
FILENAME='D:\数据库\Employees\employeelog2.ldf',
SIZE=20,
FILEGROWTH=1,
MAXSIZE=50
)
GO

删除数据库语法:

DROP DATABASE 数据库名

检测数据库是否存在,如果已存在则删除:

USE master   (设置当前数据库为master,以便访问sysdatabases表)
GO
IF EXISTS(
       SELECT * FROM sysdatabases
       WHERE name='employees')                 (检测该数据库是否存在)
       DROP DATABASE employees                 (删除数据库语句)

创建表语法:

USE employees
GO
CREATE TABLE School
(
 Id INT IDENTITY(1,1) PRIMARY KEY,        --设置为自增和主键
 Name nvarchar(20) NOT NULL,
 IdCard varchar(18) NOT NULL,
 Sex int NOT NULL
)
GO

删除表语法:

DROP TABLE 表名

检测表是否存在,如果已存在则删除 :

USE MySchool
GO 
IF EXISTS(SELECT * FROM sysobjects WHERE name='Student')
DROP TABLE Student

数据完整性有哪几种?各自作用是什么?
1.实体完整性
能够唯一标识表中的每一条记录
实现方式:主键、唯一键、IDENTITY属性
2.域完整性
表中特定列数据的有效性,确保不会输入无效的值
实现方式:类型、缺省值、约束、空值
3.引用完整性
维护表间数据的有效性、完整性
实现方式:建立外键联系另一个表的主键
4.自定义完整性
根据业务处理流程定义的特定业务规则
实现方式:存储过程、触发器、规则

使用约束的目的是什么?
确保表中数据完整性

常用的约束类型:
主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空
非空约束(Not Null):要求列不能存在空值
唯一约束(Unique Constraint):要求该列的值必须唯一,允许为空,但只能出现一个空值
检查约束(Check Constraint):某列的取值范围限制、格式限制等
默认约束(Default Constraint):某列的默认值
外键约束(Foreign Key Constraint):用于在两表之间建立关系,需要指定引用主表的哪一列

添加约束语法:

ALTER TABLE Student
ADD CONSTRAINT UQ_IdentityCard UNIQUE(IdentityCard)

–唯一约束

ALTER TABLE Student
ADD CONSTRAINT DF_Sex DEFAULT(1) FOR Sex

–默认约束

ALTER TABLE Student
ADD CONSTRAINT CK_Sex CHECK(Sex>-1 and Sex<2)

–检查约束

ALTER TABLE Student
ADD CONSTRAINT FK_ClassId foreign key(ClassId) references Class(Id)

–外键约束

创建数据库表:
primary key 关键字属于列的特征,用于标识将该列变为主键列。
identity(标识种子,标识增量)关键字属于列的特征,用于标识该列为自动增长列。
列的特征之间用英文下的空格分隔开来。
在用户自定义的数据库中,系统会默认创建若干个系统内置表。
在系统内置表sys.objects中存储这当前数据库的表名、约束、索引、主键、外键、视图等。
删除数据表语法:drop table 表名

创建约束:

创建主键约束,语法 :alter table 表名 add constraint 约束名 primary key(主键列)
创建唯一约束,语法:alter table 表名 add constraint 约束名 unique(唯一约束列)
创建默认约束,语法:alter table 表名 add constraint 约束名 default(默认值) for 默认列
创建检查约束,语法:alter table 表名 add constraint 约束名 check(约束表达式)
创建外键约束,语法:alter table 主表名 add constraint 约束名 foregin key(外键列) references 主键表(主键列)
删除约束,语法:alter table 表名 drop constraint 约束名

简述下CAST()函数与Convert()函数的区别:
答:CAST(表达式 AS 数据类型)
CONVERT(数据类型[(长度)],表达式[,样式])

CAST()函数和CONVERT函数用于将某种数据类型的表达式转换为另一种数据类型的表达式。与CAST()函数不同之处是,在将日期时间类型/浮点类型的数据转换为字符串数据时,CONVERT()函数可以通过第3个参数指定转换后的字符样式,不同的样式使转换后字符数据的显示格式不同。CONVERT()函数的第3个参数可以省略。