数据库(命令行操作DDL)
(1)创建数据库
-- 1、创建数据库 CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复) -- 2、创建数据库并指定字符集 CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -- 3、查看所有数据库名称 SHOW DATABASES; -- 4、切换到change818数据库 USE change818; -- 5、删除数据库 DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)
数据表设计
名称 | 数据库表 |
---|---|
学生表 | student |
老师表 | teacher |
课程表 | course |
成绩表 | score |
(1)学生表
- 详细设计
字段 | 类型 | 字段名 | 允许空值 | 备注 |
---|---|---|---|---|
id | int(11) | ID | 否 | 主键、自动增长 |
stu_no | varchar(10) | 学生编号 | 否 | |
stu_name | varchar(20) | 学生姓名 | 否 | |
age | tinyint | 年龄 | 是 | |
sex | char(2) | 性别 | 是 | |
create_date | datetime | 创建日期 | 是 |
创建学生表:
-- 1、创建数据库 CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复)
-- 2、创建数据库并指定字符集 CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 3、查看所有数据库名称 SHOW DATABASES;
-- 4、切换到change818数据库 USE change818;
-- 5、删除数据库 DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)
知识点解析:
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int tinyint char varchar datetime]
添加列(ALTER TABLE 表名 ADD(列字段 varchar(100));):
语法: ALTER TABLE 表名 ADD(列字段 varchar(100)); ALTER TABLE student ADD(update_date datetime);
修改列(ALTER TABLE 表名 MODIFY 列字段 CHAR(2);):
语法: ALTER TABLE 表名 MODIFY 列字段 CHAR(2); ALTER TABLE student MODIFY update_date date;
修改列名(ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2)):
语法: ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2); ALTER TABLE student change update_date update_date datetime;
删除列(ALTER TABLE 表名 DROP 列名;):
语法: ALTER TABLE 表名 DROP 列名; ALTER TABLE student DROP update_date;
修改表名称(ALTER TABLE 原表名 RENAME TO 新表名;):
语法: ALTER TABLE 原表名 RENAME TO 新表名; ALTER TABLE student RENAME TO student1; -- 备注:记得要修改回来,后面会用到student表
数据库表操作(DML)
插入数据(INSERT INTO):
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_01', '刘一', '22', '男', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_02', '马二', '23', '女', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_03', '张三', '25', '女', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_04', '李四', '21', '男', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_05', '王五', '22', '男', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_06', '赵六', '21', '女', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_07', '朱七', '22', '男', '2023-08-22 00:00:00'); INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_08', '谢八', '23', '男', '2023-08-22 00:00:00');
修改数据(UPDATE SET)
UPDATE student SET age=23 WHERE stu_no='stu_01'; -- 修改学号为stu_1的年龄 UPDATE student SET age=23,sex='男' WHERE stu_no='stu_02'; -- 修改学号为stu_2的年龄和性别 UPDATE student SET stu_name ='张三三',age=23 WHERE stu_no='stu_03'; -- 修改学号为stu_3的姓名
删除数据(DELETE FROM)
DELETE FROM student WHERE stu_no='stu_08'; -- 删除学号为stu_8的学生,WHERE下一课讲解,如果这里不用WHERE,会删除学生表所有数据
(2)老师表
- 详细设计
名 | 类型 | 字段名 | 允许空值 | 主键 |
---|---|---|---|---|
id | int(11) | ID | 否 | 主键、自动增长 |
tea_no | varchar(10) | 老师编号 | 否 | |
tea_name | varchar(20) | 老师姓名 | 否 | |
age | int(3) | 年龄 | 是 | |
sex | char(2) | 性别 | 是 | |
create_date | datetime | 创建时间 | 是 |
创建老师表:
CREATE TABLE teacher ( id int(11) NOT NULL AUTO_INCREMENT, -- 老师编号,自动增长 tea_no varchar(10) NOT NULL, -- 老师编号 tea_name varchar(20) NOT NULL, -- 老师姓名 age int(3) DEFAULT NULL, -- 年龄 sex char(2) DEFAULT NULL, -- 性别 create_date datetime DEFAULT NULL, -- 创建日期 PRIMARY KEY (id), -- 设置主键 UNIQUE KEY tea_no (tea_no) -- 唯一约束 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
知识点解析:
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型); 2、设置主键、设置非空约束 3、用到基本类型[int char varchar datetime]
数据初始化
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_01', '刘老师', 35, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_02', '关老师', 38, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_03', '张老师', 41, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_04', '赵老师', 42, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_05', '黄老师', 43, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_06', '曹老师', 40, '男', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_07', '王老师', 25, '女', '2100-08-07 21:18:14'); INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_08', '孙老师', 24, '女', '2100-08-07 21:18:14');
(3)课程表
- 详细设计
名 | 类型 | 字段名 | 允许空值 | 备注 |
---|---|---|---|---|
id | int(11) | ID | 否 | 主键、自动增长 |
course_no | varchar(10) | 课程编号 | 否 | |
course_name | varchar(20) | 课程名称 | 是 | |
tea_no | varchar(10) | 老师编号 | 是 | |
create_date | datetime | 创建时间 | 是 |
-
创建表
CREATE TABLE course ( id int(11) NOT NULL AUTO_INCREMENT, -- ID,自动增长 course_no varchar(10) NOT NULL, -- 课程编号 course_name varchar(20) DEFAULT NULL, -- 课程名称 tea_no varchar(10) DEFAULT NULL, -- 老师编号 create_date datetime DEFAULT NULL, -- 创建日期 PRIMARY KEY (id), -- 主键 UNIQUE KEY course_no (course_no)-- 唯一约束 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 知识点解析
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型); 2、设置主键、设置非空约束 3、用到基本类型[int varchar datetime]
- 数据初始化
INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_01', '语文', 'tea_01', '2100-08-07 21:32:06'); INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_02', '数学', 'tea_02', '2100-08-07 21:32:06'); INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_03', '英语', 'tea_03', '2100-08-07 21:32:06');
4)成绩表
- 详细设计
名 类型 字段名 允许空值 备注 id int(11) ID 否 主键,自动增长 course_no varchar(10) 课程编号 否 stu_no varchar(20) 学生编号 否 stu_score double(4,1) 学生成绩 否 默认0.0 create_date datetime 创建时间 是 -
创建表
CREATE TABLE score ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', stu_no varchar(10) NOT NULL COMMENT '学生学号', course_no varchar(10) NOT NULL COMMENT '课程编号', stu_score double(4,1) DEFAULT '0.0' COMMENT '学生成绩', create_date datetime DEFAULT NULL COMMENT '创建日期', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
知识点解析
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型); 2、设置主键、设置非空约束 3、用到基本类型[int varchar datetime]
数据初始化
INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_01', 100.0, '2100-08-07 21:45:23'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_02', 120.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_03', 115.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_01', 0.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_02', 145.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_03', 149.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_01', 85.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_02', 58.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_04', 'cou_01', 32.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_01', 100.0, '2100-08-07 21:45:23'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_02', 120.0, '2100-08-07 21:45:30'); INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_03', 115.0, '2100-08-07 21:45:30');
标签:no,--,改查,数据库,DML,stu,tea,date,create From: https://www.cnblogs.com/yund/p/17648803.html