SQL简介与入门

本文详细介绍了SQL的基础知识,包括其在数据库操作中的分类(DDL、DML、DQL、DCL),以及在创建、查询、修改和删除数据库对象、表结构以及数据操作中的常用指令。深入讲解了基础查询、条件查询、排序、聚合函数和分组等核心概念,并区分了truncate和delete的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL简介

  • Structured Query Language 结构化查询语言
  • 定义操作所有关系型数据库的统一标准
  • 对于同一个需求, 每一种数据库操作的方式可能会存在一些不一样的地方, 我们称为“方言”

SQL分类

类别说明功能
DDL(Data Definition Language)数据定义语言用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language)数据操作语言用来对数据库中表的数据进行增删改
DQL(Data Query Language)数据查询语言用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言来定义数据库的访问权限和安全级别,及创建用户

在这里插入图片描述


DDL 操作数据库

1. 查询
	SHOW DATABASES;
2. 创建数据库
	CREATE DATABASE 数据库名称;
3. 创建数据库(判断,如果不存在则创建)
	CREATE DATABASE IF NOT EXISTS 数据库名称;
4. 删除数据库
	DROP DATABASE 数据库名称;
5. 删除数据库(判断,如果存在则删除)
	DROP DATABASE IF EXISTS 数据库名称;
6. 使用数据库
	USE 数据库名称;
7. 查看当前使用的数据库
	SELECT DATABASE();

DDL 操作表

  • MySQL中的数据类型

在这里插入图片描述

1. 查询当前数据库下所有表名称
	SHOW TABLES;
2. 查询表结构
	DESC 表名称;
3. 创建表
	CREATE TABLE 表名 (
		字段名1  数据类型1,
		字段名2  数据类型2,
		…
		字段名n  数据类型n
	);
4. 删除表
	DROP TABLE 表名;
5. 删除表时判断表是否存在
	DROP TABLE IF EXISTS 表名;
6. 修改表名
	ALTER TABLE 表名 RENAME TO 新的表名;
7. 添加一列
	ALTER TABLE 表名 ADD 列名 数据类型;
8. 修改数据类型
	ALTER TABLE 表名 MODIFY 列名 新数据类型;
9. 修改列名和数据类型
	ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
10. 删除列
	ALTER TABLE 表名 DROP 列名;

DML 操作表中数据

1. 给指定列添加数据
	INSERT INTO 表名(列名1,列名2,) VALUES(1,2,);
2. 给全部列添加数据
	INSERT INTO 表名 VALUES(1,2,);
3. 批量添加数据
	INSERT INTO 表名(列名1,列名2,) VALUES(1,2,),(1,2,),(1,2,);
	INSERT INTO 表名 VALUES(1,2,),(1,2,),(1,2,);
4. 修改表数据
	UPDATE 表名 SET 列名1=1,列名2=2,[WHERE 条件];
5. 删除数据
	DELETE FROM 表名 [WHERE 条件];
6. truncate删除表记录 属于DDL
	TRUNCATE TABLE 表名;
  • truncate和delete的区别:
    • delete是将表中的数据一条一条删除
    • truncate是将整个表摧毁, 重新创建一个新的表, 新的表结构和原来表结构一模一样

DQL 数据查询 数字代表执行顺序

SELECT 5
    字段列表 
FROM 1
    表名列表 
WHERE 2
    条件列表
GROUP BY 3
    分组字段
HAVING 4
    分组后条件
ORDER BY 6
    排序字段
LIMIT 7
    分页限定
  • 基础查询
-- 基础查询
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

-- 去除重复记录
SELECT DISTINCT 字段名,字段名,.. FROM 表名;

-- 查询时给列、表指定别名需要使用AS关键字
SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;
SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;
AS: AS 也可以省略 
  • 条件查询
比较运算符
>		大于 
<		小于
<=		小于等于
>=		大于等于
=		等于
<>、!=	不等于
逻辑运算符
and(&&) 	多个条件同时满足 一假即假
or(||)	 	多个条件其中一个满足 一真即真
not(!) 		不满足 取反
in关键字
SELECT * FROM 表名 WHERE 字段 in (值1, 值2, 值3);
in里面的每个数据都会作为一次条件,只要满足条件的就会显示
范围
BETWEEN 值1 AND 值2 -- 表示从值1到值2范围,包头又包尾
比如:age BETWEEN 80 AND 100
相当于: age>=80 && age<=100
模糊查询like
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
	%:  表示零个一个多个字符(任意多个字符)
	_:  表示一个字符
  • 排序
SELECT 字段 FROM 表名 ORDER BY 排序的字段 [ASC|DESC];
ASC: 升序排序 默认 可省略
DESC: 降序排序
  • 组合排序
组合排序就是先按第一个字段进行排序,如果第一个字段相同,才按第二个字段进行排序,依次类推。
SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
  • 聚合函数
count:在根据指定的列统计的时候,如果这一列中有null的行,该行 不会被统计在其中。按照列去统计有多少行数据。
sum: 计算指定列的数值和,如果不是数值类型,那么计算结果为0
max: 计算指定列的最大值
min: 计算指定列的最小值
avg: 计算指定列的平均值
  • 分组
按照某一列或者某几列 把相同的数据, 进行合并输出

在sql语句中,如果分组之后,还需要一些条件,
 可以使用having条件,表示分组之后的条件,在having后面可以书写聚合函数
 
having必须和group by一起使用,having和where的用法一模一样,where怎么使用having就怎么使用,
where不能使用的,having也可以使用,比如说where后面不可以使用聚合函数,
但是在having后面是可以使用聚合函数的。
  • ifnull函数
ifnull(列名, 默认值)函数表示判断该列是否为null,如果为null,返回默认值,如果不为null,返回实际的值

ifnull(english,2) == english列的值是null,返回值是 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值