柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

MySQL 数据库安装和实训手册_mysql数据库安装教学视频教程

MySQL数据库安装

查询防火墙状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld

基于YUM方式部署MYSQL8.0,操作的方法和指令如下:

yum install mysql-server mysql -y

开机启动MYSQL服务&启动MYSQL服务;

systemctl enable mysqld.service
systemctl restart mysqld.service

进入mysql数据库并设置用户和密码;

mysql #进入mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaaAAA111.'; #设置用户密码

创建用户&授权jfedu用户访问;

create user jfedu@'%' identified by 'aaaAAA111.';#创建用户jfedu和密码
grant all on *.* to jfedu@'%';#授权jfedu用户访问

授权 root 用户远程登录

CREATE USER 'root'@'192.168.154.1' IDENTIFIED BY 'aaaAAA111.';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.154.1' WITH GRANT OPTION;

打开SQLyog软件新建连接

连接成功

MySQL 数据库实训手册

第一部分:MySQL 基础操作

1.1 数据库基本操作

-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE mydatabase;
-- 使用数据库
USE mydatabase;
-- 删除数据库
DROP DATABASE mydatabase;

1.2 数据表操作

-- 创建表
CREATE TABLE students (
      id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(50) NOT NULL,
      age INT,
      email VARCHAR(100),
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看表结构
DESC students;
-- 修改表结构
ALTER TABLE students ADD COLUMN phone VARCHAR(15);
ALTER TABLE students MODIFY COLUMN age TINYINT;
-- 删除表
DROP TABLE students;

第二部分:数据操作语言 (DML)

2.1 插入数据

-- 插入单条数据
INSERT INTO students (name, age, email)
VALUES ('张三', 20, 'zhangsan@email.com');
-- 插入多条数据
INSERT INTO students (name, age, email) VALUES
('李四', 22, 'lisi@email.com'),
('王五', 21, 'wangwu@email.com'),
('赵六', 23, 'zhaoliu@email.com');

2.2 查询数据

-- 基本查询
SELECT * FROM students;
-- 条件查询
SELECT name, age FROM students WHERE age > 21;
-- 排序查询
SELECT * FROM students ORDER BY age DESC;
-- 限制查询结果
SELECT * FROM students LIMIT 2;

2.3 更新数据

-- 更新单条记录
UPDATE students SET age = 24 WHERE name = '李四';
-- 更新多条记录
UPDATE students SET age = age + 1 WHERE age < 22;

2.4 删除数据

-- 删除特定记录
DELETE FROM students WHERE id = 3;
-- 清空表(慎用!)
DELETE FROM students;

第三部分:高级查询技巧

3.1 聚合函数

-- 统计函数
SELECT COUNT(*) as total_students FROM students; -- 统计学生总人数
SELECT AVG(age) as average_age FROM students; -- 计算学生的平均年龄
SELECT MAX(age) as max_age, MIN(age) as min_age FROM students; -- 找出学生中的最大和最小年龄
SELECT SUM(age) as total_age FROM students; -- 计算所有学生年龄的总和

3.2 分组查询

-- 按年龄分组统计
SELECT age, COUNT(*) as count FROM students GROUP BY age HAVING count > 1;

3.3 多表连接查询

-- 创建第二个表
CREATE TABLE courses (
      course_id INT PRIMARY KEY AUTO_INCREMENT,
      course_name VARCHAR(100),
      student_id INT,
      FOREIGN KEY (student_id) REFERENCES students(id) -- 这里就是定义外键
);
-- 内连接查询
SELECT s.name, c.course_name
FROM students s
INNER JOIN courses c ON s.id = c.student_id;
-- 左连接查询
SELECT s.name, c.course_name
FROM students s
LEFT JOIN courses c ON s.id = c.student_id;

第四部分:SQLyog 实用功能

4.1 使用查询编辑器

· 在 SQLyog 的查询标签页中编写 SQL 语句

· 使用 Ctrl+Enter 执行当前查询

· 使用 F9 执行选中的 SQL 语句

· 利用 Smart AutoComplete 功能快速编写代码

4.2 对象资源管理器操作

· 右键点击数据库/表进行管理操作

· 使用表数据查看和编辑功能

· 利用导入/导出工具进行数据迁移

4.3 查询优化技巧

-- 使用 EXPLAIN 分析查询性能
EXPLAIN SELECT * FROM students WHERE age > 20;
-- 创建索引提高查询效率
CREATE INDEX idx_age ON students(age);
CREATE INDEX idx_name_age ON students(name, age);
-- 查看students表上的所有索引
SHOW INDEX FROM students;

第五部分:实战练习

练习 1:学生管理系统

-- 创建完整的学校管理系统
CREATE DATABASE school_management;
USE school_management;
-- 创建学生表
CREATE TABLE students (
      student_id INT PRIMARY KEY AUTO_INCREMENT,
      student_name VARCHAR(50) NOT NULL,
      gender ENUM('男','女'),
      birth_date DATE,
      class_id INT
);
-- 创建班级表
CREATE TABLE classes (
      class_id INT PRIMARY KEY AUTO_INCREMENT,
      class_name VARCHAR(50),
      teacher VARCHAR(50)
);

练习 2:电商数据库设计

-- 设计简单的电商数据库
CREATE DATABASE ecommerce;
USE ecommerce;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言