SQL学习笔记

SQL数据库

库 -> 表 -> 数据

SQL的语言分类

  • 数据定义:DDL
    • 库的创建删、表的创建和删除等
  • 数据操纵:DML
    • 新增数据、删除数据、修改数据等
  • 数据控制:DCL
    • 新增用户、删除用户、密码修改、权限管理等
  • 数据查询:DQL
    • 基于需求查询和计算数据

SQL语法特征

  • SQL大小写不敏感
  • SQL支持单行和多行书写以 ' ; '号结束
  • 支持注释
    • 单行注释:-- 注释内容 -- 在--后要加一个空格
    • 单行注释:#注释内容 #号后面可以不加空格最好加
    • 多行注释/*注释内容*/

DDL

查询已有库

show databases -- 我是注释

创建库

create database youdatabase;

删除库

DROP DATABASE YOUDATABASE

创建表

CREATE TABLE student(
    id INT,
    name VARCHAR(20),
    age INT
)
  • # 数据类型
    
    - INT型
    - TINYINT型
    - VARCHAR()型
    

DML

  • INSERT数据插入
  • DELETE数据删除
  • UPDATE数据更新

插入数据

INSERT INTO student(id,name,age)
values
    (5,'林俊杰',34),
    (6,'马嘉祺',21),
    (7,'蔡徐坤',27),
    (8,'余秋雨',55),
    (9,'陈伟霆',23),
    (10,'杨沁芸',21);

删除数据

条件判断:列,操作符,值

操作符: =  < > <= >= != 等
例:
	id = 5
	id < 3
	id > 5
	id != 6
#删除id小于等于3的数据
DELETE FROM student WHERE id <=3;

改数据

INSERT INTO student(id,name,age)
values
    (5,'林俊杰',34),
    (6,'马嘉祺',21);

UPDATE student SET name = '马加七' WHERE name='马嘉祺'

DQL

  • 基础查询
  • 分组查询
  • 排序分页

基础查询

SELECT 字段列表|* FROM 表
INSERT INTO student(id, name, age, gender) VALUES
(10001, '周杰伦', 31, '男'),
(10002, '王力宏', 33, '男'),
(10003, '蔡依林', 35, '女'),
(10004, '林志玲', 36, '女'),
(10005, '刘德华', 33, '男'),
(10006, '张大山', 10, '男'),
(10007, '吴志龙', 11, '男'),
(10008, '王潇潇', 33, '女'),
(10009, '张一梅', 20, '女'),
(10010, '王一倩', 13, '女'),
(10011, '陈一迅', 31, '男'),
(10012, '张晓光', 33, '男'),
(10013, '李大晓', 15, '男'),
(10014, '吕甜甜', 36, '女'),
(10015, '曾悦悦', 31, '女'),
(10016, '刘佳慧', 21, '女'),
(10017, '项羽凡', 23, '男'),
(10018, '刘德强', 26, '男'),
(10019, '王强强', 11, '男'),
(10020, '林志慧', 25, '女');


select id,name from student;	#展示id和name
select * from student;			#展示所有的列
#过滤
select * from student where age<25;

DQL分组聚合

应用场景

分组查询的应用场景非常多,如:统计班级中男生和女生的人数。

这种需求就需要:

  • 按照性别分组
  • 统计每组人数

这种情况就需要分组聚合

基础语法

SELECT 字段列表|聚合函数 FROM 表 [WHERE 条件] GROUP BY 列

聚合函数有:

SUM(列) 求和
AVG(列) 求平均
MIN(列) 求最小
MAX(列) 求最大
COUNT(列|*) 求数量
select gender , avg(age) as '平均年龄',count(id) as '人数'  from student group by gender;

排序

可以对查询的结果,使用ORDER BY关键字,指定某个列进行排序,语法:

SELECT 列|聚合函数|* FROM 表
WHERE ...
GROUP BY ...
ORDER BY ...[ASC | DESC]
-- ASC:升序
-- DESC:降序

实例测试

select * from student where gender='女' order by age DESC ;
select * from student where gender='女' order by age ASC;
select * from student where gender='女' order by age;

分页

使用LIMIT关键字

posted @ 2025-04-13 23:18  Albiehao  阅读(44)  评论(0)    收藏  举报