1. 创建以自己作品命名的数据库
CREATE DATABASE 'YourDatabaseName';
  1. 创建数据表(学生,课程,成绩)。
CREATE TABLE Student (
   id INT PRIMARY KEY,
   'name' VARCHAR(50),
   age INT
);

CREATE TABLE Course (
   id INT PRIMARY KEY,
   'name' VARCHAR(50),
   credits INT
);

CREATE TABLE Score (
   id INT PRIMARY KEY,
   student_id INT,
   course_id INT,
   score INT,
   FOREIGN KEY (student_id) REFERENCES Student(id),
   FOREIGN KEY (course_id) REFERENCES Course(id)
);
  1. 写出一个增加外码约束的语句,一个创建索引的语句。

增加外码约束的语句:

ALTER TABLE Score
ADD CONSTRAINT fk_student
FOREIGN KEY (student_id) REFERENCES Student(id);

创建索引的语句:

CREATE INDEX idx_course_name ON Course('name');
  1. 分别为每个表添加3条记录,注意表和表之间的外码约束关系。
INSERT INTO Student (id, 'name', age) VALUES (1, 'John', 20);
INSERT INTO Student (id, 'name', age) VALUES (2, 'Jane', 22);
INSERT INTO Student (id, 'name', age) VALUES (3, 'Mike', 21);

INSERT INTO Course (id, 'name', credits) VALUES (1, 'Math', 3);
INSERT INTO Course (id, 'name', credits) VALUES (2, 'English', 2);
INSERT INTO Course (id, 'name', credits) VALUES (3, 'Science', 4);

INSERT INTO Score (id, student_id, course_id, score) VALUES (1, 1, 1, 80);
INSERT INTO Score (id, student_id, course_id, score) VALUES (2, 2, 2, 90);
INSERT INTO Score (id, student_id, course_id, score) VALUES (3, 3, 3, 85);
  1. 创建一个视图。
CREATE VIEW StudentCourse AS
SELECT Student.'name', Course.'name' AS course_name, Score.score
FROM Student
JOIN Score ON Student.id = Score.student_id
JOIN Course ON Course.id = Score.course_id;
  1. 写出两个多表查询语句。
-- 查询每个学生的平均成绩
SELECT Student.'name', AVG(Score.score) AS average_score
FROM Student
JOIN Score ON Student.id = Score.student_id
GROUP BY Student.'name';

-- 查询选修了特定课程的学生
SELECT Student.'name'
FROM Student
JOIN Score ON Student.id = Score.student_id
JOIN Course ON Course.id = Score.course_id
WHERE Course.'name' = 'Math';
  1. 写成一个嵌套除语句,一个多表更新语句。

嵌套除语句:

SELECT 'name'
FROM Student
WHERE id NOT IN (
   SELECT student_id
   FROM Score
);

多表更新语句:

UPDATE Score
JOIN Student ON Score.student_id = Student.id
SET Score.score = 95
WHERE Student.'name' = 'John';
  1. 创建一个存储过程。
CREATE PROCEDURE GetStudentData()
BEGIN
   SELECT * FROM Student;
END;
  1. 创建一个触发器。
CREATE TRIGGER UpdateCourseCredits
AFTER UPDATE ON Score
FOR EACH ROW
BEGIN
   UPDATE Course
   SET credits = credits + 1
   WHERE id = NEW.course_id;
END;
  1. 创建一个用户,并进行授权。
CREATE USER 'YourUsername' IDENTIFIED BY 'YourPassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON 'YourDatabaseName'.* TO 'YourUsername';
  1. root身份修改上面用户的密码为“112233”。
ALTER USER 'YourUsername' IDENTIFIED BY '112233';
  1. 将当前数据库备份到c盘gwqw文件夹下。
-- 使用mysqldump命令备份数据库
mysqldump -u root -p 'YourDatabaseName' > C:\gwqw\database_backup.sql
  1. 删除当前数据库,还原数据,并验证数据是否还原成功。
-- 删除数据库
DROP DATABASE 'YourDatabaseName';

-- 还原数据库
CREATE DATABASE 'YourDatabaseName';
USE 'YourDatabaseName';
source C:/gwqw/database_backup.sql;

-- 验证数据是否还原成功
SELECT * FROM Student;
SELECT * FROM Course;
SELECT * FROM Score;
数据库操作实战:从创建到备份还原

原文地址: https://www.cveoy.top/t/topic/vJu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录