数据库表操作
创建数据表
创建普通表
基本语法:
create table 表名(字段名 字段类型 [字段属性],字段名 字段类型 [字段属性],...) [表选项];
create table class(name varchar(10));
形式上有两种:
- 库名.表名
create table mydatabase2.class(name varchar(10));
- 先选择数据库,在进行建表操作
use mydatabase2; create table class(name varchar(10));
表选项:
- engine:存储引擎,
MySQL
提供的具体存储数据的方式,默认为innodb
(5.5以前为myisam
) - charset:字符集,只对当前自己表有效(如果和数据库的字符集不同,以自己的为效)
- collate:校对集
create table student(name varchar(10)) charset=utf8 engine=innodb;
复制已有表结构
从已经存在的表复制一份(只复制结构,不复制表中数据)
基本语法:
create table 新表名 like 表名;
//如果使用数据库.表名
形式就可以从任何数据库下服务其他表。
显示数据表
每当创建一张表,那么会在对应的数据库下创建一些文件(与存储引擎有关)
图中的结构文件来自innodb
引擎 ,innodb
存储引擎所有的文件都存储在外部的ibdata
文件中
显示所有表
基本语法:
show tables;
匹配显示表
基本语法:
show tables like '匹配模式';
显示表结构
本质含义:显示表中所包含的字段信息(名字,类型,属性等)
基本语法:
describe table 表名;
desc table 表名;
show columns from 表名;
显示表创建语句
查看数据表创建时的语句:此语句看到的结果已经不是用户之前自己输入的。
基本语法:
show create table 表名;
show create table student;
设置表属性
表属性指的是表选项:engine``charset``collate
基本语法:
alter table 表名 表选项;
alter table student charset=gbk;
注意:如果数据库已经确定了,里面有很多数据了,不要轻易修改表选项;
修改表结构
修改表名
基本语法:
rename table 旧表名 to 新表名;
rename table student to my_student;
修改表选项
基本语法:
alter table 表名 表选项;
新增字段
基本语法:
alter table 表名 add [column] 字段名 列类型 [列属性] [位置 first/after 字段名]
alter table my_student add column age int;
字段位置:字段想要存放的位置
first
:在某某之前
alter table my_student add column id int first;
after
:在某某之后 (默认的)
修改字段名
基本语法:
alter table 表名 change 旧字段名 新字段名 字段属性 [列属性] [新位置]
alter table my_student change nage xingming varchar(10);
修改字段类型
基本语法:
alter table 表名 modify 字段名 新类型 [新属性] [新位置]
alter table my_student modify xingming varchar(15);
删除字段
基本语法:
alter table 表名 drop 字段名;
alter table my_student drop age;
删除表结构
基础语法:
drop table 表名 [,表名2...];
,可以同时删除多个表。