SQL概述 {#SQL概述}
SQL(Structured Query Language,结构化查询语言)是一种专门用于管理和操作关系型数据库的标准编程语言。SQL 用于在数据库中执行各种操作,包括数据查询、数据定义、数据操纵和数据控制。
SQL的分类 {#SQL的分类}
SQL 主要用于以下几类操作:
数据查询(Data Querying):
通过 SELECT 语句从数据库表中检索数据。
数据定义(Data Definition):
通过 CREATE、ALTER 和 DROP 语句创建、修改和删除数据库对象(如表、视图、索引等)。
数据操纵(Data Manipulation):
通过 INSERT、UPDATE 和 DELETE 语句插入、更新和删除数据。
数据控制(Data Control):
通过 GRANT 和 REVOKE 语句管理用户的权限。
开发环境 {#开发环境}
笔者使用的环境是 MySQL8.0 以及 DBeaver 可视化界面。
常见的SQL语法 {#常见的SQL语法}
SQL的特征:对大小写和多行不敏感,用 ;
完成分隔。
注释:
- 单行注释:
-- 内容
或者# 内容
- 多行注释:与C语言的多行注释一致
DDL-数据定义语言 {#DDL-数据定义语言}
库管理 {#库管理}
查看库:
show databases;
使用库:
use 名称
创建库:
create database 名称 [charset utf8]
删除库:
drop database 名称
查看当前使用的数据库:
select database();
表管理 {#表管理}
查看:
show tables;
创建:
|-----------------|--------------------------------------------------|
| 1 2 3 4
| create NAME( 列名称 数据类型 限制, 列名称 数据类型 限制 );
|
数据类型:
int:整数
float: 浮点数
varchar(len): 字符串,最大255
date: 日期
timestamp: 时间戳
删除:
drop table 名称
DML-数据操作 {#DML-数据操作}
对于一个用下列语句定义的表:
|-------------------|--------------------------------------------------------------------|
| 1 2 3 4 5
| create table stu( name varchar ( 10 ), id int , age int );
|
插入数据:
- 对某一列插入数据
insert into stu(name) values('初音未来'), ('葱酱');
注意:字符串用'单引号'包围 - 对几列插入数据
insert into stu(name. id) values('初音未来', 1);
删除数据:
delete from stu [where id = 1]
其中where为条件判断,有 =, >, <, >=, <=, !=
几种,如果没有where,默认删除全部数据。
更新数据:
update stu set name = 'Miku' where name = '初音未来'
set后为修改语句,where为条件判断。
DQL-查询语句 {#DQL-查询语句}
SELECT基础查询 {#SELECT基础查询}
对于上述的表:
查询所有的列 :
select * from student;
查询部分列:
select name, age from student;
使用限制条件:
select name, age from student where age < 16;
分组聚合 {#分组聚合}
对于一个包含了 name
, id
, age
, gender
的表,若要按照性别分组统计年龄:
|-----------|----------------------------------------------------------------|
| 1
| select gender, avg (age) from student group by gender;
|
注意,select后的参数除分组依据外,不得出现其他的列元素(无法表示)。
类似于avg()的统计函数还有:
SUM()
:求和MIN()
:最小MAX()
:最大COUNT()
:计数(只要该数据的对应列存在就加一,一般用count(*)
)
排序和分页查询 {#排序和分页查询}
排序:
order by 判据 [asc(升序) / desc(降序)]
分页查询:
limit m[,n]
单个参数:表示在输出列表的最上端取出m条数据。
两个参数:表示在输出列表的第m个之后取出n条数据。
示例:
|-----------|-----------------------------------------------------------------------------------------------------|
| 1
| select age, count (age) from student where age > 10 group by age order by age asc limit 3 ;
|
select的注意事项和执行顺序 {#select的注意事项和执行顺序}
每个select语句中, 参数
和 from
为必选项。
执行顺序:
from -> where(筛选) -> group by + 聚合函数 -> select -> order by -> limit(选择性展示)
以上是一些最基本的增删改查操作语句。是之后学习Python数据分析和后端数据库搭建的基础。