1. create(创建表)
    
    标准的建表语句:
    create table [模式名.]表名
    (
    #可以有多个列定义
    columnName1 dataType [default expr(这是默认值)],
    ...
    )
    圆括号里可以包含多个列定义,每个列定义之间用英文逗号(,)隔开,最后一个列定义不需要逗号,直接以圆括号结束。
    
     建立表只是建立表结构,就是定义数据表有多少列,列包含列名、类类型、可选的默认值(使用default关键字定义)。
    
    
    MySQL支持的列类型
    列类型 说明
    tinyint/smallint/mediumint/int(integer)/bigint
    1字节/2字节/3字节/4字节/8字节正数,又可分为有符号和无符号两种。 这些正数类型的区别仅仅是表数范围不同。
    float/double   
     单精度、双精度浮点类型
    decimal(dec)       
     精确小数类型,相对于float和double不会产生精度丢失问题
    date 
     日期类型,不能保存时间。把java.util.Date对象保存进date列时,时间部分将丢失
    time   
     时间类型,不能保存日期。把java.util.Date对象保存进time列时,日期部分将丢失
    datetime    
     日期、时间类型
    timestamp        
     时间戳类型
    year    
     年类型,仅仅保存时间的年份
    char 
     定长字符串类型
    varchar   
     可变长度字符串类型
    binary    
     定长二进制字符串类型,它以二进制形式保存字符串
    varbinary   
     可变长度的二进制字符串类型,它以二进制形式保存字符串
    tinyblob/blob/mediumblob/longblob  
     1字节/2字节/3字节/4字节的二进制大对象,可用于存储图片、音乐等二进制数据,分别 可存储:255B/64KB/16MB/4GB的大小
    tinytext/text/mediumtext/longtext
     1字节/2字节/3字节/4字节的文本对象,可用于存储超长长度的字符串,分别可储存: 255B/64KB/16MB/4GB大小的文本
    enum('value1','value2',...)
     枚举类型,该列的值只能是enum后括号里多个值的其中之一
    set('value1','value2',...)
    集合类型,该列的值可以是set后括号里多个值的其中几个
    
    
    #例句:
    create table t_test
    ( #整形通常用int
    test_id int,
    #小数定义
    test_price decimal,
    #定义普通文本,使用default关键字指定默认值
    test_name varchar(255) default 'xxx',
    #定义大文本类型
    test_desc text,
    #定义图片
    test_img blob,
    #定义日期
    test_date datetime
    );
    上面这种常见的建表语句只是创建一个空表,该表里没有任何数据。
    
    如果使用子查询建表语句,则可以在建表的同时插入数据。 语法如下:
    create table [模式名.]表名 [column1[, column2, ...] as subQuery;
    上面语法中新表的字段列表必须与子查询中的字段列表数量匹配,创建新表时的字段列表可以省略,如果省略了该字段列表,则新 表的列名与选择结果完全相同,如下:
    create table user2 as select * from user;
    上面的语句相当于把user表复制了一份,取名为user2。
     
  2. alter(修改表结构)
    包括增加列定义、修改列定义、删除列、重命名列等
    增加列定义:
    alter table tableName add
    (
    #可以有多个列定义
    columnName dataType [default expr],
    ...
    );
    上面的语句表示将圆括号里的列追加到指定表的列定义后面。如果只是新增一列,则可以省略圆括号。
    #例句:
    #为t_test表增加一个add_id字段,该字段的类型为int
    alter table t_test add add_id int; #为t_test表增加add_name、add_address字段,类型都为varchar
    alter table t_test add
    (
    add_name varchar(255) default 'this is name',
    add_address varchar(255)
    );
    
    
    注意:SQL语句中的字符串不是用双引号,而是用单引号;增加字段时,如果数据表中已有数据记录,除非给新增的列指定了默认值,
    否则新增的数据列不可指定为非空约束,因为那些已有的记录在新增列上肯定是空。 (只要新增的约束与已有的数据冲突,修改数据表结构就会失败)。
    
    
    修改列定义:
    alter table tableName modify columnName dataType [default expr] [first | after columnName];
    上面语法中的first或者after columnName表示将目标列修改到指定的位置。
    #例句:
    
    #将t_test表中的add_id列的类型修改成varchar(255)类型
    alter table t_test modify add_id varchar(255); #将t_test表中的add_name列修改成int类型
    alter table t_test modify add_name int;
    
    
    删除列定义:
    alter table tableName drop columnName;
    删除列,只需要在drop关键字后跟上要删除的列名即可。
    #删除t_test表中的add_name列
    alter table t_test drop add_name;
    
    
    重命名数据表名:
    alter table tableName rename to newTableName;
     
    #例句:
    #将t_test数据表重命名为t_demo
    alter table t_test rename to t_demo;
    
    
    重命名数据表中的列名:
    alter table tableName change
    old_column_name new_column_name dataType [default expr] [first | after column_name];
     
    
  3. drop(删除表)
    #语法:
    drop table tableName;
     
    #例句:
    #删除t_demo数据表
    drop table t_demo;
    
    
    注意:删除数据表后,表结构被删除,表对象不再存在;表里的所有数据也被删除;该表所有相关的索引、约束也被删除。
    
    
  4. truncate(截断表)
    删除表里的全部数据,但保留表结构。truncate只能一次性删除整个表的全部记录。
    #语法:
    truncate tableName;

MySQL中的DDL(Data Definition Language,数据定义语言)的更多相关文章

  1. 合理使用mysql中的load data infile导入数据

    基本语法: load data  [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name ...

  2. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

  3. 数据定义语言(DDL Data Definition Language)基础学习笔记

    创建数据库 create database if not exists STUDY character set utf8 ; 查看新建数据库的语句 SHOW CREATE DATABASE STUDY ...

  4. Hive 5、Hive 的数据类型 和 DDL Data Definition Language)

    官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...

  5. mysql中使用load data infile导入数据的用法

    有时需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用mysql load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. LO ...

  6. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

    DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...

  7. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  8. 关于mysql中的DDL,DML,DQL和DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  9. mysql中的DDL,DML,DQL,DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

随机推荐

  1. ABAP EXCEPTION

    CX_ROOT | |--CX_STATIC_CHECK | |--CX_DYNAMIC_CHECK | | | |--CX_SY_ARITHMETIC_ERROR //运算 '&OPERAT ...

  2. C++运算符重载讲解与经典实例

    最近在学C++,找到一篇详细讲解运算符重载的文章,贴在这里分享和收藏. C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作.例如: class  ...

  3. PHP实现正态分布的累积概率函数

    在实际项目中,遇到需要正态分布算法去计算一个数值在整体的分布区间,例如:  100,90,80,70,60,50,40,30,20,10共10个数,按从高到低的顺序排序,总数的10%分布区域为极高频, ...

  4. optparse 模块

    一.optparse是专门用来在命令行添加选项的一个模块.支持python2.3及以上版本,从2.7版本之后,python不再更新该模块,2.7之后的版本推荐使用argparse模块. 二.optpa ...

  5. External Pricing in C4C and ERP

    从下图可以看出,C4C的Opportunity,Sales Quote和Sales Order这些business transaction没有自己的pricing engine,使用的是在ERP Pr ...

  6. 在CesiumVR基础上实现3D左右立体视觉

    整体思路 在VR模块的基础上调整视差,使其随距离发生变化: 左右分屏时,需要将左右屏的横向进行1/2压缩:这是因为3D-TV在对左右格式影像进行合并时,会进行拉伸: 左屏幕的相机相对于原来的(右屏)相 ...

  7. jquery绑定事件的系统参数传递方法

    如果是传递的事件自带函数,,可使用以下语法(以鼠标移动事件为例): init: function () { $(document).on("mousemove",loginOper ...

  8. CRF条件随机场简介<转>

    转自http://hi.baidu.com/hehehehello/item/3b0d1f8ba1c2e5c698255f89 CRF(Conditional Random Field) 条件随机场是 ...

  9. 关于"动态语言" "静态语言" "静态类型语言" "动态类型语言"的区别

    参考链接:关于“编译型”“解释型”“动态语言”“静态语言”“动态类型语言”“静态类型语言”的区分以及优缺点(汇总整理) 很多人把这两类混为一谈,但是这是完全不同的两个概念!!! 动态和静态语言主要看的 ...

  10. Java获取yml里面的配置

    #yml文件配置systemPath: #档案系统地址 dossier: http://127.0.0.1:8088/ //调用说明 配置文件里必须包含节点 否则项目无法启动 @Value(" ...