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

6-创建和查询

创建&查询

DDL - 表操作 - 查询

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

    查询库表之前需要先试用 use 数据库名 进入数据库才可以查询到该数据库的库表, 否则将会出现未选择数据库的报错; 如果数据库中并无数据表, 则会出现 Empty set 的相应结果

    SHOW TABLES;
    

    查询当前数据库所有表

    切换到 sys 数据库, 并且查询库表可得到下面结果

    查询sys数据库中的库表

  2. 查询表结构

    DESC 表名;
    
  3. 查询指定表的建表语句

    SHOW CREATE TABLE 表名;
    

DDL - 表操作 - 创建

创建表的语句如下

CREATE TABLE 表名(字段1 字段1类型[ COMMENT 字段1注释 ],字段2 字段2类型[ COMMENT 字段2注释 ],字段3 字段3类型[ COMMENT 字段3注释 ],...字段n 字段n类型[ COMMENT 字段n注释 ]
)[ COMMENT 表注释 ];

创建表需要注意: [...] 是可选参数, 最后一个字段后面是不加逗号,

  1. 首先, 需要注意使用的是哪个数据库, 是否是用的需要操作的数据库, 如果不是, 需要使用 use 数据库名 进行切换

    检查所使用数据库是否有误

  2. 撰写创建库表的语句

    CREATE TABLE tb_user
    (id     int COMMENT '编号',name   varchar(20) COMMENT '姓名',age    int COMMENT '年龄',gender varchar(1) COMMENT '性别'
    ) COMMENT '用户表';
    

    创建用户表

DDL - 表操作 - 数据类型

MySQL中的数据类型有很多, 主要分为三类: 数值类型、字符串类型、日期时间类型

数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1 byte(-128, 127)(0, 255)小整数值
SMALLINT2 byte(-32768, 32767)(0, 65536)大整数值
MEDIUMINT3 byte(-8388608, 8388607)(0, 16777215)大整数值
INT或INTEGER4 byte(-2147483648, 2147483647)(0, 4294967295)大整数值
BIGINT8 byte(- 2 63 2^{63} 263, 2 63 − 1 2^{63}-1 2631)(0, )极大整数值
FLOAT4 byte(-3.402823466 E+38, 3.402823466351 E+38)0 和 (1.175494351 E-38, 3.402823466 E+38)单精度浮点数值
DOUBLE8 byte(-1.7976931348623157 E+308, 1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖于 M(精度) 和 D(标度) 的值依赖于 M(精度) 和 D(标度) 的值小数值(精确定点数)

字符串类型

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

日期时间类型

类型大小范围格式描述
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:00 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值, 时间戳

练习

根据需求创建表(设计合理的数据类型、长度)

设计一张员工信息表, 要求如下:

  1. 编号(纯数字)
  2. 员工工号(字符串类型, 长度不超过10位)
  3. 员工姓名(字符串类型, 长度不超过10位)
  4. 性别(男/女, 存储一个汉字)
  5. 年龄(正常人年龄, 不可能存储负数)
  6. 身份证号(二代身份证号均为18位, 身份证中有X这样的字样)
  7. 入职时间(取年月日即可)
CREATE TABLE emp_info
(id         INT NOT NULL AUTO_INCREMENT COMMENT '编号',work_no    VARCHAR(10) COMMENT '员工工号',name       VARCHAR(10) COMMENT '员工姓名',gender     CHAR(1) COMMENT '性别',age        TINYINT UNSIGNED COMMENT '年龄',id_card    CHAR(18) COMMENT '身份证号',entry_time DATE COMMENT '入职时间',PRIMARY KEY (id)
) COMMENT '员工表';

创建员工表

员工表结构

相关文章:

  • 接口自动化测试(Python+pytest+PyMySQL+Jenkins)
  • AlpineLinux安装部署elasticsearch
  • 如何搭建基于RK3588的边缘服务器集群?支持12个RK3588云手机
  • solidworks2021导出urdf
  • [Android]ANR的线程
  • 理解WebGL中的顶点着色器和片元着色器
  • git lfs 提交大文件
  • 解决git clone报错:fatal unable to access xxx. Could not resolve host github.com
  • 【PaddleOCR】PaddlePaddle 3.0环境安装,及PaddleOCR3.0 快速入门使用
  • MCP -1(待补充)
  • <4>_Linux进程概念
  • 同步日志系统深度解析【链式调用】【宏定义】【固定缓冲区】【线程局部存储】【RAII】
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·单调队列优化DP
  • Neo4j无法建立到 localhost:7474 服务器的连接出现404错误
  • 鸿蒙5:组件监听和部分状态管理V2
  • 【YOLOv13保姆级教程#03】自建数据集训练与验证(Train Val)全流程 | 手把手教你构建数据集、标签格式转换与yaml配置
  • NV046NV060美光固态闪存NV061NV063
  • matplotlib 绘制水平柱状图
  • 使用deepseek制作“喝什么奶茶”随机抽签小网页
  • linux面试常考