创建数据库
- 创建数据库
CREATE DATABASE mytest01;
CREATE DATABASE IF NOT EXISTS mytest01;
CREATE DATABASE IF NOT EXISTS mytest01 CHARACTER SET 'utf8';
- 查看创建数据库的结构
SHOW CREATE DATABASE mytest01;
管理数据库
- 查看当前连接中的数据库
SHOW DATABASES;
- 查看当前数据库中的所有表
SHOW TABLES;
- 查看当前使用的数据库
SELECT DATABASE() FROM DUAL;
- 查看指定数据库下保存的数据表
SHOW TABLES FROM atguigudb;
修改数据库
- 修改数据库的字符集
ALTER DATABASE mytest01 CHARACTER SET 'gbk';
删除数据库
DROP DATABASE mytest04;
DROP DATABASE IF EXISTS mytest01;
创建表
- 直接创建
CREATE TABLE myemp01(
id INT,
empname VARCHAR(20),
birthday DATE;
);
- 如果表不存在,则直接创建
CREATE TABLE IF NOT EXISTS myemp02(
id INT,
empname VARCHAR(20),
birthday DATE
);
- 基于现有的表创建,并导入表数据
CREATE TABLE
IF NOT EXISTS myemp03 AS SELECT
*
FROM
atguigudb.employees;
- 基于现有的表创建,不导入表数据
CREATE TABLE
IF NOT EXISTS myemp04 AS SELECT
employee_id,
last_name,
email,
hire_date
FROM
atguigudb.employees
WHERE
1 = 2;
- 查询语句中字段的别名,可以作为新创建的表的字段的名称
CREATE TABLE myemp04 AS SELECT
employee_id id,
last_name AS emp_name,
hire_date hire_time
FROM
atguigudb.employees;
修改表
ADD:增加一列
ALTER TABLE myemp01 ADD sex VARCHAR(1);
ALTER TABLE myemp01 ADD hire_date DATE AFTER empname;
MODIFY:修改字段(列)属性
ALTER TABLE myemp01 MODIFY sex INT;
ALTER TABLE myemp01 MODIFY empname VARCHAR(50);
ALTER TABLE myemp01 MODIFY empname VARCHAR(50) DEFAULT 'REFINE';
ALTER TABLE myemp01 MODIFY sex INT AFTER empname;
CHANGE:重命名一列
ALTER TABLE myemp01 CHANGE empname emp_name VARCHAR(45);
DROP COLUMN:删除一列
ALTER TABLE myemp01 DROP COLUMN birthday;
表重命名
REANME
ALTER TABLE myemp01 RENAME TO myemprefine01;
RENAME TABLE myemprefine01 TO myemp01;
删除表
DROP
DROP TABLE myemp01;
DROP TABLE IF EXISTS emp;
清空表
TRUNCATE
TRUNCATE TABLE myemp2;
DELETE
DELETE FROM myemp1;
DROP和DELETE的异同
- 相同点:
- 不同点
- DROP是DDL语言,数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言;
DELETE是DML语言,数据操作语言,SQL中处理数据等操作统称为数据操纵语言;
- DROP:不可以回滚;
DELETE:执行SET autocommit=FALSE;后,可以进行数据回滚操作。
COMMIT 和 ROLLBACK
- 这两个是DCL语言,数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等
- COMMIT:提交数据,意味着数据不可以回滚。
- ROLLBACK:回滚数据,回滚到最近的一次COMMIT之后。
SELECT * FROM myemp03;
SELECT * FROM myemp04;
SET autocommit=FALSE;
DELETE FROM myemp03;
ROLLBACK;
DELETE FROM myemp04;
COMMIT;
ROLLBACK;