目录
数据库相关概念
数据库
英文:DataBase,简称:DB。
数据库就是存储数据的仓库,数据是有组织的进行存储。
数据库管理系统
英文:DataBase Management System,简称:DBMS。
数据库管理系统就是用来管理数据库的大型软件,本次学习的MySQL就是其中之一。
SQL
英文:Structured Query Language,简称SQL,结构化查询语言。
用来操作关系型数据库的编程语言。
定义操作所有关系型操作系统的同意标准。
MySQL的数据模型
关系型数据库
关系型数据库是建立在关系模型基础上的数据库。
优点:
1.都使用表结构,格式一致,易于维护。
2.使用通用的SQL语言操作,使用方便,可用于复杂查询。
3.数据储存在磁盘中,安全。
SQL
SQL简介
SQL是一门结构化查询语句,一门操作关系型数据库的编程语言,而且是定义操作所有关系型数据库的统一标准。
当然,对某一个需求,每一种数据库的操作方式会有一些偏差,是每种数据库特有的。
SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾;
2.MySQL数据库的SQL语句是不区分大小写的,关键字建议使用大写。
3.注释分为两种:
(1)单行注释:-- 注释内容 或者 #注释内容(MySQL特有的)。
(2)多行注释:/*注释内容*/
SQL分类
DDL
数据库操作
- DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
1.查询数据库
SHOW DATABASES;
2.创建数据库
(1)不判断数据库是否存在
CREATE DATABASE 数据库名称;
(2)判断,如果不存在则创建
CREATE DATABASE IF NOT EXISTS 数据库名称;
3.删除数据库
(1)不判断数据库是否存在
DROP DATABASE 数据库名称;
(2)判断,如果数据库存在则删除
DROP DATABASE IF EXISTS 数据库名称;
4.使用数据库
(1)使用数据库(进入数据库)
USE 数据库名;
(2)查看当前使用的数据库
SELECT DATABASE();
表操作
1.查询当前数据库所有表
SHOW TABLES;
2.查询表结构
DESC 表名;
3.查询指定表的建表语句
SHOW CREATE TABLE 表名;
4.创建表
CREATE TABLE 表名(
字段名1 数据类型1,
字段名2 数据类型2,
..........
字段名n 数据类型n
);
注意:最后一行末尾是没有加,号的。
数据类型
MySQL支持多种类型,可以分为三类:
1.数值
2.日期
3.字符串
删除表
1.删除表
DROP TABLE 表名;
2.删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
修改表
1.修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
2.添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
3.修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
4.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
5.删除列
ALTER TABLE 表名 DROP 列名;
DML
- DML: 数据操作语言,用来对数据库表中的数据进行增删改
添加数据
1.给指定列添加数据
INSERT INTO 表名(列名1,列名2,......) VALUES(值1,值2,....);
2.给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,.....);
3.批量添加数据
INSERT INTO 表名(列名1,列名2,.....)VALUES(值1,值2,.....);
INSERT INTO 表名 VALUES(值1,值2,....),(值1,值2,.....),(值1,值2,....);
修改数据
1.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,.... where 条件;
注意:如果 UPDATE 语句没有加 WHERE 条件,则会将表中所有数据全部修改!
删除数据
1.删除表数据
DELETE FROM 表名 WHERE 条件;
注意:删除语句如果不加条件,则会将所有数据都删除!
DQL(重点掌握)
- DQL: 数据查询语言,用来查询数据库中表的记录
基础查询
1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; ————查询表里所有数据,建议还是把字段列表全部码出来,少使用 *
2.去重重复记录
SELECT DISTINCT 字段列表 FROM 表名;
3.给字段列表起个别名
AS; —— AS也可以省略,原始字段名 和别名中间有一个空格隔开。
条件查询
1.条件查询语句
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2.条件:
排序查询
1.排序查询语句
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 排序方式,排序字段名2 排序方式 ... ;
排序方式有两种:
—— ASC 升序排列(默认值,没有写的话默认升序)
—— DESC 降序排列
注意:如果有多个排序条件,当前面的条件值一样时,才会根据第二条件进行排序
聚合函数
1.聚合函数
概念:就是将一列数据作为一个整体,进行纵向计算。4
2.聚合函数分类4
补充:(1)count 的取值:1.主键 ,2. *
函数名 功能 count(列名) 统计数量(一般选用不为null的列) max(列名) 最大值 min(列名) 最小值 sum(列名) 求和 avg(列名) 平均值 (2)null值2不参与所有聚合函数运算
3.聚合函数语法
SELECT 聚合函数名(列名) FROM 表;
分组查询
1.分组查询语法
SELECT 字段列表 FROM 表名 WHERE 分组前的条件限定 GROUP BY 分组字段名 HAVING 分组后条件过滤;
注意:分组后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义!
where和having区别
1.执行时机不一样,where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤的。
2.可判断的条件不一样:where不能对聚合函数进行判断,having可以!
执行顺序:where > 聚合函数 > having
分页查询
1.分页查询语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
起始索引:是从0开始的!
计算公式:起始索引 = (当前页码 - 1) * 每页显示的条数
补充:
1.分页查询 LIMIT 是MySQL特有的。
2.Oracle 分页查询使用 rownumber 。
3.SQL Server 分页查询使用 top 。