创建数据库和创建表都可以在查询中进行
1.创建数据库 create datebase
如果使用IF NOT EXISTS关键字,则当指定的数据库名存在时,不创建数据库。如果不使用IF NOT EXISTS关键字,当创建的数据库名存在时,将产生错误。
CREATE DATABASE IF NOT EXISTS MySQLDB;
创建数据库 MySQLDB
2.删除数据库 DROP DATABASE
DROP DATABASE MySQLDB;
删除数据库 MySQLDB
3.创建表 CREATE TABLE
3.1 数据类型 :
1. 数值类型 : 整数INT(M) 浮点数(小数)DOUBLE(M,N) ...
2.日期事件类型 : 日期 DATE ...
3.字符类型 : 固定长度字符串CHAR(M)实际长度为M
可变长度的字符串 VARCHAR(M) 实际长度为输入字符串长度....
CREATE TABLE class(
class_id INT(3),
class_no VARCHAR(15),
class_name VARCHAR(16)
);
4.约束
1. 约束类型
NOT NULL 非空约束,指定某列的所有行数据不能包含空值
UNIQUE 唯一性约束,指定列或者列的组合 的所有行数据必须唯一
PRIMARY KEY 主键约束,指定列或者列的组合 的所有行数据必须唯一
FOREIGN KEY 外键约束 一个表的外键必须是另外一个表的主键
DEFAULT 默认值
可以有多个外键 但只能有一个主键
CREATE TABLE class(
class_id INT(3) PRIMARY KEY, 主键
class_no VARCHAR(15) UNIQUE, 唯一约束
class_name VARCHAR(16)
);
CREATE TABLE student(
student_id INT(4) PRIMARY KEY, 主键
student_no VARCHAR(7) UNIQUE, 唯一约束
student_name VARCHAR(10) NOT NULL, 非空约束
class_id INT(3),
FOREIGN KEY(class_id) REFERENCES class(class_id) 外键
);
5.复制表
如果用like复制表格的话会把源表的主键外键约束复制过来
但是用select复制表格的话不会把源表的主键外键约束复制过来
1.第一种方式 使用like关键字
可以将源表的表头复制到新表中,无法复制源表里的数据内容
CREATE TABLE 新表名 LIKE 源表
2.第二种方式 使用SELECT .... FROM 函数
可以实现表头的复制,也可以将源表的表记录拷贝到新表中
创建与dept表相同表结构的表dtest,将dept表中部门编号在40之前的信息插入该表。
CREATE TABLE dtest SELECT * from dept where deptno < 40;
6.重命名表
第一种方法 RENAME
RENAME TABLE 旧表名 TO 新表名
第二种方法 ALTER 旧表名 RENAME 新表名
ALTER TABLE 旧表名 RENAME 新表名
7.默认值 DEFAULT
CREATE TABLE major(
majorno INT(5) PRIMARY KEY,
majorname VARCHAR(10) UNIQUE,
majorteacher VARCHAR(10) NOT NULL,
majorloc VARCHAR(5) DEFAULT '浑南区' 表格中的loc自动默认为浑南区
)
DQL 查询 SELECT
DML 操作
DCL 控制 授予权限
DDL 定义 CREATE TABLE
TPL 事务 回流