干货分享:史上最常用SQL语句大全,涵盖大多数基础知识点

艺帆风顺 发布于 2025-04-18 31 次阅读


日常工作中,SQL是大多数分析人员必须精通的工具。SQL语句种类繁多,功能强大能够满足数据查询、更新、删除、插入以及数据库和表结构管理等。本文将详细介绍一系列史上超强、最常用的SQL语句,帮助读者在实际工作中更加高效地操作数据库。


一、数据定义语言:用于定义和管理数据库对象等

1、数据库的操作

--001 创建数据库CREATE DATABASE my_db; -- 创建名为my_db的数据库create database if not exists my_db; --创建时会检查是否存在my_db,如果不存在则创建--002 查看所有数据库SHOW DATABASES;--003 使用库USE my_db --选择并切换到my_db--004 删除库(慎用)DROP DATABASE --删除数据库my_db

2、数据表的操作

--005 创建表CREATE TABLE my_db (    id INT ,    name VARCHAR(100NOT NULL,    email VARCHAR(100UNIQUE NOT NULL);--006 查看表的列信息DESC my_db;--007 删除表drop table my_db;--008 新增列ALTER TABLE my_tb ADD COLUMN piaoshu INT;--009 删除列ALTER TABLE my_tb DROP COLUMN piaoshu;
二、数据操纵语言:用于对数据库表中的数据进行增删改操作等
1、数据插入
--010 指定字段插入单条数据INSERT INTO my_tb (id,name) VALUES (898,'张三');--011 指定字段插入多条数据INSERT INTO my_tb (id,name) VALUES (899,'李四');VALUES (900,'王五');--012 所有字段插入数据:写出所有字段名或者不写insert into 表名 values(值1,值2,...值n)
2、数据删除
--013 删除指定条件的数据:DELETE FROM my_tb WHERE name = '张三';--014 删除所有数据但是会保留原有数据结构DELETE FROM my_tb
3、数据修改/更新
--015 更新满足条件的记录中的某个字段UPDATE my_tb SET name = '赵大' WHERE id = '900';--016 更新所有记录中的某个字段UPDATE my_tb SET id = id+ 1;
三、数据查询语言:用于从数据库中查询数据
1、基础查询
--017 查询所有数据(实际工作中不建议)SELECT * FROM my_tb;--018 查询指定字段的数据SELECT id,name FROM my_tb;
2、条件查询
--018 使用WHERE进行条件查询SELECT * FROM my_tb WHERE name ='l李四';
3、排序查询
--019 升序查询SELECT * FROM my_tb ORDER BY id ASC--020 降序查询SELECT * FROM my_tb ORDER BY id DESC;
4、聚合查询
--021 结合聚会函数进行查询SELECT   COUNT(*),  --记录数  SUM(piaoshu), --票数和  AVG(piaoshu) --平均票数FROM  my_tb
5、分组查询
--022 使用GROUP BY结合聚合函数进行分组查询-- 假设有表my_ta,有字段 部门、销量,现要求查出每个部门的销量SELECT 部门, SUM(销量) FROM my_ta GROUP 部门; 

6、分页查询

--023 使用LIMIT子句限制返回的行数,常用于分页显示结果SELECT * FROM my_tb LIMIT 10 OFFSET 20

7、多表查询

--024 等值查询SELECT last_name,department_nameFROM employees eINNER JOIN departments dON e.`department_id`=d.`department_id`;--025 左外连接查询SELECT b.name,bo.*FROM beauty bLEFT OUTER JOIN boys boON b.`boyfriend_id`=bo.`id`WHERE bo.`id` IS NULL;--026 右外连接查询SELECT b.name,bo.*FROM boys boRight OUTER JOIN beauty bON b.`boyfriend_id`=bo.`id`WHERE bo.`id` IS NULL;

8、子查询

--027 WHERE后面的子查询SELECT last_name,salary FROM employees WHERE salary>  (SELECT salary from employees where last_name='Abel')--028 HAVING后面的子查询SELECT department_id,MIN(salary) FROM employees GROUP BY department_idHAVING MIN(salary)>  (SELECT MIN(salary) FROM employees WHERE department_id =110--029 select后面的子查询SELECT d.*,(        SELECT COUNT(*)          FROM employees e         WHERE e.department_id =d.department_id) 个数FROM departments d;--030 FROM后面的子查询SELECT ag_dep.*,g.`grade_level`FROM(  SELECT AVG(salary) AS ag,department_id   FROM employees GROUP BY department_id  ) ag_dep INNER JOIN job_grades AS g ON ag_dep.ag BETWEEN lowest_sal AND highest_sal

9、联合查询

--031 联合查询使用union 或者union all-- 两者区别:-- union:对多个结果集进行并集操作,不包括重复行,同时进行排序。-- union all:对多个结果集进行并集操作,包括重复行,不进行排序。select id,caname,csex from t_ca where csex='男'union allselect t_id,t_name,t_gender from t_ua where tgender='male'

四、数据控制语言:于创建数据库用户、控制数据库的访问权限等

1、用户管理

--032 查询用户 SELECT * FROM user--033 新建用户CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';--034 修改用户密码ALTER USER 'username'@'localhost' IDENTIFIED     WITH mysql_native_password BY 'new_password';--035 删除用户DROP USER 'username'@'localhost';

2、权限管理

--036 查询用户权限SHOW GRANTS FOR 'username'@'localhost';--037 授予权限GRANT SELECTINSERTUPDATE ON     my_database.* TO 'username'@'localhost';--038 撤销权限REVOKE SELECTINSERTUPDATE ON     my_database.* FROM 'username'@'localhost';
以上就是最常用SQL语句,涵盖了基本的知识点。数据分析人员的实际操作中,数据控制语言用的很少,主要使用的数据查询语言,其他的作为了解即可。