【数据库 | 基础】DDL语句以及数据类型

文章目录

DDL---数据库操作

查询

创建

删除

使用

DDL---表操作---创建

查询

创建

MySQL中的数据类型

小案例

DDL---表操作---修改(结构)

添加字段

修改字段

删除字段

修改表名

删除


数据库DDL (Data Definition Language)是用于定义和管理数据库结构的语言,包含创建、修改、删除****数据库及表等核心操作。

DDL---数据库操作

查询

查询所有数据库

SHOW DATABASES;-- :列出当前数据库服务器中所有可用的数据库名称。

查询当前数据库

SELECT DATABASE(); -- 返回当前会话正在使用的数据库名称(即当前默认数据库)。

创建

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET 字符集 COLLATE 排序规则;

部分 说明
CREATE DATABASE 创建一个新数据库
IF NOT EXISTS 可选 。如果数据库已存在,不报错,直接跳过。强烈建议加上,避免重复执行时报错。
数据库名 要创建的数据库名称(如 my_shop、blog_db)。建议使用字母、数字、下划线,避免特殊字符或中文。
DEFAULT CHARACTER 字符集 指定默认字符集,例如 utf8mb4(推荐)
COLLATE 指定排序规则,例如 utf8mb4_unicode_ci 或 utf8mb4_general_ci

删除

DROP DATABASE IF EXISTS 数据库名;

|-------------|---------------------------------|
| IF EXISTS | 如果数据库不存在,加上IF EXISTS不报错。否则报错。 |

使用

USE 数据库名;-- 数据库服务器中有多个数据库,选中当前操纵的数据库

DDL---表操作---创建

查询

查询当前数据库所有表

SHOW TABLES;-- 解释:查询当前数据库所有表。

查询表结构

DESC(DESCRIBE) 表名;

查询指定表的创建语句

SHOW CREATE TABLE 表名;

创建

CREATE TABLE 表名(

字段1 字段1类型 COMMENT 字段1注释,

字段2 字段2类型 COMMENT 字段1注释,

字段3 字段3类型 COMMENT 字段1注释,

...

字段n 字段n类型 COMMENT 字段1注释

)COMMENT 表注释;

注意:....为可选择参数,最后一个字段后面不要加逗号。

MySQL中的数据类型

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

类型 字节数 有符号(Signed)范围 无符号(Unsigned)范围 描述
TINYINT 1 − ~ −1 0 ~ −1 小整数值
SMALLINT 2 − ~ −1 0 ~ −1 小整数值
MEDIUMINT 3 −~ −1 0 ~ −1 大整数值
INT或INTEGER 4 − ~ −1 0 ~ −1 大整数值
BIGINT 8 − ~ −1 0 ~ −1 极大整数值
FLOAT 4 (-3.402823466E+38~3.402823466351E+38) 0 和 (1.175494351E~ 38~3.402823466E+38) 单精度浮点值
DOUBLE 8 ±1.7976931348623157E±308 0和(2.2250738585072014 E-308~1.7976931348623157 E + 308) 双精度浮点值
DECTMAT 依赖于M(精度)和D(标度)的值 依赖于M(精度)D(标度)的值 小数值(精确认点数)

字符串类型

类型名称 最大大小(字节) 描述
CHAR(M) M的范围:0~255字节 定长字符串。性能高
VARCHAR(M) M的范围: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 或 -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' UTC 到 '2038-01-19 03:14:07' UTC YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

小案例

sql 复制代码
create table emp(
  id int COMMENT '编号',
  workno VARCHAR(10) COMMENT '工号',
  name VARCHAR(10) COMMENT'姓名',
  gender char(1) COMMENT '性别',
  age TINYINT UNSIGNED COMMENT '年龄', -- 无符号整数
  idcard char(18) COMMENT '身份证号',
  entrydata date COMMENT '入职年龄'
)COMMENT '员工表';

desc emp; -- 查看表结构 

DDL---表操作---修改(结构)

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) COMMENT 注释约束;

例子:为emp表增加一个新字段"昵称"为nickname,类型为varchar(20)

sql 复制代码
ALTER table emp ADD nickname VARCHAR(20) COMMENT '昵称';
desc emp; -- 查看表结构 

修改字段

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)COMMENT 注释约束;

例子:将emp表的nichname 字段修改username, 类型为varchar(30);

sql 复制代码
ALTER table emp CHANGE nickname username VARCHAR(30);
desc emp; -- 查看表结构 

删除字段

ALTER TABLE 表名 DROP 字段名;

例子:将emp表的字段username 删除

sql 复制代码
ALTER table emp drop username;
desc emp; -- 查看表结构 

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

例子:将emp表的表名修改为employee.

sql 复制代码
ALTER TABLE emp RENAME TO employee;
desc employee;

删除

删除表

DROP TABLE IF EXISTS 表名;

删除指定表,并创建创建该表

TRUNCATE TABLE 表名;

注意:在删除表时,表中的全部数据也会被删除。

相关推荐
hacker_LeeFei2 小时前
Windows 下配置 Redis 8.10.2 开机自启:一次踩坑全记录
数据库·windows·redis
这个DBA有点耶2 小时前
MySQL字符集与排序规则深入:索引失效的隐蔽场景与排查方法
数据库·mysql·代码规范
zl_dfq2 小时前
Redis 之 【持久化 与 事务】
数据库·redis
闲云自留地3 小时前
从下载到登录:MySQL 在两大系统上的完整安装教程
数据库·mysql
SelectDB技术团队3 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
一 乐3 小时前
博客管理系统|基于springboot + vue博客管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕设
茉莉玫瑰花茶4 小时前
GO [ 类型 ]
开发语言·数据库·golang
ClouGence4 小时前
开源数据库管理工具 CloudDM 4.3.0 发布,支持 SQL 收藏,多数据源语法支持大幅增强
数据库·oracle·sql server
Summer-Bright5 小时前
深度 | 壁仞1.74亿中标智算中心:国产GPU从能用跨进商用,但4.5亿的大单却因凑不齐三家废标了
数据库·ai·国产gpu
云安全助手5 小时前
自建接入VS聚合平台:企业 AI 调用的选型思路与迁移成本拆解
java·大数据·数据库·人工智能·ai大模型