SQL: DDL, DML,表定义与含义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于SQL: DDL, DML,表定义与含义的主要内容,如果未能解决你的问题,请参考以下文章

SQL语法

DDL与DML语句

数据库DDL与DML对应含义

数据库DML DDL的中文含义分别是啥 谢谢

关于SQL中 DML,DDL,DCL定义

SQL语言DDL DML DCL TCL四种语言