DDL语言-数据定义语言
对数据库对象进行操作的语言, 涉及到的关键字CREATE,ALTER,DROP
对数据库的操作
新建一个数据库
语法
CREATE DATABASE 数据库名 [charset=字符集]
例
新建一个数据库:mydb
CREATE DATABASE mydb;
注:SQL语句不区分大小写,但是好的书写习惯:关键字大写,非关键字小写
指定字符集
创建数据库mydb1,指定字符集为UTF-8
CREATE DATABASE mydb1 CHARSET=UTF8;
创建数据库mydb2,指定字符集为GBK
CREATE DATABASE mydb2 CHARSET=GBK;
查看已创建的数据库
语法
SHOW DATABASES;
查看创建数据库时的信息
语法
SHOW CREATE DATABASE 数据库名
例
SHOW CREATE DATABASE mydb
删除数据库
语法
DROP DATABASE 数据库名
例
DROP DATABASE mydb
切换数据库
语法
USE 数据库名
例
USE mydb1; //切换数据库到mydb1
USE mydb2; //切换数据库到mydb2
表操作
创建表
语法
CREATE TABLE 表名(
字段名名1 类型[(长度)] [DEFALUT 默认值] [约束],
字段名名2 类型,
...
)[CHARSET=字符集]
例
准备一个数据库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) 对于整数而言,长度表示保存的数字位数。
)
查看表结构
语法
DESC 表名
例
查看user表的结构
DESC user
查看表创建时的信息
语法
SHOW CREATE TABLE 表名
例
SHOW CREATE TABLE user
查看当前数据库中创建的所有表
语法
SHOW TABLES
修改表名
语法
RENAME TABLE 原表名 TO 新表名
例
将user表改名为userinfo
RENAME TABLE user TO userinfo
删除表
语法
DROP TABLE 表名
例
删除表userinfo
DROP TABLE userinfo
修改表结构
准备一张表
CREATE TABLE hero(
name VARCHAR(32),
age INT(3)
)
添加一个字段
在表末尾追加新字段
语法
ALTER TABLE 表名 ADD 字段名 类型[(长度) 默认值 约束]
例
向表hero的末尾添加一个新字段gender,它的类型是字符串,长度占10个字节
ALTER TABLE hero ADD gender VARCHAR(10)
在表最开始添加字段
语法
ALTER TABLE 表名 ADD 字段名 类型 FIRST
例
在hero表最开始添加id字段,类型为int
ALTER TABLE hero ADD id INT FIRST
在表中插入新的字段
语法
在表中现有的字段后面添加新字段
ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中现有字段名
例
在name字段后面添加密码pwd字段
ALTER TABLE hero ADD pwd VARCHAR(32) AFTER name
删除字段
语法
ALTER TABLE 表名 DROP 字段名
例
将hero中的pwd字段删除
ALTER TABLE hero DROP pwd
修改表字段
语法
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型[长度 默认值 约束]
例
修改hero表中的年龄字段长度为5
ALTER TABLE hero CHANGE age age INT(5)
修改hero表中的年龄字段为字符串,长度为20字节
ALTER TABLE hero CHANGE age age VARCHAR(20)
修改hero表中的gender字段,改名为nickname 类型为字符串,长度30字节
ALTER TABLE hero CHANGE gender nickname VARCHAR(30)
修改表结构的注意事项
- 修改表结构最好是在表中没有数据的情况下进行
- 当表中含有数据时
- 尽量不修改表中某字段的类型,否则可能因为现有数据不满足新修改的类型导致修改失败
- 尽量不缩短字段长度
- 若为字段新添加约束,该字段现有的数据不能违反该约束