創建和管理表
基礎知識
一條資料的存盤

識別符號命名規則

MySQL中的資料型別

常用

創建和管理資料庫
洗掉后,除非有備份,否則,不能恢復
創建資料庫
- 方式一:直接創建
CREATE DATABASE mytest1;

- 方式二:指明字符集
CREATE DATABASE mytest2 CHARACTER SET 'gbk';

- 方式三:判斷資料庫是否存在(推薦)
CREATE DATABASE IF NOT EXISTS mytest3 CHARACTER SET '字符集';
如果要創建的資料庫已經存在,則創建不成功;反之,創建成功
使用資料庫(管理)
- 查看當前連接的資料庫有哪些
SHOW DATABASES;
- 切換資料庫
USE mytest1;
- 查看當前資料庫中保存的表
SHOW TABLES;
- 查看當前使用的資料庫
SELECT DATABASE() FROM DUAL;
- 查看指定資料庫下保存的表
SHOW TABLES FROM mysql;
修改資料庫(一般不改)
- 更改資料庫的字符集
ALTER DATABASE mytest2 CHARACTER SET 'utf8';

洗掉資料庫
- 直接洗掉指定資料庫
DROP DATABASE mytest1;
- 判斷資料庫是否存在(推薦)
DROP DATABASE IF NOT EXISTS mytest1;
如果要洗掉的資料庫存在,則洗掉成功;如果不存在,也不會報錯
創建表
需要用戶具備創建表的權限
前提:先要選好表創建的位置
USE 資料庫
SHOW TABLES;
SHOW TABLES FROM 資料庫;
方式一:直接創建
CREATE TABLE IF NOT EXISTS myemp1(
#欄位
id INT,
emp_name VARCHAR(15),
hire_date DATE;
)
查看表結構和查看創建的表的陳述句的結構
DESC myemp1;
SHOW CREATE TABLE myemp1;
方式二:基于現有的表創建
同時匯入資料,并且可以使用別名,兩表互不影響
CREATE TABLE myemp1
AS
SELECT eemploye_id,last_nmae,salary
FROM employees;
#不要其中的資料
CREATE TABLE myemp1
AS
SELECT eemploye_id,last_nmae,salary
FROM employees
WHERE 1 =2;#1不可能等于2
修改表
——>ALTER TABLE
添加欄位
默認添加到表中最后的欄位
ALTER TABLE myemp1
ADD salary DOUBLE(10,2);#一個10為,小數位2位
添加到第一位
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST#此欄位為表中的第一列
指定位置
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name#在emp_name的后面
修改欄位
改長度
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);
重命名欄位
ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(12,2);
#久名字 新名字 新范圍
洗掉欄位
ALTER TABLE myemp1
DROP COLUMN email;
重命名表
- 方式一:RENAME(推薦)
RENAME TABLE mytemp1
TO my_emp1;
- 方式二:
ALTTER TABLE myemp2
TO em_emp2;
洗掉表
表的結構和資料都洗掉了,釋放表空間
DROP TABLE IF EXISTS my_emp2;
清空表
清空資料,保留表結構
TRUNCATE TABLE employees_copy;
對比TRUNCATE TABLE和DELETE FROM
- 相同:
都可以對表進行洗掉,同時保留表結構
- 不同:
TRUNCATE TABLE:一旦操作,表資料全部清除,同時,資料不回滾
DELETE FROM:一旦執行,表資料可以全部洗掉(可以指定洗掉),資料可以回滾
拓展1
DCL中COMMIT和ROLLBACK的使用
-
COMMIT:提交資料,一旦執行,則資料永久保留,不可以回滾
-
ROLLBACK:回滾資料,一旦執行,可以回滾,到最近的一次COMMIT使用
DDL和DML 的說明
-
DDL:一旦執行,不可以回滾(執行完DDL后會自動進行提交,不受任何的影響)
-
DML:一旦執行,也是不可以回滾,但是可以在執行DML前執行SET autocommit = false,則執行DML 操作可以回滾
拓展2
阿里巴巴《Java開發手冊》之MySQL欄位命名

如何理解清空、洗掉表等操作要謹慎

MySQL新特性—DDL的原子化
如果操作成功,則執行;如果陳述句中有一項不合格(eg:表不存在)則該陳述句回滾

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/440464.html
標籤:其他
下一篇:MySQL存盤引擎
