mysql(3)、表的存储引擎与表操作

存储引擎

表类型,数据库中的表类型不同,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;

猜你喜欢

转载自www.cnblogs.com/fqh202/p/9428023.html