一周MySQL入门:部门、班级与学生数据表设计与查询
需积分: 0 185 浏览量
更新于2024-08-05
收藏 5KB MD 举报
在这个MySQL教程中,【韩顺平讲MySQL】针对零基础学员设计了针对数据库系统的基础操作练习,具体围绕如何在一周内掌握MySQL。本次作业涉及到的内容是创建和管理关于学校系、班级和学生的数据表,以及执行基本的SQL语句操作。
首先,我们需要理解几个关键概念:
1. 主外键:用来维护两个表之间的关联,确保数据的一致性。在这些表中,`class`表的`classid`和`student`表的`studentid`将作为主键,而`deptname`在`department`表中可能是外键,用于关联不同表之间的数据。
2. 唯一约束(UNIQUE NOT NULL):在`department`表的`deptname`字段上应用,确保系名的唯一性且不允许为空。
3. 非空约束(NOT NULL):在`student`表的`name`字段上,保证学生姓名不能为NULL。
接下来是具体的SQL语句操作:
创建表
- `department`表用于存储系的信息,包括系号(`departmentid`)、系名(`deptname`),使用`UNIQUE NOT NULL`约束确保系名的独特性。
```sql
CREATE TABLE department(
departmentid VARCHAR(32) PRIMARY KEY,
deptname VARCHAR(32) UNIQUE NOT NULL
);
```
- `class`表用于存储班级信息,包含班号(`classid`)、专业名(`subject`)、系名(`deptname`)、入学年份(`enrolltime`)和人数(`num`)。其中,`subject`和`deptname`字段要求非空。
```sql
CREATE TABLE class(
classid INT PRIMARY KEY,
subject VARCHAR(32) NOT NULL DEFAULT '',
deptname VARCHAR(32) NOT NULL,
enrolltime YEAR,
num INT
);
```
- `student`表存储学生信息,包括学号(`studentid`)、姓名(`name`)、年龄(`age`)和班号(`classid`),姓名同样需要非空约束。
```sql
CREATE TABLE student(
studentid INT PRIMARY KEY,
name VARCHAR(32) NOT NULL,
age INT,
classid INT,
FOREIGN KEY (classid) REFERENCES class(classid)
);
```
插入数据
提供了系、班级和学生的基本数据,使用`INSERT INTO`语句插入到相应的表中。
查询功能
- 找出所有姓李的学生:使用`LIKE`关键字配合`%`通配符匹配以“李”开头的名字。
```sql
SELECT * FROM student WHERE name LIKE '李%';
```
- 列出所有开设超过1个专业的系的名字:通过联接多个表并计算专业数量来实现。
```sql
SELECT d.deptname
FROM department d
JOIN (
SELECT deptname, COUNT(*) as pro_count
FROM class
GROUP BY deptname
HAVING COUNT(*) > 1
) c ON d.deptname = c.deptname;
```
- 列出人数大于等于30的系的编号和名字:直接在`class`表中筛选。
```sql
SELECT departmentid, deptname
FROM class
WHERE num >= 30;
```
- 更新学生信息:当物理系增加时,可以使用`ALTER TABLE`语句添加新记录,同时处理张三退学的情况,可能涉及删除或更新学生表中的记录。
```sql
ALTER TABLE department ADD (departmentid VARCHAR(32) VALUES ('0065'));
-- 张三退学
DELETE FROM student WHERE studentid = 8101;
```
通过这个实践,学员不仅能够学习如何创建和管理数据库,还能掌握SQL语句的基本操作,包括数据插入、查询和表结构的调整。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-11-09 上传
2019-07-23 上传
2024-12-07 上传
2012-10-26 上传
点击了解资源详情
一只可爱狗勾
- 粉丝: 365
- 资源: 2