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

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. jeecg308自定义使用getDataGridReturn方法分页失效问题

    DataGrid dataGrid = new DataGrid(); dataGrid.setPage(p); dataGrid.setRows(r); dataGrid.setOrder(&quo ...

  2. linux文件系统和目录树的关系

    文件系统是和底层的硬件系统紧密关联的,文件系统相当于是dev(设备或硬件)在Linux上面的显示,如/dev/hdc2 而目录树是逻辑的概念,其可以通过挂载的方式连接文件系统,先用df查看本地的文件系 ...

  3. restful之http讲解

    HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...

  4. Dom EVENT对象

    Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 一:测试按键 function which ...

  5. CentOS7.2上搭建httpbin环境

    CentOS7上搭建httpbin环境 1.安装python31)安装python3.6可能使用的依赖yum -y install openssl-devel bzip2-devel expat-de ...

  6. Python 中 创建类方法为什么要加self

    Python的类方法和普通的函数有一个明显的区别,在类的方法必须有一个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数数值(显胜于隐的引发).在Python的类方法中这个特别的参数指 ...

  7. LINQ新添知识

    linquser.ExecuteCommand("TRUNCATE TABLE Board");       linquser.ExecuteCommand("DELET ...

  8. 如何在Netweaver SE16里直接查看某数据库行记录

    有的数据库表字段类型为RAWSTRING, 包含的是XML的二进制内容,无法直接在SE16里显示. 如果确实想看其内容,怎么办?在下面SE16页面的命令提示栏输入命令/h, 回车进入调试模式.然后双击 ...

  9. 【UML】部署图Deployment diagram(实现图)(转)

    http://blog.csdn.net/sds15732622190/article/details/49049665 前言 下面要介绍UML中的部署图,和构件图一样,它也属于实现图的一种,五种静态 ...

  10. mini_batch GD

    工作过程:训练总样本个数是固定的,batch_size大小也是固定的,但组成一个mini_batch的样本可以从总样本中随机选择.将mini_batch中每个样本都经过前向传播和反向传播,求出每个样本 ...