登录数据库服务器
-uroot -p123456;
查询数据库
show datebases;
在服务器中创建一个叫test的数据库
create database test;
选择其中一个数据库比如test
use test;
选中数据库之后可以查看库中所有的表
show tables;
选中test数据库后,在库中创建一个叫pet的表
CREATE TABLE pet(
name VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATA,
death DATA);
#表名:pet
#数据字段:name owner species sex birth death
#数据类型:VARCHAR(字符串类型) CHAR(字符串类型) DATA(日期类型)
查看pet表中的结构
describe pet(desc pet);
查询test数据库中的pet表的所有记录
select * from pet;
# pet为xxx数据库中的某个表
# *是查询所有
往pet表中添加数据(增加数据)
INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1993-10-10','NULL');
删除pet表中的 name = 'Puffball' 的数据
delete from pet where name = 'Puffball';
修改pet表中的数据 将Diane数据中的name改为旺财
update pet set name = '旺财' where owner = 'Diane';
查询pet表中的第几(1)个信息
select * from pet where id=1;
#pet表中的id这一列数据中的第一个数据
退出数据库
exit;
常用操作:增删改查
增加数据:insert
insert into xx(表名) values('巴拉','巴拉');
删除数据:delete
delete from xx(表名)where name(第一列表头) = 'xx'(表头下要删除数据的名字)
修改数据:update
update xx(表名) set name(想要修改数据对应的表头) = 'aa'(想要修改的数据) where owner(该数据对应的其他表头)= 'bb'(该表头下对应的数据)
表头 name owner
数据 aa bb
查询数据:select
select *(所有文件) from pet(表名)
约束
主键约束:只有一个,不可重复,不可为空(null) 'primary key'就是主键约束
create table user( # 创建一个表,名字为user
id int primary key, # 对id表头进行主键约束
name varchar(20)
);
效果:不能重复添加相同id的数据 (primary id)
name没有约束
insert into user values(1,'张三'); 没有问题
insert into user values(1,'张三');报错 id重复
复合主键:多表头进行约束,不能为空也不能全部重复
create table user2(
id int,
name varchar(20),
password varchar(20),
primary key(id,name) #id,name进行主键约束
);
效果:id和name两个表头只要输入的数据中有一个表头不同就可以成功输入
insert into user2 values(1,'张三','123');
insert into user2 values(2,'张三','123');
id、name中只要有一个不同就可以
insert into user2 values(1,'张三','123');
insert into user2 values(1,'张三','123');
id、name完全一样,则会报错
自增约束:自动生成不重复的数据 'uto_increment'就是自增约束
create table user3(
id int primary key auto_increment, # id表头进行主键约束+自增约束
name varchar(20)
);
效果:不需要对id表头进行操作就可以自动生成不重复的id数据
insert into user3(name)values('张三');
insert into user3 ( name) values ('张三');
得到下表:
id name
1 张三
2 张三
自动将id下的数字逐次+1
唯一约束: 约束修饰字段的值不可以重复,可为空 使用'unique'
create table user5(
id int,
name varchar(20) unique
);
非空约束:修饰字段不能为空 not null
create table user9(
id int,
name varchar(20) not null); name表头下数据不能为空 否则报错
比如:
insert into user9 (id) values (1);报错,因为name中没有数据 但是!
insert into user9 (name)values ('张三');可行,因为id为null但是name不为空
添加删除 alter modify
alter table user9 add not null(name);
alter table modify name varchar (20) not null;
默认约束:表头下没有输入数据时候的默认参数
default
create table user10(
id int,
name varchar(20)
age int default 10 age表头下默认值为10
);
insert into user10 (id,name)values (1,'zs');
select * from user10; 查看表user10下的数据
id name age
1 zs 10 未传入age数据,默认值10
外键约束:涉及到两个表:主表/副表或父表/子表
foreign key(xx) references 表(xx)
班级表是主表
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)
如何给表头添加/删除约束
create table user4(
id int, id表头无主键约束
name varchar(20)
);
修改user4表,对已有id表头进行主键约束:
alter table user4 add primary key(id);
删除已有表头的主键约束:
alter table user4 drop primary key(id);
使用modify修改字段添加约束:
alter table user4 modify id int primary key;
四种添加约束方式:
alter table user5 add unique(name);
或者直接在create的最后 unique(name)即:
create table user5(
id int,
name varchar(20),
unique(name)
);
再或者直接create时候 name varchar(20) unique;即:
create table user5(
id int,
name varchar(20) unique
);
还有modify方式 alter table user5 modify name varchar(20) unique;
同样的复合主键
unique(id,name) 只要表头id和表头name下的数据有一个不同就可以不出错
效果:不能对name表头下的数据重复添加
删除唯一约束:
alter table user5 drop index name;