SQL概述

SQL(Structured Query Language,结构化查询语言)是一种专门用于管理和操作关系型数据库的标准编程语言。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的特征:对大小写和多行不敏感,用;完成分隔。
注释:

  • 单行注释:-- 内容 或者 # 内容
  • 多行注释:与C语言的多行注释一致

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-数据操作

对于一个用下列语句定义的表:

1
2
3
4
5
create table stu(
name varchar(10),
id int,
age int
);

插入数据:

  1. 对某一列插入数据
    insert into stu(name) values('初音未来'), ('葱酱');

    注意:字符串用’单引号’包围

  2. 对几列插入数据
    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-查询语句

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语句中,参数from为必选项。
执行顺序:
from -> where(筛选) -> group by + 聚合函数 -> select -> order by -> limit(选择性展示)

以上是一些最基本的增删改查操作语句。是之后学习Python数据分析和后端数据库搭建的基础。