資料庫基本操作
建立資料庫CREATE DATABASE database_name;
檢視資料庫定義SHOW CREATE DATABASE database_name;
檢視所有資料庫SHOW DATABASES;
檢視系統表型別SELECT DISTINCT(ENGINE) FROM information_schema.tables;
資料表的基本操作
建立表資料表屬於資料庫,在建立資料表之前,應使用語句“USE <資料庫名>" 指定操作是哪個資料庫中進行。
CREATE TABLE <表名>
( 欄位名1,資料型別 【列級別約束條件】 【預設值】,
.....
【表級別約束條件】
);
查看錶SHOW Tables;
主鍵約束主鍵,又稱主碼,是表中一列或多列的組合,主鍵約束要求主鍵列的資料唯一,並且不允許為空。
單欄位主鍵在定義列的同時指定主鍵 欄位名 資料型別 PRIMARY KEY 【預設值】
在定義完所有的列之後指定主鍵 【CONSTRAINT <約束名>】 PRIMARY KEY 【欄位名】
多欄位聯合主鍵PRIMARY KEY 【欄位1,欄位2,....,欄位n】
【CONTRAINT <外來鍵名>】 FOREIGN KEY 欄位名1 【,欄位名2, ....】 REFERENCES <主表名> 主鍵列 1 【, 主鍵列2,.....】
非空約束欄位名 資料型別 not null
唯一約束欄位名 資料型別 unique
【CONTRAINT <約束名>】 UNIQUE(<欄位名>)
預設約束欄位名 資料型別 DEFAULTE 預設值
設定表的屬性值自動增加AUTO_INCREMENT的初始值是1, 每新增一條記錄,欄位值自動加 1。一個表只能有一個欄位使用,且該欄位必須為主鍵的一部分。
欄位名 資料型別 AUTO_INCREMENT
檢視資料表結構查看錶基本結構語句 DESCRIBE/DESC
DESCRIBE 表名
查看錶詳細結構語句SHOW CREATE TABLE <表名\G>
修改資料表修改表名ALTER TABLE <舊錶名> RENAME 【TO】 <新表名>
修改欄位的資料型別ALTER TABLE <表名> MODIFY <欄位名> <資料型別>
修改欄位名ALTER TABLE <表名> CHANGE <舊欄位名> <新欄位名> <新資料型別>
新增欄位ALTER TABLE <表名> ADD <新欄位名> <資料型別> 【約束條件】 【FIRST | AFTER 已存在欄位】
修改欄位的排列位置ALTER TABLE <表名> MODIFY <欄位1> <資料型別> FIRST | AFTER <欄位2>
更改表的儲存引擎SHOW ENGINES 檢視系統支援的儲存引擎
ALTER TABLE <表名> ENGINE = <更改後的儲存引擎名>
MySQL 8.0的新特性預設字符集改為 utf8mb4在MySQL8.0版本之前,預設字符集為 latin 1,uft8字符集指向的是 utf8mb3。
SHOW VARIABLES LIKE 'character_set_database'
自增變數的持久化在MySQL 8.0之前,自增主鍵 AUTO_INCREMENT 的值如果大於 max(primary key)+1,在MySQL重啟後,會重置 AUTO_INCREMENT = max(primary key)+1。
建立資料庫 company建立表 offices建立表 employees將表 employees 的 mobile 欄位修改到 officeCode 欄位後面將表 employees 的 birth 欄位改名為 employee_birth修改 sex 欄位,資料型別為 CHAR(1),非空約束刪除欄位 note增加欄位名 favoriate_activity, 資料型別為 VARCHAR(100)刪除表 offices修改表 employees 儲存引擎為 MyISAM將表 employees 名稱修改為 employees_info經典習題建立資料庫 Market, 在 Market中建立資料表 customers。 表結構:
建立資料庫 Market建立資料表 customers,在 c_num欄位上新增主鍵約束和自增約束,在 c_birth 欄位上新增非空約束將 c_contact 欄位插入 c_birth 欄位後面將 c_name 欄位資料型別改為 VARCHAR(70)將 c_contact 欄位改名為 c_phone增加 c_gender欄位,資料型別為 CHAR(1)將表名修改為 customers_info刪除欄位 c_city修改資料表的儲存引擎為 MyISAM在 Market 中建立資料表 orders, order表結構如下