MySQL中的DDL(Data Definition Language,数据定义语言)
- 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。
- 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];
- alter(修改表结构):
- drop(删除表):
- #语法:
- drop table tableName;
- #例句:
- #删除t_demo数据表
- drop table t_demo;
- 注意:删除数据表后,表结构被删除,表对象不再存在;表里的所有数据也被删除;该表所有相关的索引、约束也被删除。
- truncate(截断表)
- 删除表里的全部数据,但保留表结构。truncate只能一次性删除整个表的全部记录。
- #语法:
- truncate tableName;
MySQL中的DDL(Data Definition Language,数据定义语言)的更多相关文章
- 合理使用mysql中的load data infile导入数据
基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- 数据定义语言(DDL Data Definition Language)基础学习笔记
创建数据库 create database if not exists STUDY character set utf8 ; 查看新建数据库的语句 SHOW CREATE DATABASE STUDY ...
- Hive 5、Hive 的数据类型 和 DDL Data Definition Language)
官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...
- mysql中使用load data infile导入数据的用法
有时需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用mysql load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. LO ...
- 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)
DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...
- DDL数据定义语言
DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...
- 关于mysql中的DDL,DML,DQL和DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- mysql中的DDL,DML,DQL,DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
随机推荐
- jeecg308自定义使用getDataGridReturn方法分页失效问题
DataGrid dataGrid = new DataGrid(); dataGrid.setPage(p); dataGrid.setRows(r); dataGrid.setOrder(&quo ...
- linux文件系统和目录树的关系
文件系统是和底层的硬件系统紧密关联的,文件系统相当于是dev(设备或硬件)在Linux上面的显示,如/dev/hdc2 而目录树是逻辑的概念,其可以通过挂载的方式连接文件系统,先用df查看本地的文件系 ...
- restful之http讲解
HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...
- Dom EVENT对象
Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 一:测试按键 function which ...
- CentOS7.2上搭建httpbin环境
CentOS7上搭建httpbin环境 1.安装python31)安装python3.6可能使用的依赖yum -y install openssl-devel bzip2-devel expat-de ...
- Python 中 创建类方法为什么要加self
Python的类方法和普通的函数有一个明显的区别,在类的方法必须有一个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数数值(显胜于隐的引发).在Python的类方法中这个特别的参数指 ...
- LINQ新添知识
linquser.ExecuteCommand("TRUNCATE TABLE Board"); linquser.ExecuteCommand("DELET ...
- 如何在Netweaver SE16里直接查看某数据库行记录
有的数据库表字段类型为RAWSTRING, 包含的是XML的二进制内容,无法直接在SE16里显示. 如果确实想看其内容,怎么办?在下面SE16页面的命令提示栏输入命令/h, 回车进入调试模式.然后双击 ...
- 【UML】部署图Deployment diagram(实现图)(转)
http://blog.csdn.net/sds15732622190/article/details/49049665 前言 下面要介绍UML中的部署图,和构件图一样,它也属于实现图的一种,五种静态 ...
- mini_batch GD
工作过程:训练总样本个数是固定的,batch_size大小也是固定的,但组成一个mini_batch的样本可以从总样本中随机选择.将mini_batch中每个样本都经过前向传播和反向传播,求出每个样本 ...