[MySQL]DDL语句

发布于:2024-11-03 ⋅ 阅读:(124) ⋅ 点赞:(0)

基础命令

    查询所有数据库的名称: SHOW DATABASES;                                                                                  使用某个数据库: USE 数据库名;                                                                                                        查询当前使用的数据库的名称: SELECT database();

数据库操作

    创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 --
-> [DEFAULT CHARCTER SET 字符集 COLLAE 排序规则字符集]
# -->表示一行代码过长,为了方便看,将后段移到第二行

其中,IF NOT EXISTS 表示,当该数据库已经存在时,则不执行创建(创建的话会报错)。

DEFAULT CHARACTER: 默认的字符集, 如果没有设置,默认是utf8

COLLATE: 排序规则, 如果没有设置,默认是: utf8_general_ci

字符集

    utf8: utf8 编码最⼤字符长度为 3 字节,如果遇到 4 字节的宽字符就会插⼊异常了,比如Emoji表情,就无法使用utf8存储

    utf8mb4: mb4即most bytes 4,专门用来兼容四个字节即以上的unicode, 在Mysql在5.53版本之后(推荐使用)

排序规则

    utf8mb4_bin:将字符串每个字符⽤⼆进制数据编译存储,区分⼤⼩写,⽽且可以存⼆进制的内容(推荐使用)

    utf8mb4_general_ci:ci即case insensitive,不区分⼤⼩写。没有实现Unicode排序规则,在遇到某些特殊语⾔或者字符集,排序结果可能不⼀致。但是,在绝⼤多数情况下,这些特殊字符的顺序并不需要那么精确。

    utf8mb4_unicode_ci:是基于标准的Unicode来排序和⽐较,能够在各种语⾔之间精确排序,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。

    utf8mb4_general_ci是⼀个遗留的 校对规则,不⽀持扩展,它仅能够在字符之间进⾏逐个⽐较。

    utf8_general_ci校对规则进⾏的⽐较速度很快,但是与使用 utf8mb4_unicode_ci的校对规则相比,比较正确性较差。

    删除数据库

DROP DATABASE [IF EXISTS] 数据库名;
# 删除对应名称的数据库

IF EXISTS 和 IF NOT EXISTS :表示如果已经创建或未被创建 

表操作

    创建表

CREATE TABLE 表名(
    列名1 数据类型,
    列名2 数据类型,
    ....
);

 给表或字段添加注释

# 给表添加注释
CREATE TABLE 表名(内容) COMMENT '注释名';

# 给字段添加注释
(
    字段名 数据类型 COMMENT '注释名',
    ...
)

 设置无符号

  •    例如INT、DOUBLE类型数据往往分正负,想要设置无符号可以用'UNSIGNED'关键字
(
    列名 分正负的数据类型 UNSIGNED,
)

设置主键 

主键要求该字段的数据唯一

1.在创建表时设置主键

CREATE TABLE 表名(
    列名 数据类型 [PRIMARY KEY],# 给单独的某一字段设置为主键
    ...,
    [PRIMARY KEY (列名,列名,...)]在末尾设置主键,此常可以设置关联主键
)

 2.在后续给已创建但是没有主键的表添加主键

ALTER TABLE 表名 ADD PRIMARY KEY (字段1,字段2,..0);

其他的表操作 

# 查看当前数据库中所有表名称:
SHOW TABLES;

# 查看指定表的创建语句:
SHOW CREATE TABLE 表名;

# 查看表结构:
DESC 表名;

# 删除表:
DROP TABLE 表名;

数据类型

数值类型

类型 大小(byte) 有符号(SIGNED)范围 无符号(UNSIGNED)范围 描述
tinyint 1 (-128,127) (0,255) 小整数值
smallint 2 (-32768,32767) (0,65535) 大整数值
mediumint 3 (-8388608,8388607) (0,16777215) 大整数值
int 4 (-2147483648, 2147483647) (0,4294967295) 大整数值
bigint 8 (-2^63,2^63-1) (0,2^64-1) 大整数值
float 4 (-3.402823466 E+38, 3.402823466351 E+38) 0 和 (1.175494351 E- 38,3.402823466 E+38) 单精度浮点数值
double 8 (-1.7976931348623157E+308,1.7976931348623157E+308) 0 和(2.2250738585072014E-308,1.7976931348623157E+308) 双精度浮点数值
decimal 依赖于M(精度)和D(标度) 的值 依赖于M(精度)和D(标度) 的值 小数值(精确定点数)

 

字符类型

类型 大小(byte) 描述
char 0-255 固定长字符串(需要指定长度)
varchar 0-65535 变长字符串(需要指定长度)
tinyblob 0-255 不超过255个字符的二进制数据
tinytext 0-255 短文本字符串
blob 0-65 535 二进制形式的长文本数据
text 0-65 535 长文本数据
mediumblob 0-16 777 215 二进制形式的中等长度文本数
mediumtext 0-16 777 215 中等长度文本数据
longblob 0-4 294 967 295 二进制形式的极大文本数据
longtext 0-4 294 967 295 极大文本数据

日期类型

类型 大小 范围 格式 描述
date 3 1000-01-01 至 9999-12-31 yyyy-MM-dd 日期值
time 3 -838:59:59 至 838:59:59 hh:mm:ss 时间值
year 1 1901 至 2155 yyyy 年份值
datetime 8 1000-01-01 00:00:00 至9999-12-31 23:59:59 yyyy-MM-dd hh:mm:ss 日期加时间
timestamp 4 1970-01-01 00:00:01 至2038-01-19 03:14:07 yyyy-MM-dd hh:mm:ss 日期加时间


网站公告

今日签到

点亮在社区的每一天
去签到