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

原文地址:http://blog.51cto.com/zhanx/2348156

时间: 01-31

SQL: DDL, DML,表定义与含义的相关文章

SQL Server 查看表定义的 2 种方法

方法 1. 用SQL Server Management Studio 第一步找到要查看的表,右键 第二步点设计 方法 2. sp_help @objname = 'tableName' execute sp_help @objname = 'Nums';

SQL中的四种语言DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang

SQL四种语言:DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang

Orecle Mysql 基本sql语句DDL & DML 介绍与总结 by 冰琉璃

先给大家普及一下安装mysql的简易方法:yum yum search mysql (查找关于mysql的内容) 找到后需要安装3个内容 mysql.i386 mysql-server.i386 mysql-devel.i386 安装过后 service mysqld start (启动mysql服务) 进入mysql mysql -h -u root -p 密码直接回车 开始密码为默然:以后可以在mysql里面改密码或者创建账号等操作 Mysql的sql语句大致分为4种  DDL (定义语句)

ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)

DDL.DML和DCL的理解 1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管理和定义具体表现在Create.Drop和Alter上.特别注意:DDL操作的"对象"的概念,"对象"包括对象及对象的属性,而且对象最小也比记录大个层次.以表举例:Create创建数据表,Alter可以更改该表的字段,Dro

SQL的单个表的大小限制最大可以是多大?

第一个表说明对于所有 Microsoft® SQL Server™ 2000 版本都相同的最大容量.第二个和第三个表说明因 SQL Server 2000 的版本和操作系统的不同而异的容量. 下表说明在 Microsoft SQL Server 数据库中定义的,或在 Transact-SQL 语句中引用的各种对象的最大值(数量或大小).下表不包含 Microsoft® SQL Server 2000™ Windows® CE 版. 最大值(数量或大小) 对象 SQL Server 7.0 SQL

SQL语句删除表中所有记录的方法

如何用一条sql语句删除表中的所有记录,这里分享下我的方法.参考链接: sql语句如何删除重复记录?四种方法 sql语句如何删除重复记录?教程详解 TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作. 语法TRUNCATE TABLE name 参数name 是要截断的表的名称或要删除其全部行的表的名称. 注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度

SQL Server数据库表重置自增主键号(通常是指ID)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

向SQL Server 现有表中添加新列并添加描述.

注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) 代码 /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' *********

SQL语句修改表名和字段名

今天有个临时任务,修改生产环境的数据库表名和字段名.以前要修改表名字段名都是在开发环境,直接打开 SQL Server找到对应的表或字段重命名就OK啦,可是这是线上数据库,再想直接F2修改是不可能的啦.怎么办?乖 乖写脚本呗.上网了解了一些相关资料,结合我自己操作过程中出现的一些实际问题简单作个总结,再次加深下印 象. SQL自带了一系列的系统存储过程.其中sp_rename就具有修改表名和列名的功能.对于sp_rename是这样定 义的:更改当前数据库中用户创建对象(如表.列或用户定义数据类型