数据库的基础语句-创建数据库、创建表、添加各种约束-扫盲一

SQLServer数据库有哪几种文件组成?

主数据文件:*.mdf

次要数据文件:*.ndf

日志文件:*.ldf

创建SQLServer数据库时,需要指定哪些属性?

1.文件存放位置,分配的初始空间,属于哪个文件组

2.文件增长:可以按百分比或实际大小指定增长速度

3.文件容量设置:可以指定文件增长的最大值或不受限

创建数据库

CREATE  DATABASE  数据库名
 ON [PRIMARY]
 (
  <数据文件参数> [,…n]  [<文件组参数>]
 )
 [LOG ON] 
 (
  <日志文件参数> [,…n]
 )

 

示例

使用CREATE DATABASE语句创建数据库MySchool,

要求:

1.该数据库具有一个数据文件和一个日志文件

2.文件保存在D盘已有的文件夹Project下

3.数据文件的大小初始为5MB,最大值为100MB,文件增长率是15%

4.日志文件的大小初始为2MB,增长量是1MB

CREATE DATABASE MySchool
   ON  PRIMARY                  --默认就属于PRIMARY主文件组,可省略
(
  NAME=' MySchool_data', --主数据文件的逻辑名
   --主数据文件的物理名
  FILENAME='D:\project\MySchool_data.mdf',  
  SIZE=5MB,                    --主数据文件初始大小
  MAXSIZE=100MB,        --主数据文件增长的最大值
  FILEGROWTH=15%     --主数据文件的增长率
)
LOG ON
(
  NAME='MySchool_log',
  FILENAME='D:\project\MySchool_log.ldf',
  SIZE=2MB,
  FILEGROWTH=1MB
)
GO 

 

示例2

使用CREATE DATABASE语句创建数据库Employee,

要求:

1.数据库具有多个数据和日志文件

2.分别设置主数据文件和次要数据文件

3.分别设置不同的日志文件

 LOG ON 
  (
     --日志文件1的具体描述
     NAME = 'employeelog1', 
     FILENAME = 'D:\project\employeelog1_Log.ldf' , 
     SIZE = 10, 
     FILEGROWTH = 1
  ),
  (
     --日志文件2的具体描述-
     NAME = 'employeelog2', 
     FILENAME = 'D:\project\employeelog2_Log.ldf' , 
     SIZE = 10, 
     MAXSIZE = 50, 
     FILEGROWTH = 1
  )
GO 

 

删除数据库

删除数据库的语法

DROP DATABASE 数据库名


USE master  --设置当前数据库为master,以便访问sysdatabases表
GO
IF  EXISTS (
    SELECT * FROM  sysdatabases 
    WHERE  name ='MySchool')
       DROP DATABASE MySchool
CREATE  DATABASE MySchool
ON (
  … …
)
……
GO

 

表的基础知识

简述创建表的基本步骤

1.确定表中有哪些列

2.确定每列的数据类型

3.给表添加各种约束

4.创建各表之间的关系

 

整型数据:int,smallint

浮点数据:float,numeric decimal,numeric

 

字符数据:

固定长度:char(6)

可变长度:varchar(10|max)

固定长度:nchar(6)

可变长度:nvarchar(10|max)

 

布尔数据(真/假)

bit:1/ 0

 

货币数据

money

 

日期数据

datetime

 

 


创建表

CREATE TABLE  表名
 (
    列名1 数据类型 列的特征,
    列名2 数据类型 列的特征,
     ...
)

列的特征:

1.包括该列是否为空(NULL)

2.是否是标识列(自动编号)

3.是否有默认值、是否为主键等

 

示例:

USE MySchool                       --将当前数据库设置为MySchool
GO
CREATE  TABLE  Student    --创建学生信息表
(
  StudentNo   int  NOT  NULL,                       --学号,非空(必填)
  LoginPwd  nvarchar(20)  NOT  NULL,        --密码,非空(必填)
  StudentName  nvarchar(20)  NOT  NULL,  --姓名,非空(必填)
  Sex bit NOT NULL,                                       --性别,非空(必填)
  GradeId int NOT NULL,                                --年级号(必填)
  Phone nvarchar(50) NULL,                       --电话
  BornDate  datetime  NOT  NULL,                --出生日期(必填)
  Address  nvarchar(255) NULL,                   --地址
  Email nvarchar(50) NULL,          --邮件帐号
  IDENTITYCard varchar(18) NOT  NULL      --身份证号(必填)
) 
GO

 


删除表

DROP TABLE 表名

示例:

--将当前数据库设置为MySchool,以便在MySchool数据库中建表
USE MySchool
GO
IF EXISTS (SELECT * FROM  sysobjects  WHERE  name='Student' )
    DROP  TABLE  Student
CREATE  TABLE Student    --创建学生信息表
(
  … …
) 
GO

数据完整性有哪几种?各自作用是什么?

 

实体完整性

1.能够唯一标识表中的每一条记录

2.实现方式:主键、唯一键、IDENTITY属性

域完整性

1.表中特定列数据的有效性,确保不会输入无效的值

2.实现方式:类型、缺省值、约束、空值

引用完整性

1.维护表间数据的有效性、完整性

2.实现方式:建立外键联系另一表的主键

自定义完整性

1.根据业务处理流程定义的特定业务规则

2.实现方式:存储过程、触发器、规则

 

使用约束的目的是什么?

确保表中数据完整性

常用的约束类型有哪些?

1.主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空

2.唯一约束(Unique Constraint):要求该列数据唯一,允许为空,但只能出现一个空值

3.检查约束(Check Constraint):某列取值范围限制、格式限制等

4.默认约束(Default Constraint):某列的默认值

5.外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的哪列

 

约束名的取名规则推荐采用:约束类型_约束列

1.主键(Primary Key)约束:如 PK_stuNo

2.唯一(Unique Key)约束:如 UQ_stuID

3.默认(Default Key)约束:如 DF_stuAddress

4.检查(Check Key)约束:如 CK_stuBornDate

5.外键(Foreign Key)约束:如 FK_stuNo

 


 

添加约束

ALTER TABLE 表名  
     ADD CONSTRAINT 约束名  约束类型  具体的约束说明

约束名的取名规则推荐采用:约束类型_约束列

1.主键(Primary Key)约束:如 PK_stuNo

2.唯一(Unique Key)约束:如 UQ_stuID

3.默认(Default Key)约束:如 DF_stuAddress

4.检查(Check Key)约束:如 CK_stuBornDate

5.外键(Foreign Key)约束:如 FK_stuNo

 

删除约束的语法

ALTER TABLE 表名  
      DROP CONSTRAINT 约束名

示例

例如:删除Student表中地址默认约束
ALTER  TABLE  Student  
     DROP  CONSTRAINT  DF_stuAddress

 

需求说明:

使用T-SQL脚本向Subject表中插入记录,随后,使用ALTER TABLE语句向课程表Subject中添加相关约束

1.主键约束:课程编号

2.非空约束:课程名称

3.检查约束:学时必须大于等于0

4.外键约束:主表Grade和从表Subject通过GradeID建立引用关系

USE MySchool
GO
ALTER TABLE Subject   --主键约束(课程编号)
   ADD CONSTRAINT PK_Subject PRIMARY KEY (SubjectNo)

ALTER TABLE Subject  --非空约束(课程名称)
   ADD CONSTRAINT CK_SubjectName CHECK (SubjectName is not null)

ALTER TABLE Subject WITH NOCHECK  --检查约束(学时必须大于等于0)
   ADD CONSTRAINT CK_ClassHour CHECK (ClassHour>=0)

ALTER TABLE Subject   --外键约束(主表Grade和从表Subject建立引用关系)
   ADD CONSTRAINT FK_GradeId          
      FOREIGN KEY (GradeId) REFERENCES Grade (GradeId)
GO

WITH NOCHECK对表中已 有数据不做约束检查,因此 不能保证表中数据的正确性

 


 

总结

数据库的物理实现的步骤

1.创建数据库

2.创建表

3.添加各种约束

4.创建数据库的登录账户并授权

创建数据表后可以添加的约束类型

1.主键约束(Primary Key Constraint)

2.唯一约束(Unique Constraint)

3.检查约束(Check Constraint)

4.默认约束(Default Constraint)

5.外键约束(Foreign Key Constraint)

 

posted @ 2019-03-04 14:38  橙-极纪元JJYCheng  阅读(2716)  评论(0编辑  收藏  举报