管理

日常工作中,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语句,涵盖了基本的知识点。数据分析人员的实际操作中,数据控制语言用的很少,主要使用的数据查询语言,其他的作为了解即可。

 

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved