您的位置:

MySQL 练习详解

一、基本操作

MySQL 是一种基于关系模型的数据库管理系统,可以通过各种操作来实现数据的增删改查。

1、增加数据:使用 INSERT INTO 语句向表中添加数据。例如添加一条学生信息:

INSERT INTO student (name,age,sex,score) VALUES ('Tom', 18, 'M', 90);

2、修改数据:使用 UPDATE 语句修改表中现有数据。例如将学生 Tom 的年龄改为 19 岁:

UPDATE student SET age=19 WHERE name='Tom';

3、删除数据:使用 DELETE FROM 语句删除表中的数据。例如删除名字为 Tom 的学生信息:

DELETE FROM student WHERE name='Tom';

4、查询数据:使用 SELECT 语句从表中获取数据。例如查询 score 大于等于 60 分的学生信息:

SELECT * FROM student WHERE score>=60;

二、约束

MySQL 中的约束可以保证数据的完整性和一致性。主要有以下几种类型:

1、主键(PRIMARY KEY):一个表只能有一个主键,用于唯一标识一条记录。

2、唯一键(UNIQUE):保证列中的所有值都是唯一的。

3、非空约束(NOT NULL):用于限制某一列不能有 NULL 值。

4、外键(FOREIGN KEY):用于建立表与表之间的关系,保证数据的一致性。

例如创建一张学生表,其中 id 为主键,name 不能重复的唯一键,age 和 score 不能为 NULL:

CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(20) UNIQUE,
  age INT NOT NULL,
  sex VARCHAR(2),
  score FLOAT NOT NULL
);

三、连接和子查询

MySQL 中的连接和子查询可以用于联结多张表或查询嵌套表。

1、连接:使用 JOIN 语句可以在多张表之间建立连接。例如查询学生表和课程表之间的连接信息:

SELECT student.name, course.course_name 
FROM student 
INNER JOIN score 
ON student.id=score.student_id 
INNER JOIN course 
ON course.id=score.course_id;

2、子查询:使用 SELECT 语句可以在查询中嵌套查询,称为子查询。例如查询分数最高的学生信息:

SELECT * FROM student WHERE score=(SELECT MAX(score) FROM student);

四、索引

MySQL 中的索引可以提高数据查询的速度,主要有以下几种类型:

1、普通索引:基本的索引类型,可以提高查询的速度。

2、唯一索引:保证列中的所有值都是唯一的,也可以提高查询速度。

3、主键索引:主键类型的索引,唯一标识一条记录。

4、全文索引:用于搜索长文本数据的索引。

例如在学生表中为分数这一列创建索引:

CREATE INDEX score_index ON student(score);

五、存储过程和触发器

MySQL 中的存储过程和触发器可以用于在数据库内部自动执行一些操作。

1、存储过程:一组预先编译好的 SQL 语句,可以通过调用来执行。例如创建一个求平均分数的存储过程:

CREATE PROCEDURE avg_score()
BEGIN
  SELECT AVG(score) FROM student;
END;

2、触发器:在执行 INSERT、UPDATE、DELETE 等操作时自动执行的代码块。例如创建一个在学生表插入数据时更新课程表的触发器:

CREATE TRIGGER update_course AFTER INSERT ON student
FOR EACH ROW
BEGIN
  INSERT INTO course (course_name, student_id) VALUES ('Math', NEW.id);
END;

六、备份和恢复

MySQL 中的备份和恢复可以用于数据的安全性和完整性。

1、备份:可以使用命令行或 GUI 工具进行备份。例如使用命令行对整个数据库进行备份:

mysqldump -uroot -p123456 --database mydb > mydb.sql

2、恢复:可以使用命令行或 GUI 工具进行恢复。例如使用命令行恢复整个数据库:

mysql -uroot -p123456 mydb < mydb.sql

七、总结

本文对 MySQL 的基本操作、约束、连接和子查询、索引、存储过程和触发器、备份和恢复进行了详细的介绍。MySQL 是一种功能强大的数据库管理系统,掌握它的操作是开发工程师必不可少的技能。