数据库-DDL语言-数据定义语言

DDL语言-数据定义语言

对数据库对象进行操作的语言, 涉及到的关键字CREATE,ALTER,DROP

对数据库的操作

新建一个数据库
语法
sql 复制代码
CREATE DATABASE 数据库名 [charset=字符集]
sql 复制代码
新建一个数据库:mydb
CREATE DATABASE mydb;

注:SQL语句不区分大小写,但是好的书写习惯:关键字大写,非关键字小写

指定字符集
sql 复制代码
创建数据库mydb1,指定字符集为UTF-8
CREATE DATABASE mydb1 CHARSET=UTF8;

创建数据库mydb2,指定字符集为GBK
CREATE DATABASE mydb2 CHARSET=GBK;
查看已创建的数据库
语法
sql 复制代码
SHOW DATABASES;
查看创建数据库时的信息
语法
sql 复制代码
SHOW CREATE DATABASE 数据库名
sql 复制代码
SHOW CREATE DATABASE mydb
删除数据库
语法
sql 复制代码
DROP DATABASE 数据库名
SQL 复制代码
DROP DATABASE mydb
切换数据库
语法
sql 复制代码
USE 数据库名

sql 复制代码
USE mydb1;		//切换数据库到mydb1
USE mydb2;      //切换数据库到mydb2

表操作

创建表
语法
sql 复制代码
CREATE TABLE 表名(
	字段名名1 类型[(长度)] [DEFALUT 默认值] [约束],
    字段名名2 类型,
    ...
)[CHARSET=字符集]
SQL 复制代码
准备一个数据库mydb并使用
CREATE DATABASE mydb;			创建数据库mydb
USE mydb;						切换到mydb,那么后面创建表都是创建到这个库中

创建一张表user,保存用户信息(用户名,密码,昵称,年龄)
CREATE TABLE user(
	id INT,					类型是方言,不同数据库不同,mysql中整数为INT,oraclet为Number
    username VARCHAR(32),   字符串类型是VARCHAR,长度为字节量,如果是UTF-8编码32字节可以存
    password VARCHAR(32),   10个汉字。
    nickname VARCHAR(32),
    age INT(3)              对于整数而言,长度表示保存的数字位数。
)
查看表结构
语法
sql 复制代码
DESC 表名
sql 复制代码
查看user表的结构
DESC user
查看表创建时的信息
语法
sql 复制代码
SHOW CREATE TABLE 表名
sql 复制代码
SHOW CREATE TABLE user
查看当前数据库中创建的所有表
语法
sql 复制代码
SHOW TABLES
修改表名
语法
sql 复制代码
RENAME TABLE 原表名 TO 新表名
sql 复制代码
将user表改名为userinfo
RENAME TABLE user TO userinfo
删除表
语法
sql 复制代码
DROP TABLE 表名
sql 复制代码
删除表userinfo
DROP TABLE userinfo
修改表结构

准备一张表

sql 复制代码
CREATE TABLE hero(
	name VARCHAR(32),
	age INT(3)
)
添加一个字段
在表末尾追加新字段

语法

sql 复制代码
ALTER TABLE 表名 ADD 字段名 类型[(长度) 默认值 约束]

sql 复制代码
向表hero的末尾添加一个新字段gender,它的类型是字符串,长度占10个字节
ALTER TABLE hero ADD gender VARCHAR(10)
在表最开始添加字段

语法

sql 复制代码
ALTER TABLE 表名 ADD 字段名 类型 FIRST

sql 复制代码
在hero表最开始添加id字段,类型为int
ALTER TABLE hero ADD id INT FIRST
在表中插入新的字段

语法

sql 复制代码
在表中现有的字段后面添加新字段
ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中现有字段名

sql 复制代码
在name字段后面添加密码pwd字段
ALTER TABLE hero ADD pwd VARCHAR(32) AFTER name
删除字段
语法
sql 复制代码
ALTER TABLE 表名 DROP 字段名
sql 复制代码
将hero中的pwd字段删除
ALTER TABLE hero DROP pwd
修改表字段
语法
sql 复制代码
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型[长度 默认值 约束]
SQL 复制代码
修改hero表中的年龄字段长度为5
ALTER TABLE hero CHANGE age age INT(5)
sql 复制代码
修改hero表中的年龄字段为字符串,长度为20字节
ALTER TABLE hero CHANGE age age VARCHAR(20)
sql 复制代码
修改hero表中的gender字段,改名为nickname 类型为字符串,长度30字节
ALTER TABLE hero CHANGE gender nickname VARCHAR(30)
修改表结构的注意事项
  • 修改表结构最好是在表中没有数据的情况下进行
  • 当表中含有数据时
    • 尽量不修改表中某字段的类型,否则可能因为现有数据不满足新修改的类型导致修改失败
    • 尽量不缩短字段长度
    • 若为字段新添加约束,该字段现有的数据不能违反该约束
相关推荐
TDengine (老段)3 小时前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
TDengine (老段)3 小时前
TDengine 数学函数 GREATEST 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
@yanyu6663 小时前
idea中配置tomcat
java·mysql·tomcat
安当加密4 小时前
云原生时代的数据库字段加密:在微服务与 Kubernetes 中实现合规与敏捷的统一
数据库·微服务·云原生
爱喝白开水a4 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
想ai抽4 小时前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
武子康4 小时前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
longgyy4 小时前
5 分钟用火山引擎 DeepSeek 调用大模型生成小红书文案
java·数据库·火山引擎
ytttr8735 小时前
C# 仿QQ聊天功能实现 (SQL Server数据库)
数据库·oracle·c#
盒马coding6 小时前
第18节-索引-Partial-Indexes
数据库·postgresql