SQLServer数据库基础知识点
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个参数可以省略。
上一篇: sql中视图的作用
下一篇: 数据库锁住及 lua 处理方式