一、数据库相关概念
1.数据库
存储数据的仓库:数据是有组织的进行存储
英文:DataBase,简称 DB
数据库就是将数据存储在硬盘上,可以达到持久化存储的效果
2.数据库管理系统: 管理数据库的大型软件
英文:DataBase Management System,简称 DBMS
3.SQL
英文:Structured Query Language,简称 SQL,结构化查询语言
操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
4.常见的关系型数据库管理系统
Oracle:收费的大型数据库,Oracle 公司的产品
MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
PostgreSQL:开源免费中小型的数据库
DB2:IBM 公司的大型收费数据库产品
SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
MariaDB:开源免费中小型的数据库
二、SQL简介和分类
1.SQL简介
英文:Structured Query Language,简称 SQL。结构化查询语言,一门操作关系型数据库的编程语言;定义操作所有关系型数据库的统一标准;对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。
2.SQL通用语法
1).SQL 语句可以单行或多行书写,以分号结尾。以分号结尾才是一个完整的sql语句。
2). MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
3) . 注释:
单行注释: -- 注释内容 或 #注释内容(MySQL 特有)
注意:使用-- 添加单行注释时,--后面一定要加空格,而#没有要求。
多行注释: /* 注释 */
3.SQL 分类
DDL:操作数据库,表等
DML:对表中的数据进行增删改
DQL:对表中的数据进行查询
DCL:对数据库进行权限控制
如下图:
DDL:(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等
DML:(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
DQL:(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
DCL:(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
三、MySQL的DQL操作
1.基础查询
语法 :
--查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; -- 查询所有数据 --去除重复记录 SELECT DISTINCT 字段列表 FROM 表名; --起别名 AS: AS 也可以省略
2.条件查询
--条件查询 SELECT 字段列表 FROM 表名 WHERE 条件列表;
条件列表可以使用以下运算符
3.排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …; --上述语句中的排序方式有两种,分别是: ASC : 升序排列 (默认值) DESC : 降序排列 > 注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
4. 聚合函数
聚合函数分类:
聚合函数语法:
SELECT 聚合函数名(列名) FROM 表; 注意:null 值不参与所有聚合函数运算
例如:查询数学成绩的平均分
select avg(math) from stu;
5.分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤]; 注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where和having的区别:
where 和 having 区别: -- 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。 -- 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
6.分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数; 注意: 上述语句中的起始索引是从0开始 起始索引计算公式:起始索引 = (当前页码 - 1) * 每页显示的条数