0
点赞
收藏
分享

微信扫一扫

数据库技术与应用(SQL Server)——【SQL Server数据定义功能】

数据库的创建

使用SQL语句创建

创建数据库:

create database mydatabase

语法:

create database <数据库名>

查看已有的所有数据库:

select name from sys.databases

删除已有的数据库:

drop database mydatabase

语法:

drop database <数据库名>

表的创建

创建一个表要存放的数据库newdatabase

create database newdatabase;

选择已经创建好的数据库newdatabase

use newdatabase

最后创建表my-table 
 

create table my-table(

id int,

name varchar(32),

phone varchar(11),

salary float

)

创建完毕

表创建以后,可以使用如下的语句查看表的基本结构,用来验证是否创建成功。

语法如下:

 sp_help 表名;

若出现创建数据库或表错误,可以用:

drop table 表名

sql select语句:

SELECT语句用于从数据库中选取数据,结果被存储在一个表中,称为结果集

SQL SELECT语法:

select * from table_name;

查看表中的数据

如果要查询其中表中的id name,有SQL server语句:

select id,name from my-table;

添加约束

添加主键约束

主键约束 PRIMARY KEY:指定本列为主

有两种方式可以添加主键约束:1、在定义列的同时指定主键,2、在定义完字段之后,在指定主键

(1)在定义列的同时指定主键:
 

create table key_table1(

id int primary key,

name varchar(32)

);

(2)在定义完所有列之后,指定主键。
 

create table key_table2(

id int,

name varchar(32),

primary key(id)

);

也可以多字段联合主键
 

create table key_table3(

id int, 

name varchar(32),

phone varchar(11),

primary key(id,name)

);

外键约束

外键约束 FOREIGN KEY:定义本列为引用其他表的外键

语法格式:

外键大多数情况下都是单列的,它可以在列级完整性约束处,也可以定义在表级完整性约束处。

可以创建两个表(t_table1和t_table2),并添加外键(t12_dept)

实例:
 

create table t_table1(

deptId int primary key,

name varchar(22),

phone varchar(11)

);

create table t_table2(

id int primary key,

name varchar(22),

deptId int,

constraint t12_dept foreign key(deptId) references t_table1 (deptId)

);

也可以另外一种设置外键的方式:

实例:
 

create table t_table1(

deptId int primary key,

name varchar(22),

phone varchar(11)

);

create table t_table2(

id int primary key,

name varchar(22),

deptId int,

deptId int foreign key references t_table1 (deptId)

);

在定义字段的时候,也可以定义外部关键字,格式: FOREIGN KEY REFERENCES 关联的表名(

段名) ,这种方式比较简洁,不过这种方式不能指定外键名,即外键名是随机的。

唯一值约束UNIQUE

唯一值约束UNIQUE:唯一值约束用于限制一个列的取值不重复,或者是多个列的组合取值不

复。这个约束用在事实上具有唯一性的属性列上。比如身份证号码,驾驶证号码。

每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

定义UNIQUE约束时的注意事项:

有UNIQUE约束的列允许空值。

在一个表中可以定义多个UNIQUE约束。

可以在一个列或多个列上定义UNIQUE约束。

定义一个表中的user_name的为唯一,使用UNIGUE,语句如下:
 

create table t_table(

id int primary key,

user_name varchar(22) UNIQUE,

phone varchar(11)

);

可以添加唯一值约束UNIQUE,也可以撤销UNIQUE约束

Mysql 使用index

oracle SqlServer.Access 用constraint撤销

如上面创建的t_table表中,撤销UNIQUE约束

非空约束NOT NULL

非空约束NOT NULL:约束强制列不接受NULL值。约束强制字段始终包含值,意味着,不向字

添加值,就无法插入新记录或更新记录。

实例:
 

create table person(

id int NOT NULL,

name varchar(22) NOT NULL,

phone varchar(22) 

);

如果向已经创建的表person表的字段"phone"中添加NOT NULL约束:
 

如果向已经创建的表person表的字段"phone"中删除NOT NULL约束:
 

默认值约束DEFAULT

默认值约束:默认值约束用DEFAULT约束实现,主要用于提过列的默认值,当在表中插入数

时,如果没有为有DEFAULT约束的列提供值,系统自动使用DEFAULT约束定义的默认值。

一个默认值约束只能为一个列提供默认值,且默认值约束必须是列级约束。

在“person”表中创建时在“city”列创建DEFAULT约束:

实例:
 

create table person(

id int NOT NULL,

name varchar(22) NOT NULL,

phone varchar(22) 

city varchar(255) DEFAULT 'ShangHai'

);

当表已经创建,如需在"city"列创建DEFAULT约束,使用下面语句:

MySQL:

SQL Server / MS Access:

撤销 DEFAULT 约束
 

ALTER TABLE Persons

ALTER COLUMN City DROP DEFAULT;

CHECK约束

CHECK约束用于限制列中的范围。如果对某一列定义CHECK约束,那么该列只允许的值。如果

一个表定于检查约束,那么这个约束会基于行中其他列的值在特定的列中对值进行限制。

实例:
 

create table person(

id int NOT NULL CHECK (id>0),

name varchar(22),

phone varchar(11),

city varchar(255)

);

CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:
 

create table person(

id int NOT NULL ,

name varchar(22),

phone varchar(11),

city varchar(255)

constraint chk_person check (id>0 and city='Shanghai')

);

当表以创建时,要给"id"列创建CHECK约束,使用以下语句

单独一列创建check约束:

多列创建check约束:
 

撤销check约束:


 

举报

相关推荐

0 条评论