SQL: DDL, DML,表定義與含義

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章