- 操作文件夹
- create database db1 default charset utf8; (创建文件夹)
- show databases ; (显示内容)
- drop database db1; (删除文件夹)
- 操作文件
- use db1; (进入)
- show tables; (显示表)
- create table t1(
id int unsignde auto_increment primary key,
num decimal(10,5),
name char(10)
age ENUM('1','2','3')
col SET('a','b','c')
) engine=innodb default charset=utf8; (创建表)
# 列名 类型(接受数据大小)字段后都可以接null,not null(是否支持为空),接unsigned(表示有无符号);
# auto_increment primary key(一个表只能有一个) ————auto_increment(表示自增) primary key (表示约束:(不能重复 且不能为空)和加速查找)
# engine表示使用什么引擎 innodb(支持事务,操作可以回滚,原子性操作)myisam (支持全局检索)
# decimal(总位数,小数点后的位数)表示精确的小数比float和double精准
# char(10)为自动填充满10个,查询速度快;varchar(10) 不会,比较节省空间(所以应该把定长的放前面,变长的放后面)
因为要查询char(10)后面的数据时只要直接跳过10个字符就好了,而varchar(10)不知道要跳过多少个
# ENUM()枚举类型,只能插入其中单个内容
# SET()集合类型,只能插入括号中的任意组合
- delete from t1; (清空表,且会之前的自增会继承)
truncate table t1; (也是清空表,但自增不继承,而且清空速度比较快)
- drop table t1; (删除表)
- 如果上传文件或图片之类的就上传它的路径
- 操作文件中的内容(增删改查)
- insert into t1(id,name) values(1,'mc'); (插入数据)
# 如果输入出错可能要考虑下编码,比如:utf-8(但是现在utf-8不用考虑了(/ □ \))
- delete from t1 where id<6; (删除数据)
- update t1 set age=18; (修改数据)
update t1 set age=18 where age=17;
- select * from t1; (查询表中的内容)
- 外键
- 优点:
- 节省空间
- 制定约束
- 操作:
- 创建一个表
create table t1(
id int unsignde auto_increment primary key,
name char(10),
department_id int,
) engine=innodbd efault charset=utf8;
- 再创建外键的表
create table department(
id int unsignde auto_increment primary key,
title char(10)
) engine=innodbd efault charset=utf8;
- 加入约束
这个方法要先创建表二
create table t1(
id int unsignde auto_increment primary key,
name char(10),
department_id int,
constraint fk_admin_t1 foreign key (department_id) references userinfo1 department(id)
) engine=innodbd efault charset=utf8;
或者
alter table t1 add constraint fk_t1_department foreign key (department_id ) references department(id) on [delet/update ]reference_option
其中 reference_option 有以下几种(默认为RESTRICT):
- CASCADE,级联删除/级联更新,即主表delete或update了被其他表引用的数据,对应子表的数据也被delte或update;
- SET NULL,当主表delete或update了被其他表引用的数据,对应子表的数据被设为null,注意子表的外键不能设为not null;
- RESTRICT,主表不允许delete或update被其他表引用的数据;当没有指定时
,默认是采用RESTRICT
- NO ACTION,在MySQL中,等效于RESTRICT;
- 补充
- 每个表只能有一个主键,但是主键不一定只有一列,可以有多列:
(id1 int not null,
id2 int not null,
primary key(id1,id2)) ; # 把两列组合成主键
- 所以用外键约束时,也可以写两列 foreign key (id1,id2 )
- alter table xx auto_increment=10x; 可以设置自增量
- 自增步长可以设置成会话级别或全局级别的:
会话:set session auto_increment_increment = 2;
全局:set globalauto_increment_increment = 2;
- 自增初始值同理:
set auto_increment_offset=XX;
posted @
2020-03-08 17:10
otome
阅读(
574)
评论()
编辑
收藏
举报