数据库-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)
修改表结构的注意事项
  • 修改表结构最好是在表中没有数据的情况下进行
  • 当表中含有数据时
    • 尽量不修改表中某字段的类型,否则可能因为现有数据不满足新修改的类型导致修改失败
    • 尽量不缩短字段长度
    • 若为字段新添加约束,该字段现有的数据不能违反该约束
相关推荐
Oueii23 分钟前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝1 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
2401_831824961 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf1 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
twc8291 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
@我漫长的孤独流浪1 小时前
Python编程核心知识点速览
开发语言·数据库·python
2401_851272991 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
枕布响丸辣1 小时前
MySQL 从入门到精通:完整操作手册与实战指南
数据库·mysql
电商API&Tina2 小时前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
2401_857918292 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python