数据库-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)
修改表结构的注意事项
  • 修改表结构最好是在表中没有数据的情况下进行
  • 当表中含有数据时
    • 尽量不修改表中某字段的类型,否则可能因为现有数据不满足新修改的类型导致修改失败
    • 尽量不缩短字段长度
    • 若为字段新添加约束,该字段现有的数据不能违反该约束
相关推荐
倒流时光三十年22 分钟前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣501 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx1 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐2 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
杨超越luckly2 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
斯普信专业组2 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
Elastic 中国社区官方博客2 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索