学习目的:了解MySQL数据库中数据库的创建和删除,掌握数据表结构的创建、修改和删除,掌握约束的添加、修改和删除
重点:
- 表结构的创建、修改和删除
- 约束的类型
- 约束添加、修改和删除
难点:
- 表结构的修改
- 约束的添加
-- 1.数据库管理
-- 1.1创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名
CREATE DATABASE IF NOT EXISTS MySQLDB;
-- 1.2 删除数据库
DROp DATABASE MySQLDB;
-- 2.数据表管理
-- 2.1创建表
-- 2.2数据类型
-- 2.3约束(四种):
-- 主键约束 (PRIMARY KEY)
-- 唯一约束 (UNIQUE)
-- 非空约束 (NOT NULL)
-- 外键约束 (FOREIGN KEY)
-- 非空约束
CREATE TABLE test01(
uname VARCHAr(10) NOT NULL,
gender CHAr(1),
);
INSERT INTO test01 VALUES('tom',NULL);
INSERT INTO test01 VALUES('NULL',NULL);
INSERT INTO test01 VALUES('',NULL);
INSERT INTO test01 VALUES('123',NULL);
INSERT INTO test01 (gender) VALUES(NULL);
SELECT * FROM test01;
-- 建表时提供默认值,可以在插入数据时忽略非空列
CREATE TABLE test02(
uname VARCHAr(10) NOT NULL DEFAULT 'haha',
gender CHAr(1)
);
INSERT INTO test02 (gender) VALUES(NULL);
SELECt * FROM test02;
-- 唯一约束
CREATE TABLE test03(
uname VARCHAr(10) UNIQUE
);
INSERT INTO test03 VALUES('aa');
INSERT INTO test03 VALUES('aa');
INSERT INTO test03 VALUES(NULL);
INSERT INTO test03 VALUES(NULL);
SELECt * FROM test03;
-- 设置主键
CREATE TABLE classes(
classes_id INT PRIMARY KEY,
classes_name VARCHAr(10),
classes_dept VARCHAr(10)
);
-- DROp TABLE classes;
INSERT INTO classes VALUES(1001,'java01','计算机');
INSERT INTO classes VALUES(1001,'java01','软件工程');
-- 设置外键
CREATE TABLE teacher(
teacher_id INT PRIMARY KEY AUTO_INCREMENT,
teacher_name VARCHAr(10),
cid INT,
-- 表级约束
FOREIGN KEY (cid) REFERENCES classes(classes_id)
);
-- 外键列的值必须在主表的主键值范围内
INSERT INTO teacher VALUES(NULL,'tom',1001);
INSERT INTO teacher VALUES(NULL,'tom',1002);
SELECT * FROM teacher;
CREATE TABLE Persons(
id INT NOT NULL,
p_name VARCHAr(20) NOT NULL,
deparment VARCHAr(20),
address VARCHAr(20),
telNum VARCHAr(20)
);
CREATE TABLE classes (
classes_id INT PRIMARY KEY,
classes_name VARCHAr(10),
classes_dept varchar(10)
);
CREATE TABLE teacher (
teacher_id INT PRIMARY KEY ,
teacher_name VARCHAr(10),
cid INT ,
FOREIGN KEY(cid) REFERENCES classes(classes_id)
);
-- 3.复制表
-- 3.1复制表使用like,约束也会复制过来,记录不复制
CREATE TABLE dept2 LIKE dept;
SELECt * FROM dept2;
-- 3.2复制表:使用子查询,主外键约束不会复制,(符合条件的)记录会复制
CREATE TABLE dept3 SELECt * FROM dept;
SELECt * FROM dept3;
-- 4.删除表
DROp TABLE dept6;
-- 5.表的重命名:两种方法
RENAME TABLE dept6 TO dept7;
ALTER TABLE dept6 RENAME dept7;
-- 6.本章小结
-- ● 掌握数据库的创建和删除管理
-- ● 了解mysq的约束和数据类型
-- ● 掌握表结构的创建、删除
--
-- 7.课后作业
-- 1. 创建与dept表相同表结构的表dtest,将dept表中部门编号在40之前的信息插入该表。 CREATE TABLE dtest SELECT * FROM dept WHERe deptno=40; -- 2. 创建与emp表结构相同的表empl,并将其部门编号为前30号的员工信息复制到empl表。 CREATE TABLE emp1 SELECt * FROM emp WHERe deptno<=30;暑期编程PK赛 得CSDN机械键盘等精美礼品!



