DDL语言的使用

Data Definition Language(DDL),数据定义语言,用来定义数据库对象

一、数据库操作

1)查询所有数据库

show database;

2)查询当前数据库

select database();

3)创建数据库

create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

[if not exists]用来解决数据库名字重复问题,在同一个数据库服务器中,不能出现名字重复的数据库名字。

[default charset 字符集]用来指定数据库的字符集,如ASCLL,GBK,UTF-8等。

[collate 排序规则]指定数据库的排序规则。

e.g.:

创建一个aaa数据库,使用默认的数据集

create database aaa;

查看效果:

4)删除数据库

drop database 数据库名;

如果数据库不存在时使用上述指令会发生错误,可以加上if exists,如下;

drop database [if exists] 数据库名;

5)切换数据库

use 数据库名;

当我们要操作某个数据库下面的表时,要先切换到该数据库下,否则不能操作。

二、表操作

1.查询创建

1)查询当前数据库所有表

show tables;

2)查看指定表的结构

desc 表名;

3)查询指定表的建表语句

show create table 表名;

通过这条语句,我们可以查询到在建立该表的时候所设置的参数,如存储引擎、字符集等。

4)创建表结构

create table 表名(
    字段一 字段一类型 [comment 字段一注释],
    字段二 字段二类型 [comment 字段二注释],
    字段三 字段三类型 [comment 字段三注释],
    ...... ......... ........ ..........
    ...... ......... ........ ..........
    ...... ......... ........ ..........
    字段N  字段N类型  [comment 字段N类型]
)[comment 表注释];

注:完成字段的创建编写后,如果还要继续创建字段,要在语句末尾加上",",如果该语句是要创建的最后一个字段,无需加上","。

e.g.:

创建如下表名为tb_xiyouji的表结构:

idnameagegender
1孙悟空18
2猪八戒16
3白骨精17
create table tb_xiyouji(
    id int comment '编号',
    name varchar(10) comment '姓名',
    age int comment '年龄',
    gender varchar(1) comment '性别'
) comment '用户表';

执行结果:

2.数据类型

常见的数据类型有三种:数值类型、字符串类型、日期时间类型

1)数值类型

类型大小有符号范围无符号范围
tinyint1byte-128~1270~255
smallint2bytes-32768~327670~65535
mediumint3bytes-8388608~83886070~16777215
int4bytes-2147483648~21474836470~4294967295
bigint8bytes-2^63~2^63-10~2^64-1
float4bytes-1.7976931348623157 E+308~1.7976931348623157 E+3080 和 1.175494351 E -38~3.402823466 E+38
double8bytes-1.7976931348623157 E+308~ 1.7976931348623157 E+3080和2.2250738585072014 E-308~1.7976931348623157 E+308

2)字符串类型

类型大小描述
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过255个字符的二进制数据
INYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

3)日期类型

类型大小范围格式描述
DATE31000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至 838:59:59HH:MM:SS时间值或持续 时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时 间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时 间值,时间戳

e.g.:设计一张员工表:

1.编号(纯数字)

2.员工工号(字符串类型,长度不大于10)

3.员工姓名(字符串类型,长度不大于5)

4.姓别(男/女)

5.年龄

6.身份证号(18位,考虑包含X的情况)

7.入职时间(年月日)


建表语句如下:

create table user(
    id int comment '编号',
    workno varchar(10) comment '员工工号',
    name varchar(5) comment '姓名',
    gender char(1) comment '性别',
    age tinyint comment '年龄',
    idcard char(10) comment '身份证号',
    entrydata date comment '入职时间'
) comment '员工信息表';

查看执行效果:

3.修改

1)添加字段

alter table 表名 add 字段名 类型(长度) [ comment 注释 ] [约束];

e.g.:

在user表中添加新的字段“地址”为adress,类型为varchar(10)

执行以下指令:

alter table user add adress varchar(10) comment '地址';

效果如下:

2)修改数据类型

alter table 表名 modify 字段名 新数据类型 (长度);

3)修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [ comment 注释] [约束];

e.g.:

将user表中的adress修改成address,类型为varchar(11)

alter table user change adress address varchar(11) comment '地址';

4)删除字段

alter table 表名 drop 字段名;

5)修改表名

alter table 表名 rename to 新表名;

e.g.:

将user修改为users

alter table user rename to users;

4.删除

1)删除表

drop table [if exists] 表名;

2)删除指定表,并重建

truncate table 表名;
  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值