日常工作中,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(100) NOT NULL,
email VARCHAR(100) UNIQUE 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 SELECT, INSERT, UPDATE ON
my_database.* TO 'username'@'localhost';
--038 撤销权限REVOKE SELECT, INSERT, UPDATE ON
my_database.* FROM 'username'@'localhost';
以上就是最常用SQL语句,涵盖了基本的知识点。数据分析人员的实际操作中,数据控制语言用的很少,主要使用的数据查询语言,其他的作为了解即可。
| Austin Liu 刘恒辉 ProjectManager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1180065.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!