DDL(数据库定义语言)
一 操作数据库
1.1创建数据库
使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
//如果不存在创建,存在就不创建
create database if not exists 数据库名;
例如:
CREATE DATABASE myschool;
create database if not exists myschool;
1.2删除数据库
使用drop 命令删除数据库,语法如下:
drop database 数据库名;
//如果存在删除,不存在就不删除
drop database if exists 数据库名;
例如:
drop database myschool;
drop database if exists myschool;
1.3查看所有数据库名称
使用show关键字查看所有数据库名称,语法如下:
show databases;
1.4切换数据库
使用use关键字切换数据库,语法如下:
use 数据库名;
1.5修改数据库编码
使用charset关键字修改数据库编码,语法如下:
alter database 数据库名 charset 字符集;
注意:在MySQL中所有的UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8。
二、操作表
2.1创建表
使用 create 命令创建数据表,语法如下:
CREATE TABLE[if not exists] 表名 (
字段1 数据类型 [字段属性|约束] [索引] [注释],
字段2 数据类型 [字段属性|约束] [索引] [注释],
......
字段n 数据类型 [字段属性|约束] [索引] [注释],
);
例如:
CREATE TABLE `student`(
`studentNo` INT(4) NOT NULL COMMENT `学号` PRIMARY KEY, #非空,主键
`loginPwd` VARCHAR(20) NOT NULL COMMENT `密码`,
`studentName` VARCHAR(50) NOT NULL COMMENT `学生姓名`,
`sex` CHAR(2) DEFAULT `男` NOT NULL COMMENT `性别`, #非空,默认值男
`gradeId` INT(4) UNSIGNED COMMENT `年级编号`, #无符号数
`phone` VARCHAR(50) COMMENT `联系电话`,
`address` VARCHAR(255) DEFAULT `地址不详` COMMENT `地址`, #默认值“地址不详”
`bornDate` DATETIME COMMENT `出生日期`,
`email` VARCHAR(50) COMMENT `邮件账号`,
`indetityCard` VARCHAR(18) UNIQUE KEY COMMENT`身份证` #唯一
) COMMENT=Student; #表注释“学生表”
2.2查看当前数据库所有表名称
show tables;
2.3查看表结构
desc 表名;
2.4删除表
使用drop 命令删除表,语法如下:
drop table 表名;
//如果存在删除,不存在就不删除
drop table if exists table;
例如:
drop table result;
drop table if exists result;
2.5修改表
(1)删除表的字段
使用了 ALTER 命令及 DROP 子句来删除以上创建表的字段,语法如下:
ALTER TABLE 表名 DROP 字段名;
例如:
//删除result表中studentResult字段
ALTER TABLE result DROP studentResult;
注:如果数据表中只剩余一个字段则无法使用DROP来删除字段
(2)添加表的字段
使用 ADD 子句来向数据表中添加列,语法如下:
ALTER TABLE 表名 ADD 字段名 数据类型[属性];
例如:
//向result表中添加studentResult字段
ALTER TABLE result ADD studentResult INT not null;
(3)修改表名
在 ALTER TABLE 语句中使用 RENAME 子句来实现,语法如下:
ALTER TABLE 旧表名 RENAME TO 新表名;
例如:
ALTER TABLE demo01 RENAME TO demo02;
(4)修改表字段
在ALTER命令中使用 CHANGE 子句 ,语法如下
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型[属性];
例如:
ALTER TABLE result CHANGE resultname01 resultname02 INT not null;
(5)添加主外键
添加主键约束,语法如下:
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
例如:
//将grade表中的gradeId设置为主键
ALTER TABLE grade ADD CONSTRAINT pk_grade PRIMARY KEY grade(gradeId);
添加外键约束,语法如下:
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段);
例如:
//设置student表的gradeId字段与grade表的gradeId字段建立主外键关联
ALTER TABLE student ADD CONSTRAINT fk_student_grade FOREIGN KEY(gradeId) REFERENCES grade(gradeId);