DDL: 數據定義語言;
CREATE, ALTER, DROP
DB組件:數據庫、表、索引、視圖、用戶、存儲過程、存儲函數、觸發器、事件調度器等
CREATE相關的常用命令:
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE FUNCTION UDF
CREATE INDEX
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE USER
CREATE VIEW
DML:數據操作語言;
INSERT, DELETE, UPDATE, SELECT
數據庫:
CREATE, ALTER, DROP
{DATABASE|SCHEMA}
[IF EXISTS]
[IF NOT EXISTS] #不存在才創建
表:二維關係
設計表:遵循規範;
定義:字段,索引
字段:字段名,字段數據類型,修改符
約束,索引:應該創建在經常用作查詢條件的字段上;
索引:實現級別在存儲引擎;
分類:
稠密索引、稀疏索引
B+索引、hash索引、R樹索引、FULLTEXT索引(全文索引)
聚集索引、非聚集索引
簡單索引、組合索引
創建表:CREATE TABLE
(1) 直接創建;
(2) 通過查詢現存的表創建;新表會被直接插入查詢而來的數據;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
select_statement
(3) 通過複製現存的表的表結構創建;不復制數據;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
mysql> SHOW GLOBAL VARIABLES LIKE '%default%engine%'; #查看錶引擎
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
+----------------------------+--------+
2 rows in set (0.00 sec)
注意:Storage Engine是指表類型,也即在表創建時指明其使用的存儲引擎;
同一個庫中表要使用同一種存儲引擎類型;
查看錶結構:
DESCRIBE tbl_name;
查看錶狀態信息:
SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
mysql> SHOW TABLE STATUS LIKE 't1'\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Compact #行格式
Rows: 2 #已有的行數
Avg_row_length: 8192 #表中現有的所有行的平均長度
Data_length: 16384 #表中數據的大小
Max_data_length: 0 #表數據的最大容量,該值與存儲引擎有關 #0代表沒有上限
Index_length: 0 #索引大小
Data_free: 0 #目前已分配,但是沒有顯示
Auto_increment: 5 #自動增長字段
Create_time: 2019-01-29 13:27:33 #創建時間
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci #排序規則
Checksum: NULL #表的校驗和
Create_options: #創建表額外指定的其他選項
Comment: #註釋,包含了額外的其他信息。
1 row in set (0.01 sec)
修改表:ALTER TABLE
增加字段 mysql> ALTER TABLE student ADD age varchar(20) NOT NULL;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM student;
+----+----------+---------------+------+-----+
| id | name | register_date | sex | age |
+----+----------+---------------+------+-----+
| 1 | ZhanYang | 2018-06-20 | NULL | |
| 4 | LiuJia | 2018-05-30 | NULL | |
| 8 | JiaLiu | 2018-06-20 | NULL | |
| 9 | JiaLiu | 2018-04-20 | NULL | |
| 10 | gaoyf | 2018-04-20 | NULL | |
| 11 | zhujh | 2018-04-20 | NULL | |
| 12 | zhouha | 2018-04-20 | NULL | |
| 13 | hanzb | 2018-04-21 | M | |
| 16 | ZhanXing | 2018-05-21 | M | |
| 17 | XingYan | 2018-05-21 | M | |
| 18 | Jinjiao | 2019-01-29 | M | |
| 19 | Jinjiao | 2019-01-29 | M | |
| 20 | Yinjiao | 2019-01-28 | F | |
+----+----------+---------------+------+-----+
13 rows in set (0.00 sec)
刪除表:DROP TABLE