一、创建表
语法:
create table 表名
(
列名 数据类型 特征, -- 字段名 属性名
列名 数据类型 特征,
……
列名 数据类型 特征
)charset=utf8;
示例
create table t_user
(
id int,
username varchar(20),
password varchar(50)
);
示例
create table t_student
(
id int primary key auto_increment, -- 将id设为主键 自动增长 默认从1开始,每次递增
name varchar(10) not null, -- 不允许为空
age int,
sex varchar(8) not null default '男', -- 指定默认值
address varchar(100),
height double,
birthday date
)charset=utf8;
示例
insert into t_student(name,age,sex,birthday,height) values('张三',21,'男','2002-5-9',178.2);
insert into t_student(name,age,birthday,height) values('李四',21,'2003-7-25',176.3);
insert into t_student(name,age,sex) values(null,22,'女');
insert into t_student values('钱多多',20,'女','南京',172.1,now());
insert into t_student values(null,'钱多多',20,'女','南京',172.1,now());
二、修改表
1.添加列
语法:
alter table 表名 add 列名 数据类型;
示例:
在t_student表中增加1个名为weight体重字段,类型为双精度。
alter table t_student add weight double;
2.修改列的类型
语法:
alter table 表名 modify 列名 新数据类型;
示例:
将t_student表中name姓名字段的宽度修改为250。
alter table t_student modify name varchar(250);
3.修改列名
alter table 表名 change 原列名 新列名 数据类型;
示例:
将t_student表中sex字段名称修改为gender。
alter table t_student change sex gender varchar(8);
4.删除列
语法:
alter table 表名 drop 列名;
示例:
删除t_student表中weight列(字段)。
alter table t_student drop weight;
5.修改表名
语法:
alter table 原表名 rename 新表名;
或
rename table 原表名 to 新表名;
示例:
将t_student表名修改为student。
alter table t_student rename student;
rename table student to t_student;
三、删除表
语法
drop table 表名;
drop table if exists 表名;
示例:
删除world数据库中的t_user表
drop table t_user;
drop table if exists t_user;
四、截断表
清空表中的数据,作法类似于无条件的delete语句
语法:
truncate table 表名;
示例:
truncate table t_student;
select * from t_student;
insert into t_student(name,gender) values('tom','男');
insert into t_student(name,gender) values('kitty','女');
select * from t_student;
delete from t_student;
insert into t_student(name,gender) values('mike','男');
insert into t_student(name,gender) values('alice','女');
select * from t_student;
delete与truncate的区别:
- delete会记录日志,所以速度慢,而truncate不记录日志,清空表并释放资源,速度快
- delete可以指定条件只删除部分数据,而truncate只能用来清空表中所有数据
- delete不会将自动增长列归零,而truncate会使自动增长的列如id列归零