建立和管理資料庫、表
阿新 • • 發佈:2022-04-22
資料庫建立與管理
#建立資料庫 CREATE DATABASES IF NOT EXISTS db_name CHARACTER SET 'utf8'; #檢視所有資料庫 SHOW DATABASES; #切換資料庫 USE db_name; #檢視當前資料庫中儲存的表 SHOW TABLES; #檢視當前使用的資料庫 SHOW DATABASE() FROM DUAL; #檢視資料庫資訊 SHOW CREATE DATABASE db_name; #更改資料庫 ALTER DATABASE db_name CHARACTER SET 'xxx'; #刪除資料庫 DROP DATABASE IF EXISTS db_name;
資料表建立與管理
建立
#新建立
CREATE TABLE IF NOT EXISTS t_name(
col_1 INT.
col_2 VARCHAR(15),
col_3 DATE,
...;
)
#基於已有表建立
CREATE TABLE t_name
AS
SELECT xxx,xxx,xxx
FROM another_table;
#檢視欄位
DESC t_name;
#eg.基於tb_1建立新表,但不復制資料
CREATE TABLE tb_2
AS
SELECT xxx,xxx,xxx
FROM tb_1
WHERE 1 = 0;
修改
#新增欄位 ALTER TABLE tb_1 ADD xxx INT; ALTER TABLE tb_1 ADD xxx INT FIRST; ALTER TABLE tb_1 ADD xxx INT AFTER yyy; #指定欄位位置 #修改欄位型別 ALTER TABLE tb_1 MODIFY xxx VARCHAR(15); #重新命名欄位 ALTER TABLE tb_1 CHANGE name new_name VARCHAR(15); #刪除欄位 ALTER TABLE tb_1 DROP COLUMN xxx; #刪除表
#重命名錶
ALTER TABLE t_name
RENAME TO new_name;
#刪除表(沒有與其他資料表形成關聯)(無法回滾)
DROP TABLE IF EXISTS t_name;
#清空表(可回滾)
TRUNCATE TABLE t_name;
COMMIT與ROLLBACK
COMMIT
: 提交,意味著資料無法回滾
ROLLBACK
: 回滾至上次COMMIT
· DDL(CREATE/ALTER/DROP): 一旦執行,就不能回滾,SET autocommit = FALSE
無效
· DML(SELECT/UPDATE/DELETE): 預設情況不能回滾,若事先SET autocommit = FALSE