一、常规指令补充
1、主键约束:( int ) primary key, ##输入主键约束
2、唯一约束:create…(…unique (___name)); ##在create内容里最后添加
3、非空约束:( int ) not null, ##某表格内容后面添加
4、默认约束: (int ) default __, ##插入不能默认的约束(不是不可修改的)
5、外键约束:
对数据库表格进行操作:
mysql -uroot -p____(密码)
create database test;
在数据库创建一个数据表:
create table pet (
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date); ##name和owner等是表格的类,VARCHAR是数据类型
再输入:
得到:
1)删除数据指令
delete from pet where name = ‘Fluffy’;
2)修改数据指令
update pet set name = '旺旺财‘ where owner = ‘周星驰’ ##对表格里面内容进行修改,将 ‘旺财’改成‘旺旺财’
提问:为什么用owner而不是其他,为什么owner就可以判断出改的是左边的?
小结
增加:insert into、删除:delete from、修改:update、查询:select * from
二、mysql建表的约束
1)主键约束:
它能够唯一确定一张表格中的记录,也就是通过对某个字段添加约束,字段就不会重复不为空。
create table user(
id int primary key,
name varchar(20)
)
insert into user values(1,‘张三’);
连续输入两次,可以看到第一次成功,第二次失败。
上面的id表示表格的表头名字,int表示输入整型,primary key表示约束
2)自增约束(add、drop、modify)
create table user3 (
id int primary key auto_increment, ## 实现自动排序插入的数据
name varchar(20)
);
insert into user3 values('zhangsan ')
select * from table;##查看表格内容
创建user4表后查看属性如下:
alter table user4 add primary key(id);##实现插入主键约束。
alter table user4 drop primary key;##实现约束的删除
alter table user4 modify id int primary key;##实现‘add’一样增加约束的指令
一般不用这几个 add、drop、modify
3)唯一约束(约束的值不可以重复)
1、create table user5(
id int,
name varchar(20)
);
alter table user5 add unique(name); ##增加唯一约束
2、create table user6(
id int,
name varchar(20),
unique(name) ##增加唯一约束
);
用这个
删除唯一约束用drop index(___):
alter table user7 modify name varchar(20) unique;
总计:
1.建立表格的时间添加约束
2.可以用alter、、、add、、、后面添加
3.可以用alter、、、modify、、、后面添加
4.删除用alter、、、drop、、、
4)非空约束
create table user 9(
id int,
name varchar(20) not null##创建时在后面加not null
);
5)默认约束
create table user10(
id int,
name varchar(20),
age int default 10
);
insert into user10 (id,name) values(1,‘zhangsan’);
6)外键约束
父表、子表
__班级表
create table classes(
id int primary key,
name varchar(20)
);
__学生表
create table students(
id int primary key,
name varchar(20),
class_id int ,
foreign key(class_id) references classes(id)
);##1、子类的引用来自父类;2、且在子类插入的数据行必须和父类的一致。
此时可以看到父类没有5班,不可在子类内添加数据行
小结:父类表的项目在子类表必须一样;且在被引用后项目不可删除