数据库(数据库相关概念、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语句可以单行或多行书写,以分号结尾。

  1. 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--对于数据库的操作

  1. 查询
    SHOW DATABASES;

  2. 创建

  • 创建数据库

CREATE DATABASE 数据库名称;

  • 创建数据库(判断,如果不存在则创建)

CREATE DATABASE IF NOT EXISTS 数据库名称;

3.删除

  • 删除数据库

DROP DATABASE 数据库名称;

  • 删除数据库(判断,如果存在则删除)

DROP DATABASE IF EXISTS 数据库名称;

  1. 使用数据库
  • 查看当前使用的数据库

SELECT DATABASE();

  • 使用数据库

USE 数据库名称;

5.DDL--操作表

  • 创建(Create)
  • 查询(Retrieve)
  • 修改(Update)
  • 删除(Delete)

(1)DDL--操作表-查询&创建

查询表

  • 查询当前数据库下所有表名称

SHOW TABLES;

  • 查询表结构

DESC 表名称;

创建表

注意:最后一行末尾,不能加逗号

(2)DDL--操作表-数据类型

MySQL支持多种类型,可以分为三类:

  • 数值
  • 日期
  • 字符串

(3)DDL--操作表-修改&删除

删除表

  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 列名 新列名 新数据类型;

  1. 删除列
    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...);

  1. 给全部列添加数据
    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条件
注意:修改语句中如果不加条件,则将所有数据都修改!

删除数据

  1. 删除数据
    DELETE FROM 表名 WHERE 条件
    注意:删除语句中如果不加条件,则将所有数据都删除!

8.DQL

查询语法

  • 基础查询
  • 条件查询(WHERE)
  • 分组查询(GROUP BY)
  • 排序查询(ORDER BY)
  • 分页查询(LIMIT)

(1)基础查询

1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;-- 查询所有数据。不要使用!!!

2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

  1. 起别名
    AS:AS 也可以省略

也可以不写as,但是列名和别名需要用空格隔开

(2)条件查询

  1. 条件查询语法
    SELECT 字段列表 FROM 表名 WHERE 条件列表;

(3)排序查询

1.排序查询语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 排序方式1,排序字段名2 排序方式2....;

排序方式:

  • ASC:升序排列(默认值)(从小到大)
  • DESC:降序排列(从大到小)

注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

(4)聚合函数

聚合函数

1.概念:

将一列数据作为一个整体,进行纵向计算。

  1. 聚合函数分类:

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
相关推荐
2601_9520477915 小时前
金蝶云星空与管易云系统对接方案
mysql
这个DBA有点耶15 小时前
数据库管理工具+开发工具的融合:AI如何重塑DBA工作流?
开发语言·数据库·人工智能·sql·云计算·dba
小李云雾16 小时前
Redis 从入门到实战:核心知识点与架构搭建全解析
数据库·redis·架构
我叫张小白。16 小时前
Redis常用数据结构与命令详解
数据结构·数据库·redis
SelectDB16 小时前
- 别把懂语义和查事实混为一谈:企业级 Agent 真正缺的是什么?
数据库·数据分析·agent
Lao A(zhou liang)的菜园16 小时前
深入详细解释Oracle 全量 CHECKPOINT 与增量 CHECKPOINT
数据库·oracle
数据库小学妹16 小时前
异构数据库同步实战:如何打通Oracle/MySQL/SQL Server的数据孤岛
数据库·mysql·oracle
数据库知识分享者小北16 小时前
安全可靠数据库选型之阿里云 PolarDB MySQL 版V2.0
数据库·mysql·阿里云·国产数据库·polardb·安全可靠数据库·polardb-m
一只fish16 小时前
Oracle官方文档翻译《Database Concepts 26ai》第16章-数据库实例
数据库·oracle
艾莉丝努力练剑17 小时前
【Linux:文件】库的制作与原理进阶
linux·运维·服务器·网络·数据库·c++·人工智能