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];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) 对象: 数据库和表 ...
随机推荐
- 关于原生javascript的this,this真是个强大的东东
最近一直坐在东钿微信服务平台,上上级领导提出一个要求,就是微信分享. 因为首页是一个tab切换页,领导想在分享的时候区分上产调还是评估.我研究了很久很久,一直都是失败,今天领导又问了.于是我就向我们老 ...
- ABAP数据类型
数据类型表: 类型缩写 类型 默认长度 允许长度 初始值 描述 C 文本型 1 Space 字符串数据,如'Program' D 日期型 8 8 '00000000' 日期数据,格式为YYYYMM ...
- mkcert本地 HTTPS 加密证书生成工具
软件介绍: mkcert 是一个生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置. 下载地址: https://github.com/FiloSottile/mkcert/ ...
- 根据用户ID生成不重复的最小6位随机邀请码
网上看到一个例子,借鉴修改一下 实现根据long类型的用户ID生成6位随机邀请码,并且根据邀请码能算出用户ID.代码如下: /** 自定义进制(选择你想要的进制数,不能重复且最好不要0.1这些容易混淆 ...
- CAS 配置NLB 负载均衡网络无法连接
在虚拟机与虚拟机.虚拟机与实机之间利用Windows操作系统自带的网络负载均衡功能如选择单播集群模式,网络就无法通讯,NLB不成功. Scenario #1 在虚拟机与虚拟机之间选择多播模式NLB可正 ...
- 基于FPGA的DDS任意波形发生器设计
一.简介 DDS技术最初是作为频率合成技术提出的,由于其易于控制,相位连续,输出频率稳定度高,分辨率高, 频率转换速度快等优点,现在被广泛应用于任意波形发生器(AWG).基于DDS技术的任 ...
- 如何在Sierra运行 Specials K 的patch
https://github.com/ApolloZhu/CORE-Keygen-and-Special-K-for-Sierra-Utility/blob/master/Special%20K%20 ...
- HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)
按身高排序,每个人前面最高的人数有上限,如果超出上限说明impossible, 每次考虑最小的人,把他放在在当前的从左往右第k+1个空位 因为要求字典序最小,所以每次k和(上限-k)取min值. 没有 ...
- CF Gym 100463B Music Mess (思路)
好题,当时想了半个小时,我往图论方面去想了,把出现过的字符串当场点,然后相互连边,那么就构成了一个三角形,一个大于三个点的连通分量里有以下结论:度为二的点可能是track,度为大于二的点一定不是tra ...
- HDU 5095 Linearization of the kernel functions in SVM (坑水)
比较坑的水题,首项前面的符号,-1,+1,只有数字项的时候要输出0. 感受一下这些数据 160 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 ...