1. 创建表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
- 说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
- 括号后面的用户可以不写,使用默认的;
- MySQL对大小写不敏感。
2. 创建表案例
例子:
mysql> create table users(
-> id int comment '编号',
-> name varchar(20) comment '用户名',
-> password char(32) comment '用户密码',
-> birthday date comment '生日'
-> );
comment 后面的内容是注解;就是生活中表格的说明
3. 查看表结构
语法:
desc 表名;
4. 修改表
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column);
案例:
- 在users表添加二条记录
insert into users values(1, '小郑', '4321', '2000-09-30'), (2, '小张', '1234', '1999-11-2');
- 在users表添加一个字段,用于保存图片路径
alter table users add assets varchar(30) comment '图片路径' after birthday;
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(30) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
插入新字段后,对原来表中的数据没有影响
mysql> select * from users;
+------+--------+----------+------------+--------+
| id | name | password | birthday | assets |
+------+--------+----------+------------+--------+
| 1 | 小郑 | 4321 | 2000-09-30 | NULL |
| 2 | 小张 | 1234 | 1999-11-02 | NULL |
+------+--------+----------+------------+--------+
2 rows in set (0.00 sec)
- 修改name,将其长度改成30
alter table users modify name varchar(30);
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(30) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
- 删除password列
alter table users drop password;
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(30) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
- 修改表名为employee
alter table users rename to emname;
to可以省略
- 将name列修改为xingming
alter table users change name xiaoming varchar(60);
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| xiaoming | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(30) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
5 删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
drop table users;