MySQL数据库编辑实验:学生表的创建与操作

在本次实验中,我们将学习如何在MySQL数据库中创建一个名为students的表,并执行一些基本的数据操作,以下是详细的步骤和指南:
创建数据库和数据表
你需要使用MySQL的命令行工具或任何图形界面工具(如phpMyAdmin,MySQL Workbench等)连接到你的数据库服务器。
1、创建数据库:
```sql
CREATE DATABASE IF NOT EXISTS school;
USE school;

```
这将创建一个名为school的数据库,如果它尚不存在的话,使用该数据库进行后续操作。
2、创建学生表:
```sql
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,

gender ENUM('M', 'F') NOT NULL,
age INT,
class VARCHAR(50),
registration_date DATE
);
```
这个命令将创建一个名为students的表,包含以下列:id,name,gender,age,class和registration_date,其中id是主键,自动递增;name不能为空;gender是一个枚举类型,只能是'M'或'F'。
插入数据
我们可以向表中插入一些数据。
INSERT INTO students (name, gender, age, class, registration_date) VALUES ('张三', 'M', 18, '一年级一班', '20230901');
INSERT INTO students (name, gender, age, class, registration_date) VALUES ('李四', 'F', 19, '二年级二班', '20230902');
你可以继续添加更多的学生记录。
查询数据
让我们执行一些查询来查看表中的数据。
1、选择所有学生:
```sql
SELECT * FROM students;
```
这将显示表中的所有数据。
2、按班级查询学生:
```sql
SELECT * FROM students WHERE class = '一年级一班';
```
这将只显示一年级一班的学生。
3、按性别和年龄筛选学生:
```sql
SELECT * FROM students WHERE gender = 'F' AND age >= 18;
```
这将显示所有女性学生并且年龄大于或等于18岁的记录。
更新数据
有时我们可能需要更新表中的某些信息,假设一个学生的班级发生了变化,我们可以这样更新:
UPDATE students SET class='一年级三班' WHERE name='张三';
这会将名为“张三”的学生的班级更新为“一年级三班”。
删除数据
如果你需要从表中删除数据,可以使用DELETE语句,删除名为“李四”的学生:
DELETE FROM students WHERE name='李四';
FAQs
Q1: 如何确保在插入数据时避免重复?
A1: 可以在相应的字段上设置唯一约束(UNIQUE),如果学生名字应该是唯一的,可以这样修改表结构:
```sql
ALTER TABLE students ADD UNIQUE (name);
```
这样,如果有重复的名字尝试插入,系统会拒绝操作并报错。
Q2: 如果我想改变表的结构,比如添加一个新列,应该怎么做?
A2: 你可以使用ALTER TABLE语句来修改表结构,如果你想添加一个表示学生电话的列:
```sql
ALTER TABLE students ADD COLUMN phone VARCHAR(15);
```
这会在students表中添加一个名为phone的新列。