create database seven
on primary
(
name='seven_data',
filename = 'D:\sqltest\seven_data.mdf',
size = 3MB,
maxsize = 20MB,
filegrowth = 20%
)
log on
(
name = 'seven_log',
filename = 'D:\sqltest\seven_log.ldf',
size = 1MB,
filegrowth = 10%
)
2:第一种约束:主键约束
关系:民族(民族代码,民族名称) 民族代码为主键
create table nation
(
nationCode char(4) primary key,
nationName varchar(20)
)
对表添加主键
create table student
(
code char(8) not null, //【想设置主键的属性】一定不能为空
name varchar(10)
)
alter table student add constraint pk_code primary key(code);
3:第二种:唯一约束
关系: 体育项目(体育项目id,体育项目名)
create table sports
(
sports_id char(3) primary key,
sports_name varchar(15) unique //unique:唯一约束
)
insert into sports(sports_id,sports_name)
values('1','篮球'),('2','羽毛球')
alter table sports
add constraint unique_name unique(sports_name);
4:第三种:检查约束
注册表(注册号,注册日期,分数)
create table register
(
re_num int primary key,
re_date date,
score float check(score>=0 and score<=100)
)
insert into register values('1','2016-3-31',101)//错误的
insert into register values('1','2016-3-31',98)
select * from register;
练习
1:用户登录表(id,name)
name要求必须是zhangsan,lisi,wangwu
2:学生(id,性别,年龄)------达标要求
性别要求必须是男和女
3:会员(会员id,会员名,会员等级)
会员等级是A,B,C,D,E
4:学生(学号,姓名,班级名)
班级名必须以‘计网’开头
==================================
备注
那check约束可以实现那些功能呢?
1范围规定:CHECK (jine>0)
2枚举值规定(等级)
ALTER TABLE tablename ADD CHECK (nandu in (1,2,3,4)) //定位为整形时
3特定的匹配
CHECK (fieldName like'9%')
check中可以使用的运算符,主要有>,<,and ,or,not,like,in等。
=====================
扩展学习:
check约束的操作https://blog.youkuaiyun.com/xuexiaodong009/article/details/49421603
表的相关操作
https://docs.microsoft.com/zh-cn/sql/relational-databases/tables/tables
5:第四种约束:默认约束
关系:教师(教师id,名字,性别)
create table teacher
(
teacher_id char(4) primary key,
teacher_name varchar(8),
sex char(4) not null default 'man'
)
//插入数据,sex属性使用默认值
insert into teacher(teacher_id,teacher_name)
values('02','he')
insert into teacher values('03','zhang','wmen')
//查询数据
select * from teacher
6:第五种约束:外键约束
班级表(班级id,班级名称)
学生表(学生id,班级名称)
create table classes //主表,必须先创建
(
class_id char(4) primary key,
class_name varchar(4) not null unique
)
create table student1 //从表
(
stu_id char(8) primary key,
classname char(4) references classes(class_name)
)
//插入数据,必须先插入主表的数据
insert into classes
values('01','1504'),('02','1505')
insert into student values('01','1504'),('02','1504')
SELECT * FROM classes
SELECT * FROM student
注意:主表参照列必须是主键或唯一约束
7:第六种约束:not null
参照上面创建表
8:关键词identity的使用,id自动增长
identity(a,b):a是初始值,b是步长
happy(id,name)
create table happy
(
id int identity(1,1) primary key,
name varchar(10) not null
)
insert into happy values('good')
insert into happy values('good')
insert into happy values('good')
insert into happy values('good')
select * from happy