目录
一、数据库增删改查
1、在 MySQL 中创建一个名为 test_db 的数据库。
2、使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中文,不区分大小写)
3、查看所有数据库
4、创建并查看数据库
5、使用 LIKE 从句,查看与 test_db 完全匹配的数据库:使用 LIKE 从句,查看名字中包含 test 的数据库:使用 LIKE 从句,查看名字以 db 开头的数据库:使用 LIKE 从句,查看名字以 db 结尾的数据库:
6、使用命令行工具将数据库 test_db 的指定字符集修改为 gb2312,默认校对规则修改为 utf8_unicode_ci
7、使用命令行工具将数据库 test_db_del 从数据库列表中删除
8、使用命令行工具将数据库 test_db 设置为默认数据库
===============================
二、数据表 创建、修改、删除
1、创建员工表 tb_emp1,结构如下表所示。
字段名称 数据类型 备注
id INT(ll) 员工编号
name VARCHAR(25) 员工名称
deptld INT(ll) 所在部门编号
salary FLOAT 工资
2、查看数据表是否创建成功
3、查看表 tb_emp1 的结构
4、显示创建表时的CREATE TABLE语句
5、修改表 tb_emp1 的结构,在表的第一列添加一个 int 类型的字段 col1
6、修改表 tb_emp1 的结构,在一列 name 后添加一个 int 类型的字段 col2
7、修改表 tb_emp1 的结构,将 name 字段的数据类型由 VARCHAR(22) 修改成 VARCHAR(30)
8、修改表 tb_emp1 的结构,删除 col2 字段
9、修改表 tb_emp1 的结构,将 col1 字段名称改为 col3,同时将数据类型变为 CHAR(30)
10、将数据表 tb_emp1 改名为 tb_emp2
11、删除数据表 tb_emp3
===============================
三、表的约束
1、在 test_db 数据库中创建 tb_emp 3 数据表,其主键为 id
字段名称 数据类型 备注
id INT(ll) 员工编号
name VARCHAR(25) 员工名称
deptld INT(ll) 所在部门编号
salary FLOAT 工资
2、在 test_db 数据库中创建 tb_emp 4 数据表,其主键为 id,在定义完所有列之后,指定主键
字段名称 数据类型 备注
id INT(ll) 员工编号
name VARCHAR(25) 员工名称
deptld INT(ll) 所在部门编号
salary FLOAT 工资
3、创建数据表 tb_emp5,假设表中没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键
字段名称 数据类型 备注
id INT(ll) 员工编号
name VARCHAR(25) 员工名称
deptld INT(ll) 所在部门编号
salary FLOAT 工资
4、修改数据表 tb_emp2,将字段 id 设置为主键
5、创建 tb_dept1
字段名称 数据类型 备注
id INT(ll) 部门编号
name VARCHAR(22) 部门名称
location VARCHAR(22) 部门位置
创建数据表 tb_emp6,并在表 tb_emp6 上创建外键约束,让它的键 deptId 作为外键关联到表 tb_dept1 的主键 id,
id INT(11) PRIMARY KEY,
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
6、修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联
7、删除数据表 tb_emp2 中的外键约束 fk_tb_dept1
8、创建数据表 tb_dept2,指定部门的名称唯一
字段名称 数据类型 备注
id INT(ll) 部门编号
name VARCHAR(25) 部门名称
location varchar(50)
9、修改数据表 tb_dept1,指定部门的名称唯一
10、删除数据表 tb_dept1 中的唯一约束 unique_name
11、在 test_db 数据库中创建 tb_emp7 数据表,要求 salary 字段值大于 0 且小于 10000
字段名称 数据类型 备注
id INT(ll) 员工编号 主键
name VARCHAR(25) 员工名称
deptld INT(ll) 所在部门编号 关联tb_dept1表id的外键
salary FLOAT 工资
12、修改 tb_dept1 数据表,要求 id 字段值大于 0
13、删除tb_dept1 数据表的check约束check_id
14、创建数据表 tb_dept3,指定部门位置默认为 Beijing
id int(11) primary key,
name varchar(22),
location varchar(50)
15、修改数据表 tb_dept3,将部门位置的默认值修改为 Shanghai,
16、修改数据表 tb_dept3,将部门位置的默认值约束删除
17、创建数据表 tb_dept4,指定部门名称不能为空
id int(11) primary key,
name varchar(22),
location varchar(50)
18、修改数据表 tb_dept4,指定部门位置不能为空
19、修改数据表 tb_dept4,将部门位置的非空约束删除
20、查看表中的约束
===============================================
四、数据表的查询
1、从 tb_students_info 表中检索所有字段的数据
2、查询 tb_students_info 表中的所有数据
3、查询 tb_students_info 表中 name 列所有学生的姓名
4、查询 tb_students_info 表中 age 字段的值,返回 age 字段的值且不得重复
5、为 tb_students_info 表取别名 stu,查询 tb_students_info 表中的所有数据
6、查询 tb_students_info 表,为 name 取别名 student_name,为 age 取别名student_age
7、显示 tb_students_info 表查询结果的前 4 行 !!!!!!
8、在 tb_students_info 表中,返回从第 4 条记录开始的行数为 5 的记录
9、查询 tb_students_info 表的 height 字段值,并对其进行排序
10、查询 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序
11、查询 tb_students_info 表,先按 height 降序排序,再按 name 升序排序
12、在表 tb_students_info 中查询身高为 170cm 的学生的姓名
13、查询年龄小于 22 的学生的姓名
14、在 tb_students_info 表中查询 age 大于 21,并且 height 大于等于 175 的学生的信息
15、在 tb_students_info 表中,查找所有以“T”字母开头的学生姓名
16、在 tb_students_info 表中,查找所有包含“e”字母的学生姓名
17、在 tb_students_info 表中,查找所有以字母“y”结尾,且“y”前面只有 4 个字母的学生的姓名
18、在表 tb_students_info 中查询注册日期在 2016-01-01 之前的学生的信息
19、在表 tb_students_info 中查询注册日期在 2015-10-01 和 2016-05-01 之间的学生的信息
20、使用集函数count sum avg max min
21、表 tb_students_info 和表 tb_departments 都包含相同数据类型的字段 dept_id,在两个表之间使用内连接查询id,name,age,dept_name。
22、 tb_students_info 表和 tb_departments 表之间,使用 INNER JOIN 语法进行内连接查询id,name,age,dept_name,
23、在 tb_students_info 表和 tb_departments 表中查询所有学生,包括没有学院的学生
24、在 tb_students_info 表和 tb_departments 表中查询所有学院,包括没有学生的学院
25、在 tb_departments 表中查询 dept_type 为 A 的学院 ID,并根据学院 ID 查询该学院学生的名字,
26、与前一个例子类似,但是在 SELECT 语句中使用 NOT IN 关键字
27、在 tb_departments 表中查询 dept_name 等于“Computer”的学院 id,然后在 tb_students_info 表中查询所有该学院的学生的姓名
28、在 tb_departments 表中查询 dept_name 不等于“Computer”的学院 id,然后在 tb_students_info 表中查询所有该学院的学生的姓名
29、查询 tb_departments 表中是否存在 dept_id=1 的供应商,如果存在,就查询 tb_students_info 表中的记录
30、查询 tb_departments 表中是否存在 dept_id=7 的供应商,如果存在,就查询 tb_students_info 表中的记录,
31、根据 dept_id 对 tb_students_info 表中的数据进行分组,将每个学院的学生姓名显示出来
32、根据 dept_id 对 tb_students_info 表中的数据进行分组,并显示学生人数大于1的分组信息,
=============================================
五、数据表的增删改
1、在 tb_courses 表中插入一条新记录,course_id 值为 1,course_name 值为“Network”,course_grade 值为 3,info 值为“Computer Network”写清楚列名
2、在 tb_courses 表中插入一条新记录,course_id 值为 2,course_name 值为“Database”,course_grade 值为 3,info值为“MySQL”。列乱序
3、在 tb_courses 表中插入一条新记录,course_id 值为 3,course_name 值为“ Java”,course_grade 值为 4,info 值为“Jave EE”。不写列名
4、在 tb_courses 表中插入一条新记录,course_name 值为“System”,course_grade 值为 3,course_info 值为“Operating System”
5、从 tb_courses 表中查询所有的记录,并将其插入 tb_courses_new 表中
6、在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4
7、在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,
8、删除 tb_courses_new 表中的全部数据
9、在 tb_courses_new 表中,删除 course_id 为 4 的记录