数据库的创建
使用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约束: