MySQL常用SQL语句大盘点
mysql的sql语句有哪些

首页 2025-06-29 08:09:58



MySQL的SQL语句详解:全面掌握数据库操作 在数据库管理领域,MySQL作为一款开源的关系型数据库管理系统,凭借其高性能、可靠性和易用性,赢得了广泛的认可和应用

    而SQL(Structured Query Language,结构化查询语言)则是与MySQL交互的“语言”,通过一系列预定义的命令,实现对数据库中数据的定义、操作、查询和管理

    本文将深入探讨MySQL中的SQL语句,帮助读者全面掌握数据库操作技巧

     一、数据库操作语句 数据库操作是MySQL中最基础的部分,涉及数据库的创建、查看、使用和删除

     1.创建数据库 使用`CREATE DATABASE`语句可以创建一个新的数据库

    例如,创建一个名为`testdb`的数据库: sql CREATE DATABASE testdb; 为了防止中文乱码,创建数据库时还可以指定编码格式,如使用`utf8mb4`编码: sql CREATE DATABASE testdb CHARACTER SET utf8mb4; 2.查看数据库 通过`SHOW DATABASES`语句,可以查看MySQL服务器上的所有数据库: sql SHOW DATABASES; 3.使用数据库 在创建或选择一个数据库后,需要使用`USE`语句来指定当前操作的数据库

    例如,使用`testdb`数据库: sql USE testdb; 4.删除数据库 当不再需要某个数据库时,可以使用`DROP DATABASE`语句将其删除

    例如,删除`testdb`数据库: sql DROP DATABASE testdb; 二、数据表操作语句 数据表是数据库中存储数据的实际容器

    在MySQL中,数据表的操作包括创建、查看、修改、删除和重命名等

     1.创建数据表 使用`CREATE TABLE`语句可以创建一个新的数据表

    创建表时,需要定义表的字段及其数据类型

    例如,创建一个名为`students`的学生信息表: sql CREATE TABLE students( student_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, student_name VARCHAR(100) NOT NULL, gender ENUM(M, F) NOT NULL, birthdate DATE, age INT, city VARCHAR(50) ); 在这个例子中,`student_id`是主键,且设置为自增字段,确保每条记录都有一个唯一的标识符

     2.查看数据表 进入某个数据库后,可以使用`SHOW TABLES`语句查看该数据库中的所有数据表: sql SHOW TABLES; 使用`DESCRIBE`或`SHOW COLUMNS`语句可以查看某个表的结构,包括字段名、数据类型、是否允许为空等信息: sql DESCRIBE students; 或者: sql SHOW COLUMNS IN students; 3.修改数据表 数据表创建后,可能需要根据实际需求进行修改

    使用`ALTER TABLE`语句可以添加、删除、修改字段,或者重命名表

     -添加字段:在students表中添加一个`major`(专业)字段: sql ALTER TABLE students ADD COLUMN major VARCHAR(50) AFTER age; -删除字段:删除students表中的`major`字段: sql ALTER TABLE students DROP COLUMN major; -修改字段:将students表中的age字段类型修改为`TINYINT`: sql ALTER TABLE students MODIFY COLUMN age TINYINT; -重命名表:将students表重命名为`pupils`: sql ALTER TABLE students RENAME TO pupils; 或者: sql RENAME TABLE students TO pupils; 4.删除数据表 使用`DROP TABLE`语句可以删除一个或多个数据表

    例如,删除`pupils`表: sql DROP TABLE pupils; 如果希望在删除表之前检查其是否存在,可以使用`IF EXISTS`子句: sql DROP TABLE IF EXISTS pupils; 三、数据操作语句(CRUD) CRUD代表创建(Create)、读取(Read)、更新(Update)和删除(Delete),是数据库操作中最核心的部分

     1.插入数据 使用`INSERT INTO`语句可以向数据表中插入数据

    插入数据时,需要指定字段名和对应的值

    例如,向`students`表中插入一条记录: sql INSERT INTO students(student_name, gender, birthdate, age, city) VALUES(Alice, F, 2000-01-01,20, New York); 如果需要一次性插入多条记录,可以在`VALUES`子句中列出多组值,每组值之间用逗号分隔: sql INSERT INTO students(student_name, gender, birthdate, age, city) VALUES (Bob, M, 1999-02-02,21, Los Angeles), (Charlie, M, 2001-03-03,19, Chicago); 2.查询数据 使用`SELECT`语句可以从数据表中查询数据

    查询数据时,可以使用``表示所有字段,或者使用字段名列表指定需要查询的字段

    例如,查询`students`表中的所有记录: sql SELECTFROM students; 查询特定字段: sql SELECT student_name, city FROM students; 条件查询:使用`WHERE`子句可以指定查询条件

    例如,查询年龄大于20岁的学生: sql SELECT - FROM students WHERE age > 20; 排序查询:使用`ORDER BY`子句可以对查询结果进行排序

    例如,按`birthdate`字段降序排序: sql SELECT - FROM students ORDER BY birthdate DESC; 分页查询:使用`LIMIT`和`OFFSET`子句可以实现分页功能

    例如,查询第一页的数据(每页10条): sql SELECT - FROM students LIMIT 10 OFFSET0; 3.更新数据 使用`UPDATE`语句可以修改数据表中的记录

    修改数据时,需要指定表名、要修改的字段和对应的值,以及用于定位要修改记录的条件

    例如,将`students`表中`student_id`为1的学生的年龄修改为22岁: sql UPDATE students SET age =22 WHERE student_id =1; 4.删除数据 使用`DELETE FROM`语句可以删除数据表中的记录

    删除数据时,需要指定表名和用于定位要删除记录的条件

    例如,删除`students`表中`student_id`为1的记录: sql DELETE FROM students WHERE student_id =1; 如果需要删除表中的所有记录,但不删除表本身,可以使用`TRUNCATE TABLE`语句

    该语句比`DELETE`语句更高效,因为它不会逐行删除记录,而是直接删除表中的所有数据并重置表的自增计数器: sql TRUNCATE TABLE students; 四、高级查询语句 除了基本的CRUD操作外,MySQL还支持一系列高级查询功能,包括聚合查询、分组查询、连接查询和子查询等

     1.聚合查询 聚合查询使用聚合函数对查询结果进行汇总

    MySQL支持的聚合函数包括`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`等

    例如,查询`students`表中的学生总数: sql SELECT COUNT() FROM students; 查询学生的平均年龄: sql SELECT AVG(age) FROM students; 2.分组查询 分组查询使用`GROUP BY`子句将查询结果按指定字段进行分组,并使用聚合函数对每组数据进行汇总

    例如,按`city`字段分组,并查询每个城市的学生人数: sql SELECT city, COUNT() AS student_count FROM students GROUP BY city; 使用`HAVING`子句可以对分组结果进行过滤

    例如,查询学生人数大于5的城市: sql SELECT city, COUNT() AS student_count FROM students GROUP BY city HAVING student_count >5; 3.连接查询 连接查询用于从多个相关表中检索数据

    MySQL支持内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN,MySQL中不直接支持,但可以通过UNION实现)

    例如,假设有一个`courses`表存储课程信息,一个`enrollments`表存储学生选课信息,可以使用内连接查询选修了特定课程的学生信息: sql SELECT students.student_name, courses.course_name FROM students INNER JOIN enrollments ON students.student_id = enrollments.student_id INNER JOIN courses ON enrollments.course_id = courses.course_id WHERE courses.course_name = Mathematics; 4.子查询 子查询是在另一个查询内部嵌套的查询

    子查询可以用于`SELECT`、`FROM`、`WHERE`或`HAVING`子句中

    例如,查询年龄大于平均年龄的学生: sql

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道