当前位置: 首页 > article >正文

[MySQL]DDL语句

基础命令

    查询所有数据库的名称: 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)范围描述
tinyint1(-128,127)(0,255)小整数值
smallint2(-32768,32767)(0,65535)大整数值
mediumint3(-8388608,8388607)(0,16777215)大整数值
int4(-2147483648, 2147483647)(0,4294967295)大整数值
bigint8(-2^63,2^63-1)(0,2^64-1)大整数值
float4(-3.402823466 E+38, 3.402823466351 E+38)0 和 (1.175494351 E- 38,3.402823466 E+38)单精度浮点数值
double8(-1.7976931348623157E+308,1.7976931348623157E+308)0 和(2.2250738585072014E-308,1.7976931348623157E+308)双精度浮点数值
decimal依赖于M(精度)和D(标度) 的值依赖于M(精度)和D(标度) 的值小数值(精确定点数)

 

字符类型

类型大小(byte)描述
char0-255固定长字符串(需要指定长度)
varchar0-65535变长字符串(需要指定长度)
tinyblob0-255不超过255个字符的二进制数据
tinytext0-255短文本字符串
blob0-65 535二进制形式的长文本数据
text0-65 535长文本数据
mediumblob0-16 777 215二进制形式的中等长度文本数
mediumtext0-16 777 215中等长度文本数据
longblob0-4 294 967 295二进制形式的极大文本数据
longtext0-4 294 967 295极大文本数据

日期类型

类型大小范围格式描述
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日期加时间


http://www.kler.cn/a/377562.html

相关文章:

  • CodeQL学习笔记(5)-CodeQL for Java(AST、元数据、调用图)
  • 蓬勃发展:移动开发——关于软件开发你需要知道些什么
  • 青少年编程能力等级测评CPA Python编程(一级)
  • docker 可用镜像服务地址(2024.10.31亲测可用)
  • git commit应遵循的提交规范
  • 水仙花求和
  • 大模型在自动化渗透测试中的应用
  • MySQL 的 BETWEEN AND
  • 系统架构设计师-未来信息综合技术(2)
  • 【动手学电机驱动】 STM32-FOC(2)IHM03 电机控制套件介绍
  • (四)PostgreSQL数据库操作示例
  • SQL优化经验大全(表设计优化,索引优化,索引创建规则、索引失效场景,sql语句优化,主从复制,分库分表)面试题
  • list(c++)
  • 基于milvus的多模态检索
  • AWS RDS Oracle hit ORA-39405
  • 第三十一章 单页与多页应用程序概念
  • 单智能体carla强化学习实战工程介绍
  • 使用Django REST framework构建RESTful API
  • 【React 轮子】文本溢出后显示展开/收起按钮
  • java jsoup解析豆瓣电影数据html实战教程
  • Linux云计算 |【第五阶段】CLOUD-DAY5
  • 2.WebSocket进阶: 深入探究实时通信的最佳实践与优化技巧
  • Rust 力扣 - 1652. 拆炸弹
  • 深入理解跨域资源共享(CORS)安全问题原理及解决思路
  • C++编程法则365天一天一条(27)std::initializer_list 轻量级初始化列表
  • OKHTTP断点续传