创建和管理数据库
创建数据库
1 2 3 4 5 6 7 8
| CREATE DATABASE 数据库名;
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
CREATE DATABASE IF NOT EXISTS 数据库名;
|
使用数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| SHOW DATABASES;
SELECT DATABASE();
SHOW TABLES FROM 数据库名;
SHOW CREATE DATABASE 数据库名;
SHOW CREATE DATABASE 数据库名\G
USE 数据库名;
|
修改数据库
1 2 3 4 5 6 7 8
| ALTER DATABASE 数据库名 CHARACTER SET 字符集;
DROP DATABASE 数据库名;
DROP DATABSE IF EXISTS 数据库名;
|
创建表
语法格式
1 2 3 4 5 6 7
| CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], …… [表约束条件] );
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE IF NOT EXISTS emp ( emp_id INT, emp_name VARCHAR(20), salary DOUBLE, birthday DATE );
CREATE TABLE dept( dept_no INT(2) AUTO_INCREMENT, d_name VARCHAR(14), loc VARCHAR(13), PRIMARY KEY (dept_no) );
|
使用 AS subquery 选项,将创建表和插入数据结合起来
1 2 3
| CREATE TABLE table [(column, cloumn...)] AS subquery;
|
1
| CREATE TABLE emp1 AS SELECT * FROM employees;
|
查看数据表结构
修改表
修改表指的是修改数据库中已经存在的数据表的结构。
- 向已有的表中添加列
- 修改现有表中的列
- 删除现有表中的列
- 重命名现有表中的列
追加列
1
| ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 [FIRST|AFTER 字段名];
|
1 2
| ALTER TABLE dept ADD job_id varchar(15);
|
修改列
可以修改列的数据类型,长度、默认值和位置
1
| ALTER TABLE 表名 MODIFY [COLUMN] 字段名1 字段类型 [DEFAULT 默认值][FIRST|AFTER 字段名2];
|
1 2 3 4 5
| ALTER TABLE dept MODIFY last_name VARCHAR(30);
ALTER TABLE dept MODIFY salary double(9,2) default 1000;
|
重命名列
1
| ALTER TABLE 表名 CHANGE [column] 列名 新列名 新数据类型;
|
1 2
| ALTER TABLE dept80 CHANGE department_name dept_name varchar(15);
|
删除列
1
| ALTER TABLE 表名 DROP [COLUMN] 字段名
|
删除表
- 在 MySQL 中,当一张数据表没有与其他任何数据表形成关联关系时,可以将当前数据表直接删除
- 数据和结构都被删除
- 所有正在运行的相关事务被提交
- 所有相关索引被删除
1
| DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
|
DROP TABLE 语句 不能回滚
清空表
1
| TRUNCATE TABLE detail_dept;
|
TRUNCATE 语句 不能回滚,而使用 DELETE 语句删除数据,可以回滚