数据库、表的管理
1 数据库管理
-
创建数据库
CERATE DATABASE 数据库名CREATE DATABASE mysqltest
如果使用关键字 IF NOT EXITST ,则当指定数据库存在时,不创建数据库,如果不适用关键字 IF NOT EXITST ,当创建得数据库存在时,会产生错误。
CREATE DATABASE IF NOT EXISTS mysqltest
-
删除数据库
DROP DATABASE 数据库名
DROP DATABASE IF NOT EXISTS mysqltest
## 2 数据表管理
* 创建表
CREATE TABLE 表名(
字段名1 数据类型 [约束条件],
字段名2 数据类型 [约束条件],
...
[其他约束条件]
)
```mysql
CREATE TABLE emp8(
ename VARCHAR(20),
empno INT PRIMARY KEY,
sal INT)
-
约束
- 非空约束 NOT NULL
- 唯一约束 UNIQUE 唯一约束可以为空值, 不同记录得 NULL值是不相等的
- 主键约束 PRIMARY KEY
- 外键约束 FOREING KEY
校有一个选课系统,其中包括如下关系模式:
-
系(系编号: 主键,系名称: 唯一键,系主任: 非空约束,系所在校去:默认为浑南区)
-
班级(班级编号: 主键,班级名称: 唯一键,所属系: 外键)
CREATE TABLE xi(
xno INT PRIMARY KEY,
xname VARCHAR(20) UNIQUE,
xperson VARCHAR(20) NOT NULL,
xloc VARCHAR(20) DEFAULT '浑南区'
)
CREATE TABLE classtest(
cno VARCHAR(11) PRIMARY KEY,
cname VARCHAR(20) UNIQUE,
cid INT,
FOREIGN KEY(cid) REFERENCES xi(xno))
-
复制表
方法一:在CREATE TABLE语句的末尾添加LIKE子句,可以将源表的表结构复制到新表中,语法格式如下:
复制表 like 会复制原表中的约束 如 主键、非空等 但是不会复制记录
CREATE TABLE 新表名 LIKE 原表
方法二、在CREATE TABLE 语句的末尾添加一个SELECT语句,可以实现表结构的复制,甚至可以将源表的表记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中
字查询复制 不会复制主键 外键 约束 但是会复制选中的记录
CREATE TABLE 新表名 SELECT ------ FROM 原表
通过子查询的方式创建一个表dept10,该表保存10号部门的员工数据
CREATE table emp9 (SELECT empno,ename,sal FROM emp)
-
删除表
DROP TABLE 表名
DROP TABLE emp9
-
重命名
RENAME TABLE 旧表名 TO 新表名
RENAME TABLE emp8 TO emp9
ALTER TABLE 旧表名 RENAMER 新表名
RENAME TABLE emp8 TO emp9