存储引擎
表类型,数据库中的表类型不同,mysql会采取不同的存取机制.
查看msyql支持的存储引擎: show engines;
默认引擎: InnoDB
,数据存储在硬盘上,特点是行锁设计、支持外键.
指定表类型: 可以新建不同类型的表, 在文件夹中可以查看他们的不同!
类型:
innoDb:默认存储方式;支持行锁设计,外键和支持事务,存储到硬盘;
myisam:不支持锁和外键以及事务,存储到硬盘;
memory:存储在内存中,断电就丢失;
表操作
常用命令:
# 切换文件夹
use db_name;
# 修改编码
alter table t2 charset utf8;
# 查看当前文件夹下所有的表
show tables;
# 创建表
create table t1(
-> name char,
-> age int);
# 查看表结构
show create table t1;
desc t1;
修改表结构
# 修改存储引擎
mysql> alter table t1
-> engine=innodb;
# 修改字段名
alter table 表名称 change 旧字段名 新字段名 约束条件及类型;
# 按顺序添加字段(必须记住)
mysql> alter table t1
-> add name varchar(20) not null,
-> add age int(3) not null default 22;
# 在某字段后添加字段
mysql> alter table t1
-> add stu_num varchar(10) not null after name;
# 添加到最前面
mysql> alter table t1
-> add sex enum('male','female') default 'male' first;
# 删除字段
mysql> alter table t1
-> drop sex;
mysql> alter table t1
-> drop mac;
# 修改字段(修改字段数据类型)
mysql> alter table t1
-> modify age int;
mysql> alter table t1
-> modify id int not null primary key auto_increment;
# 增加约束(针对已有的主键增加auto_increment)
mysql> alter table t1
modify id int auto_increment;
# 对已经存在的表增加复合主键
mysql> alter table service2
-> add primary key(host_ip,port);
# 删除自增约束
mysql> alter table student10 modify id int(11) not null;
# 删除主键(记住)
mysql> alter table student10
-> drop primary key;
复制表
# 复制表结构+记录 (key不会复制: 主键、外键和索引)
create table new_service select * from service;
# 只复制表结构,
create table t4 select name, age from t1 where 1>2;
create table t5 like t4;