02.SQL Server(表创建及约束)

在使用数据库的过程中,接触最多的就是数据库中的表,表中存放了数据库中的所有数据,所以表是SQL Server数据库系统的基本信息存储结构,也是数据库中你那个最重要的部分,管理好表自然就管理好了数据库。

1.数据表概述

        数据表是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容,所有数据存储在数据表中。根据信息的分类情况,一个数据库中可能包含若干个数据表 。

        在创建数据表的过程中,因为要定义表中的字段,需要为字段选定数据类型,下面介绍SQL Server 2008 R2 常用的基本类型。

2.SQL基本数据类型

分类

备注和说明

数据类型

说明

二进制数据类型

存储非子符和文本的数据

Image

可用来存储图像

文本数据类型

字符数据包括任意字母、符号或数字字符的组合

Char

固定长度的非 Unicode 字符数据

Varchar

可变长度非 Unicode 数据

Nchar

固定长度的 Unicode 数据

Nvarchar

可变长度 Unicode 数据

Text

存储长文本信息

Ntext

存储可变长度的长文本

日期和时间

日期和时间在单引号内输入

Datetime

日期和时间

数字数据

该数据仅包含数字,包括正数、负数以及分数

int

smallint

整数

float

real

数字

货币数据类型

用于十进制货币值

Money

Bit数据类型

表示是/否的数据

Bit

存储布尔数据类型

3.数据表创建

通过sql结构化查询语言创建数据表有2种方式,(1)对象资源管理器(2)脚本方式

3.1 使用对象资源管理器创建表

 3.2 使用脚本方式创建表

create table tb_表名

(

        属性名 数据类型[(长度)],

        属性名 数据类型[(长度)],

        属性名 数据类型[(长度)]

)

/*创建学生信息表*/
create table tb_student
(
    sid int,
    sname varchar(20),
    ssex char(2),
    sage int
)

4.SQL约束

约束(constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。

在SQL Server 中有6 种约束:主键约束(Primary Key )、外键约束(Foreign Key )、唯一性约束(Unique )、检查约束(Check )和缺省约束(Default Constraint)和非空约束(not null)。

4.1 主键约束 primary key

主键约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

create table tb_表名
(
    属性 数据类型[(长度)] primary key
)

4.2 外键约束 foreign key references

外键是用于建立或加强两个表数据之间的链接的一列或多列。通过将表中主键值的一列或多列添加到另一个表中,可创建两个表之间的连接,这个列就成为第二个表的外键。
外键约束的目的是控制存储在外表中的数据,同时可以控制对主键表中数据的修改

create table tb_表名1
(
    属性1 数据类型[(长度)] primary key,
    属性2 数据类型[(长度)]
)

create table tb_表名2
(
    属性1 数据类型[(长度)] foreign key references tb_表名1(属性),
    属性2 数据类型[(长度)]
)

4.3 唯一性约束 unique

唯一约束确保表中的一列数据没有相同的值。与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。

 

create table tb_表名1
(
    属性1 数据类型[(长度)] primary key,
    属性2 数据类型[(长度)] unique
)

4.4 检查约束 check

检查约束用于限制列中的值的范围。如果对单个字段(列)而言定义"检查约束",那么该列只允许特定的值。如果对一个表定义 检查 约束,那么此约束会在特定的列中对值进行限制。

create table tb_表名1
(
    属性1 数据类型[(长度)] primary key,
    属性2 数据类型[(长度)] check ( 属性2 = '' or 属性2 = '')
)

4.5 默认约束 default

在表中如果定义了默认值约束,那么用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为null。

create table tb_表名1
(
    属性1 数据类型[(长度)] primary key,
    属性2 数据类型[(长度)] default '默认值'
)

4.6 非空约束 not null

非空约束指字段的值不能为空。 对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

create table tb_表名1
(
    属性1 数据类型[(长度)] primary key,
    属性2 数据类型[(长度)] not null
)

5.表创建经典案例

--学生信息表
create table tb_student
(
    sid int primary key,--学号
    sname varchar(50) not null,--姓名
    ssex char(2) check(ssex = '男' or ssex = '女'),--性别
    sage int not null,
    saddress varchar(100) default '湖南省长沙市',--地址
    sidentityCard varchar(20) unique,--身份证号码
)
--成绩表
create table tb_score
(
    sid int foreign key references tb_student(sid),--外键
    degree int
)

6.拓展

--修改表的结构

--修改字段类型
	alter table 表名称
	alter column 字段名 类型 约束;

--添加或者删除列
	alter table 表名称
	add 字段名 类型 约束
	
	alter table 表名称
	drop column 字段名


--添加或删除约束
	非空:
	alter table 表名称
	alter column 字段名 类型 约束;
	
--其他
	alter table 表名称
	add constraint 约束名称(字段名)

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡独东执

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值