数据库(数据库相关概念、MySQL数据库、SQL(DDL、DML、DQL))
数据库(数据库相关概念、MySQL数据库、SQL(DDL、DML、DQL))
1.数据库相关概念
数据库
- 存储数据的仓库,数据是有组织的进行存储
- 英文:DataBase,简称 DB
数据库管理系统 - 管理数据库的大型软件
- 英文:DataBase Management System,简称 DBMS
SQL - 英文:Structured Query Language,简称SQL,结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
常见的关系型数据库管理系统 - Oracle:收费的大型数据库,Oracle 公司的产品
- MySQL:开源免费的中小型数据库。后来Sun公司收购了MySQL,而 Sun 公司又被Oracle收购
- SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2:IBM公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为Android内置数据库
- MariaDB:开源免费中小型的数据库
2.MySQL数据模型
关系型数据库
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库
- 优点:
1.都是使用表结构,格式一致,易于维护。
2.使用通用的SQL语言操作,使用方便,可用于复杂查询。
3.数据存储在磁盘中,安全。
3.SQL简介&通用语法&分类
SQL简介
- 英文:Structured Query Language,简称 SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾。
2. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
3.注释 - 单行注释:-- 注释内容或#注释内容(MySQL特有) 注意:–后面有空格不然报错
- 多行注释://注释//
SQL分类 - DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
- DML(DataManipulation Language)数据操作语言,用来对数据库中表的数据进行增删改
- DQL(Data QueryLanguage)数据查询语言,用来查询数据库中表的记录(数据)
- DCL(DataControlLanguage)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
- DDL:操作数据库,表等
- DML:对表中的数据进行增删改
- DQL:对表中的数据进行查询
- DCL:对数据库进行权限控制
最重要是DML和DQL
4.DDL–对于数据库的操作
- 查询
SHOW DATABASES; - 创建
- 创建数据库
CREATE DATABASE 数据库名称; - 创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
3.删除 - 删除数据库
DROP DATABASE 数据库名称; - 删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
- 使用数据库
- 查看当前使用的数据库
SELECT DATABASE(); - 使用数据库
USE 数据库名称;
5.DDL–操作表
- 创建(Create)
- 查询(Retrieve)
- 修改(Update)
- 删除(Delete)
(1)DDL–操作表-查询&创建
查询表
- 查询当前数据库下所有表名称
SHOW TABLES; - 查询表结构
DESC 表名称;
创建表
注意:最后一行末尾,不能加逗号
(2)DDL–操作表-数据类型
MySQL支持多种类型,可以分为三类:
- 数值
- 日期
- 字符串
(3)DDL–操作表-修改&删除
删除表
- 删除表
DROP TABLE 表名;
2.删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
修改表 - 修改表名
ALTER TABLE 表名 RENAME TO 新的表名; - 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
3.修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
4.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; - 删除列
ALTER TABLE 表名 DROP 列名;
6.图形化客户端工具Navicate
Navicat
- Navicat for MySQL是管理和开发MySQL或MariaDB的理想解决方案。
- 这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。
- 官网:http://www.navicat.com.cn
7.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…;
不建议省略列名
修改数据
1.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2…[WHERE条件];
注意:修改语句中如果不加条件,则将所有数据都修改!
删除数据
- 删除数据
DELETE FROM 表名 [WHERE 条件];
注意:删除语句中如果不加条件,则将所有数据都删除!
8.DQL
查询语法
- 基础查询
- 条件查询(WHERE)
- 分组查询(GROUP BY)
- 排序查询(ORDER BY)
- 分页查询(LIMIT)
(1)基础查询
1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT /* FROM 表名;-- 查询所有数据。不要使用!!!
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
3. 起别名
AS:AS 也可以省略
也可以不写as,但是列名和别名需要用空格隔开
(2)条件查询
- 条件查询语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
(3)排序查询
1.排序查询语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]…;
排序方式:
- ASC:升序排列(默认值)(从小到大)
- DESC:降序排列(从大到小)
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
(4)聚合函数
聚合函数
1.概念:
将一列数据作为一个整体,进行纵向计算。
2. 聚合函数分类:
3.聚合函数语法:
SELECT 聚合函数名(列名)FROM 表;
注意:null值不参与所有聚合函数运算
建议count(/*)
null不参加任何聚合函数的计算
(5)分组查询
1.分组查询语法
SELECT 字段列表 FROM 表名 [WHERE分组前条件限定] GROUP BY 分组字段名 [HAVING分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where 和 having 区别:
- 执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
- 可判断的条件不一样:where不能对聚合函数进行判断,having可以。
执行顺序:where > 聚合函数 > having
(6)分页查询
1.分页查询语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
起始索引:从0开始
计算公式:起始索引=(当前页码-1)/*每页显示的条数
tips:分页查询limit是MySQL数据库的方言
Oracle分页查询使用rownumber
SQL Server分页查询使用top
《网络安全从零到精通全套学习大礼包》
96节从入门到精通的全套视频教程免费领取
如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。
网络安全学习路线图
想要学习 网络安全,作为新手一定要先按照路线图学习,方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。
配套实战项目/源码
所有视频教程所涉及的实战项目和项目源码
学习电子书籍
学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的
面试真题/经验
以上资料如何领取?
sdnimg.cn/direct/5458f21c6efa4e739621ffb5d4309b20.jpeg#pic_center)
