MySQL 增删改查——表和数据库

数据库

一、增

CREATE DATABASE [IF NOT EXISTS] 数据库名 CHARACTER SET 字符集; 

二、删

DROP DATABASE [IF EXISTS] 数据库名;

三、改

数据库不能改名,所谓的改名都是完全复制。

但是可以改数据库的字符集:

ALTER DATABASE 数据库名 CHARACTER SET 字符集; #gbk、utf8等

四、查

1. 所有的数据库
SHOW DATABASES;
2. 正在使用的数据库
SELECT DATABASE(); 
# 一个 mysql 中的全局函数
3. 指定库下所有的表
SHOW TABLES FROM 数据库名;
4. 数据库的创建信息
SHOW CREATE DATABASE 数据库名;
5. 指定库下所有的表
SHOW TABLES FROM 数据库名;

一、增

需要 CREATE TABLE 权限。

1. 自行创建
CREATE TABLE [IF NOT EXISTS] 表名( 
    字段1, 数据类型 [约束条件] [默认值], 
    字段2, 数据类型 [约束条件] [默认值], 
    字段3, 数据类型 [约束条件] [默认值], 
    ……[表约束条件] 
);

# 栗子:
CREATE TABLE dept(
	-- int类型,自增 
    deptno INT(2) AUTO_INCREMENT, 
    dname VARCHAR(14), 
    loc VARCHAR(13),
	-- 主键 
    PRIMARY KEY (deptno) 
);
2. 通过它表创建
CREATE TABLE [IF NOT EXISTS] 表名
AS SELECT 查询语句;
# 栗子:
CREATE TABLE dept80 
AS 
SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees 
WHERE department_id = 80;

通过它表创建空表的方式:

CREATE TABLE emp3 AS SELECT * FROM employees WHERE FALSE;
CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2;

二、删

1. 删除表
DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
2. 截断/清空表

其实应该归类到“改”里的……

TRUNCATE TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];

三、改

0. 表-重命名
# 第一种
RENAME TABLE emp TO myemp;
# 第二种
ALTER table dept RENAME [TO] detail_dept;
1. 字段-增
ALTER TABLE 表名 
ADD [COLUMN] 字段名 
字段类型 [FIRST|AFTER 字段名];

# 栗子:
ALTER TABLE dept80 
ADD job_id varchar(15);
2. 字段-删
ALTER TABLE 表名 
DROP [COLUMN] 字段名 ;

# 栗子:
ALTER TABLE dept80 
DROP job_id;
3. 字段-改
a. MODIFY - 修改字段数据类型、长度、默认值、位置。
ALTER TABLE 表名 
MODIFY [COLUMN] 字段名1 
字段类型(长度) [DEFAULT 默认值] [FIRST|AFTER 字段名];

# 栗子:
ALTER TABLE dept80 
MODIFY salary 
double(9,2) DEFAULT 1000 AFTER job_id;
b. CHANGE - 重命名字段
ALTER TABLE 表名 
CHANGE [COLUMN] 列名 
新列名 新数据类型;

# 栗子:
ALTER TABLE dept80 
CHANGE department_name 
dept_name varchar(15);

四、查

1. 表结构
DESCRIBE 表名;
2. 表的创建信息
SHOW CREATE TABLE 表名;
posted @ 2022-08-04 13:17  oneQuiz  阅读(30)  评论(0)    收藏  举报