上一篇文章简单梳理了一下SQL Server数据库的安装和基本操作,这篇文章主要讲述一下数据库表的管理
一.数据库的创建
有关数据库的创建有两种方式,一种是通过视图创建,第二种就是通过T-SQL语句来创建了,通过视图创建比较简单,下面主要介绍一下T-SQL语句是如何创建数据库的
1 CREATE DATABASE demo
2 ON --指定主文件属性
3 (
4 NAME = ' demo ',--主文件逻辑名称
5 FILENAME = 'D:\ demo .mdf',--主文件存放在D盘根目录下
6 SIZE = 5, --主文件初始大小
7 FILEGROWTH = 10% --主文件增长方式
8 )
9 --注:"--"为单行注释符,"/**/为多行注释符"
10--更详细的创建代码在上篇文章中已经提到,本文中就不再赘述
二.SQL Server的数据类型
首先我们需要思考一个问题:为什么需要数据类型?
相信大家家里都有衣柜吧,衣柜里被分成大小不同的一些格子,有的放上衣,有的放被子,有的放裤子,每个东西都会放到适合其大小的地方,
在SQL中,数据类型和衣柜中大小不一的格子类似。对于不同的数据,需要分类存储.
那么在SQL中有哪几种类型呢?
1.数字数据类型
2.字符数据类型
字符数据类型对应Java中的字符串类型
3.日期和时间数据类型
SQL中,时间日期类型应用很广泛.例如在转账记录中时间就需要用到
以上就是一些基本的常用数据类型,我们实际使用中根据需要来选择合适的数据类型,一般来说节省空间效率要低,浪费空间效率高
三.数据完整性
上面讲完了数据类型,接下来开始讲数据的完整性,那么什么是数据的完整性呢?
数据完整性(Data Integrity):是指数据的精确性(Accuracy)和可靠性(Reliability)为了防止数据库中存在不符合语义的数据,数据库提供一种机制来检查数据库中的数据,这种机制就被成为完整性检查:
实体完整性(Entity Integrity) :
PRIMARY KEY(主键)约束
IDENTITY(自增)约束
UNIQUE(唯一)约束
域完整性(Domain Integrity)
CHECK(检查)约束
FOREIGN KEY(外键)约束
DEFAULT(默认值)约束
NOT NULL(非空)约束
引用完整性(Referential Integrity)
Foreign Key Counstraint(外键约束) 需要建立两表间的关系并引用主表的列
用户自定义完整性(User-defined Integrity)
规则
约束
触发器
下面就用代码来进行完整性演示:
1 --PRIMARY KEY约束:唯一识别每一条记录的标志,可以由多列共同组成
2 CREATE TABLE student
3 (
4 stuNo int primary key,--学号为主键,指定为主键列,stuNo的值不能重复也不能为NULL
5 stuName varchar(20)
6 )
1 --IDENTITY 约束:列值自增,一般使用此属性设置的列作为主键
2 CREATE TABLE student
3 (
4 sId int identity(1,1) primary key,--Identity(1,1)表示第一行记录的sId值为1,第二行的值为2。以后每次加1,不需要用户显式地添加数据
5
6 stuName varchar(20)
7 )
1 --UNIQUE(唯一约束) :可以使用UNIQUE约束确保在非主键列中不存在重复值,但列值可以是NULL(空)
2 CREATE TABLE student
3 (
4 sId int identity(1,1) primary key,
5 stuTel varchar(13) unique --电话号码字段(可以为空,但不能重复)
6 )
1 --CHECK(检查)约束:用于限制列中的值的范围
2 CREATE TABLE student
3 (
4 sId int identity(1,1) primary key,
5 stuTel varchar(13) unique,--电话号码字段(可以为空,但不能重复)
6 stuAge int check(stuAge>=15 and stuAge<=30)--学生年龄在15到30之间
7 --Check(表达式):只有满足表达式的值才是合法的
8
9 )
1 --DEFAULT(默认值)约束:在不指定列值时,将以默认值填充
2 CREATE TABLE student
3 (
4 sId int identity(1,1) primary key,
5 --电话号码字段(可能为空,但不能重复)
6 stuTel varchar(13) unique,
7 --学生年龄在15到30之间
8 stuAge int check(stuAge>=15 and stuAge<=30),
9 --学生国籍,默认为“中国”
10 stuContry varchar(20) not null default ‘中国’--指定该列的值不能为NULL
11 )
下面来用一个实例来示范数据的完整性
1 CREATE TABLE Tb_Student
2 (
3 StudentNo varchar(20) PRIMARY KEY,--主键约束
4 StudentName varchar(30) NOT NULL,--非空
5 StudentAge int NOT NULL CHECK(StudentAge>20 and StudentAge<30), --check约束
6 Country varchar(20) NOT NULL DEFAULT '中国',--默认值约束
7 StuTime datetime NOT NULL,
8 Tuition money NOT NULL
9 )
四.删除数据表
通过上面的讲解我们应该知道如何创建数据表并添加约束,下面我们就来简单学习一下如何删除数据表
注:在实际开发中删除是一项十分危险的操作,请务必谨慎
1 --语法格式:DROP TABLE 表名
2 USE demo--选择该表所在的数据库
3 GO
4 DROP Tb_Student --这样我们之前创建的表就被删除了,右键数据库刷新一下就可以看到我们之前创建的Tb_Student 表已经消失了
小结:
SQL Server数据类型包括数字数据类型、字符数据类型、二进制数据类型和时间日期类型
数据完整性包括:实体完整性约束、域完整性约束、引用完整性约束以及用户自定义完整性
常用的约束包括:
CHECK(检查)约束
RIMARY KEY(主键)约束
IDENTITY(自增)约束
UNIQUE(唯一)约束
FOREIGN KEY(外键)约束
DEFAULT(默认)约束
NOT NULL(非空)约束
以上内容就是数据库表的一些简单管理,有一点需要说明的是如果添加的外键约束的话,要想删除表必须要先删除子表再删除主表,否则会因为存在外键约束而删除失败
1 --创建表,添加约束
2 if exists(select * from sysobjects where name = 'Student') --判断是否存在Student表,存在的话先删除再创建
3 drop table Student
4 go
5 create table Student
6 (
7 stuId int primary key identity(1,1), --主键约束 自增长 identity(x,y) x:起始值 y:每次增长步长
8 stuName nvarchar(10) unique, --唯一性约束
9 stuAge int check(stuAge>=0 and stuAge<=100), --检查约束
10 stuSex nchar(1) check(stuSex = '男' or stuSex = '女'), --检查约束
11 stuAddress nvarchar(50) not null default '湖北武汉' , --默认值
12 classId int foreign key references classes(classId) --外键约束
13 )
14 --创建表
15 if exists(select * from sysobjects where name = 'classes') --判断是否存在表
16 drop table classes
17 go
18 create table classes
19 (
20 classId int primary key identity(1,1), --identity(x,y) x:起始值 y:每次增长步长
21 className nvarchar(10) not null
22 )
23 drop table Student --先删除子表
24 drop table classes --再删除主表
如以上书写有任何疑问或者错误的地方,请随时留言指出,不胜感激!