mysql常见语法操作笔记

发布于:2024-04-19 ⋅ 阅读:(167) ⋅ 点赞:(0)

1. 数据库的基本操作

1.1. MYSQL登录与退出

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin

输入 mysql -uroot -proot -h127.0.0.1

退出的三种方法

mysql > exit;

mysql > quit;

mysql > \q;

1.2. MYSQL数据库的一些解释

注意:数据库就相当于文件夹

表就相当于文件

1.3. mysql注释符有三种:

1、#...

2、"-- ..."

3、/.../

2. 数据库的一些基本操作

2.1. 创建数据库

create database db1;

2.2. 删除数据库

drop database db1;

2.3. 显示所有数据库

show databases;

2.4. 选择数据库

use db1

3. table 表的操作

3.1. 创建数据表

假设我们要创建一个名为 students 的数据表,包含学生的基本信息:

CREATE TABLE students (  
  id INT AUTO_INCREMENT PRIMARY KEY,  
  name VARCHAR(50) NOT NULL,  
  age INT,  
  gender ENUM('Male', 'Female'),  
  email VARCHAR(100) UNIQUE  
);

3.2. 插入数据

students 表中插入一条数据:

INSERT INTO students (name, age, gender, email) VALUES ('John Doe', 20, 'Male', 'john@example.com');

3.3. 查询数据

查询所有学生的信息:

SELECT * FROM students;

查询年龄大于 18 的学生信息:

SELECT * FROM students WHERE age > 18;

3.4. 更新数据

将 John Doe 的年龄更新为 21:

UPDATE students SET age = 21 WHERE name = 'John Doe';

3.5. 删除数据

删除名为 'John Doe' 的学生信息:

DELETE FROM students WHERE name = 'John Doe';

3.6. 修改数据表结构

students 表添加一个 birthdate 字段:

ALTER TABLE students ADD birthdate DATE;

修改 email 字段的长度为 150:

ALTER TABLE students MODIFY COLUMN email VARCHAR(150);

重命名 email 字段为 contact_email

ALTER TABLE students CHANGE email contact_email VARCHAR(150);

3.7. 数据表索引操作

students 表的 name 字段创建唯一索引:

CREATE UNIQUE INDEX idx_name ON students(name);

查看 students 表的所有索引:

SHOW INDEXES FROM students;

3.8. 数据表删除

删除 students_copy 表:

DROP TABLE students_copy;

4 mysql常用的查询方式

4.1. 基本查询

查询 students 表中的所有记录:

SELECT * FROM students;

4.2. 条件查询

查询年龄大于 20 的学生:

SELECT * FROM students WHERE age > 20;

查询名字为 'John Doe' 的学生:

SELECT * FROM students WHERE name = 'John Doe';

4.3. 排序查询

查询所有学生并按年龄降序排列:

SELECT * FROM students ORDER BY age DESC;

4.4. 分页查询

查询年龄大于 20 的学生,每页显示 5 条记录,显示第 2 页的内容:

SELECT * FROM students WHERE age > 20 LIMIT 5 OFFSET 5;

或者使用简化的写法:

SELECT * FROM students WHERE age > 20 LIMIT 10, 5;

4.5. 聚合查询

查询学生的总数:

SELECT COUNT(*) FROM students;

查询学生的平均年龄:

SELECT AVG(age) FROM students;

查询年龄最大的学生:

SELECT * FROM students ORDER BY age DESC LIMIT 1;

4.6. 分组查询

按性别分组并计算每组的学生数:

SELECT gender, COUNT(*) as student_count FROM students GROUP BY gender;

4.7. 连接查询

假设有一个 courses 表记录学生选课信息,通过 student_idstudents 表关联。查询每个学生的选课情况:

SELECT students.name, courses.course_name  
FROM students  
JOIN courses ON students.id = courses.student_id;

4.8. 子查询

查询年龄大于平均年龄的学生:

SELECT * FROM students WHERE age > (SELECT AVG(age) FROM students);

4.9. LIKE 查询

查询名字以 'John' 开头的学生:

SELECT * FROM students WHERE name LIKE 'John%';

查询名字中包含 'Doe' 的学生:

SELECT * FROM students WHERE name LIKE '%Doe%';

4.10. IN 查询

查询 id 为 1, 3, 5 的学生:

SELECT * FROM students WHERE id IN (1, 3, 5);

4.11. 使用 DISTINCT 去重

查询所有不重复的性别:

SELECT DISTINCT gender FROM students;

4.12. 使用 CASE 进行条件选择

根据学生的年龄进行分类:

SELECT name,  
       CASE  
           WHEN age <= 18 THEN 'Teenager'  
           WHEN age BETWEEN 19 AND 30 THEN 'Young Adult'  
           ELSE 'Adult'  
       END as age_group  
FROM students;


网站公告

今日签到

点亮在社区的每一天
去签到