MySQL中的DDL,DML

MySQL中的DDL,DML
DDL:数据定义语言:
    CREATE,ALTER,DROP    
    DB组件:数据库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器等
    CREATE相关的常用命令:
        CREATE DATABASE
        CREATE EVENT
        CREATE FUNCTION
        CREATE FUNCTION UDF
        CREATE INDEX
        CREATE LOGFILE GROUP
        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索引
                    聚集索引:数据和主键索引存放在一起,按主键索引次序进行存储
                    非聚集索引:索引和数据分开存放,索引通过指针找到原始数据所在位置
                    简单索引(只索引在一个字段上)、组合索引(索引在多个字段上)

创建表:
    1、直接创建;
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [partition_options]
    2、通过查询现存的表创建:新表会被直接插入查询而来的数据;
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [partition_options]
    [IGNORE | REPLACE]
    [AS] query_expression
    3、通过复制现存的表的表结构创建:不复制数据。
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }
注意:Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎;
      同一个库中的表要使用同一种存储引擎;

查看表结构:
DESCRIBE table_name    
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| id               | varchar(100) | NO   | PRI | NULL    |       |
| createTime       | datetime     | YES  |     | NULL    |       |
| host             | varchar(255) | YES  |     | NULL    |       |
| name             | varchar(255) | YES  |     | NULL    |       |
| originalFilename | varchar(255) | YES  |     | NULL    |       |
| relativeUrl      | varchar(255) | YES  |     | NULL    |       |
| relativeUrlAbb   | varchar(255) | YES  |     | NULL    |       |
| savePath         | varchar(255) | YES  |     | NULL    |       |
| savePathAbb      | varchar(255) | YES  |     | NULL    |       |
| suffix           | varchar(255) | YES  |     | NULL    |       |
| url              | varchar(255) | YES  |     | NULL    |       |
| urlAbb           | varchar(255) | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+  
      
查看表的状态信息:
SHOW TABLE STATUS LIKE 'table_name'\G;
*************************** 1. row ***************************
           Name: fansik                    # 表名
         Engine: InnoDB                    # 存储引擎
        Version: 10                        # 版本号
     Row_format: Dynamic                   # 行格式
           Rows: 381042                    # 已有行数
 Avg_row_length: 401                       # 现有的所有行的平均长度
    Data_length: 153026560                 # 表中数据的大小
Max_data_length: 0                         # 表数据的最大容量,该值与存储引擎有关,0为不限制
   Index_length: 0                         # 索引大小,无索引
      Data_free: 6291456                   # 目前已分配,但尚未存入数据的空间,通常对myisam比较有用
 Auto_increment: NULL                      # 下一次自动增长的字段
    Create_time: 2017-07-11 10:12:06       # 表的创建时间
    Update_time: 2017-10-13 15:58:52       # 表的最近一次的修改时间
     Check_time: NULL                      # 最近一次使用checktable命令检查表的时间
      Collation: utf8_general_ci           # 排序规则
       Checksum: NULL                      # 表的校验和
 Create_options:                           # 创建表时其他的额外选项
        Comment:                           # 注释信息
1 row in set (0.00 sec)

修改表:ALTER TABLE
删除表:DROP TABLE

posted @ 2017-10-13 16:30  fansik  阅读(238)  评论(0编辑  收藏  举报