MySQL中DDL常用命令

操作数据库

下面开始使用sql语句操作数据库,需要注意的是要以英文的分号结尾。表名和字段名通常使用小写英文命名,做到见名知意,多个英文单词之间使用下划线间隔,例如task_config。
创建数据库

创建一个数据库,名字是study1

create database study1;

创建数据库study2,指定字符编码为gbk:

create database study2 character set gbk;

查看数据库

显示当前所有的数据库

show databases;

查看study2数据库的定义信息:

show create database study2;

修改数据库

将study2数据库的编码修改为utf-8;

alter database study2 character set utf8;

删除数据库

删除study2数据库

drop database study2;

查看当前使用的数据库

select database();

切换数据库

切换至study2数据库

use study2;

操作数据库表

创建表语法:

create table 表名(
        字段1 字段类型,
        字段2 字段类型,
        ...
        字段n 字段类型
);

常用的字段数据类型:

int:整型
double:小数类型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
decimal(m,d):小数类型,m是长度,d是小数的位数
char:固定长度字符串类型; char(10)  如果不足10位则会自动补足10位:'abc       '
varchar:可变长度字符串类型;varchar(10) 如果不足10位不会补足:'abc',性能不如char高
text:字符串类型;适用于大文本内容,可以存储文章评论等内容。
blob:字节类型,可以存储图片和视频等内容,会降低数据库性能,通常不用。
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  以世界协调时(UTC)格式保存的, 在存储时会对当前时区进行转换, 在查询检索时再把UTC时间转换为当前时区
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss   按实际输入的存储,与时区无关

如何选择字段类型:

  • 整数与小数

    如果不需要小数就选择整数,如果需要小数就选择DECIMAL,精度比较高,不建议使用double和float,会损失精度

  • TIMESTAMP与DATETIME

    如果有跨时区的业务,则需要选择TIMESTAMP,其取值范围小, 1970~2037,当字段设置为TIMESTAMP类型时,如果没有显示插入数据,MySQL会把当前时间作为该列的值。

  • CHAR与VARCHAR

    CHAR是固定长度的,VARCHAR是可变长度的. CHAR会在尾部插入空格, VARCHAR不会。CHAR处理速度比VARCHAR快,缺点是浪费空间.如果存储的数据不大,在速度上有要求选择CHAR。MySQL数据库中的InnoDB存储引擎,存储CHAR与VARCHAR数据时不分固定长度还是可变长度,因为使用CHAR不一定比VARCHAR更好. 如果使用MyISAM存储引擎,最好使用固定长度的CHAR,检索会更快

示例:

create table employee(
        id int,
        name varchar(20),
        sex char(1),
        birthday date,
        job varchar(50),
        salary double

);

查看数据库中所有的表

SHOW TABLES;

查询出的字段中,Field表示字段名, TYPE表示字段的类型, NULL表示是否允许为空, KEY是主键, Default是默认值。

查看表的字段信息

DESC employee;

在上面员工表的基础上增加一个address列。

ALTER TABLE employee ADD address varchar(100);

修改job列,使其长度为30。

ALTER TABLE employee MODIFY job varchar(30);

删除address列,一次只能删一列。

ALTER TABLE employee DROP address;

表名改为user。

RENAME TABLE employee TO user;

查看表格的创建细节

SHOW CREATE TABLE user;

修改表的字符集为gbk

ALTER TABLE user CHARACTER SET gbk;

列名name修改为username

ALTER TABLE user CHANGE name username varchar(20);

删除表

DROP TABLE user ;