MySQL数据库(一):MySQL和数据库简介、DQL

本文介绍了数据库的基本概念,包括数据库的好处、数据库管理系统(DBMS)与数据库的关系,以及SQL语言的分类。接着,详细讲解了MySQL的概述,如语言规范和命名规则。此外,还深入探讨了基础查询语言DQL,包括简单查询、条件查询、排序、分组函数、连接查询、子查询和分页查询等核心概念。

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

目录

1 数据库和SQL简介

1.1 数据库

1.2 数据库的好处

1.3 数据库相关概念

1.3.1 数据库与数据库管理系统

1.3.2 数据库与数据库管理系统的关系

 1.4 SQL的语言分类

2 MySQl概述

2.1 MySQL介绍

2.2 MySQL的语言规范

 2.2.3 命名规则

3 基础查询语言(DQL)

3.1 简单查询

3.2 条件查询

3.3 排序查询

3.4 分组函数

3.5 连接查询

3.5.1 内连接 

 3.5.2 外连接

3.6 子查询

3.7 分页查询 

3.8 联合查询


1 数据库和SQL简介

1.1 数据库

数据库指的是长期存储在计算机中、有组织、可共享的、大量数据的集合。数据是按照特定的数据模型来组织、存储在数据库中的。

1.2 数据库的好处

将数据保存到本地,避免数据的丢失,使数据更好的保存以便以后的使用。并且还能实现结构化查询,方便管理

1.3 数据库相关概念

1.3.1 数据库与数据库管理系统

DB(database):数据库,保存一组有组织的数据的一个“仓库”

DBMS(Database Management System):数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据

        常见的DBMS:MySQL、Oracle、DB2、SqlServer等

SQL:结构化查询语言,用于和数据库通信的语言

1.3.2 数据库与数据库管理系统的关系

 1.4 SQL的语言分类

DML(Data Manipulate Language):数据操作语言,用于添加、修改、删除数据库记录,并检查数据完整性。关键字:insert、pudate、delete等

DDL(Data Define Languge):数据定义语言,用于库和表的创建、修改、删除。关键字:create、drop、alter等

TCL(Data Control Language):数据事务语言

DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录。关键字:select、where等

2 MySQl概述

2.1 MySQL介绍

SQL(Structured Queery Language)是一款安全、跨平台、高效的、具有数据操作和数据定义等多功能的数据库语言,SQL语言可与其他程序语言一起优化程序功能。

2.2 MySQL的语言规范

关键字、函数名大写

数据库名、表名、表别名、字段名、字段别名都小写

每条命令以英文分号结尾

适当的对语句进行缩进

注释

        单行注释:#注释文字 或 --注释文字

        多行注释:/*注释文字*/

 注意,MySQL在windows环境下是大小写不敏感的

            MySQL在Linux环境下是大小写敏感

所以建议采用规范模式进行命名

 2.2.3 命名规则

命名不易过长,或过于复杂

只能用A-Z、a-z、_、0-9进行命名

数据库名、字段名、表名中间不要有空格

同一个MySQL软件中,数据库不能同名;同一个数据库中,表名不能重名;同一个表格中,字段名不能重名

3 基础查询语言(DQL)

3.1 简单查询

语法:SELECT 字段名 FROM 表名;

如果要查询表中的所有字段,可用“ * ”代替

如:SELECT * FROM 表名;

对表名、字段名起别名

as关键字,可省略

在需要添加别名的表名、表达式、字段等后加 as 跟上所起的名称

一些简单的查询语句

查看当前所有数据库: SHOW databases;
进去数据库:use 库名;
查看当前所在数据库: SELECT DATABASE();
查看数据库中的表: SHOW TABLES;
查看指定数据库中的表(不在表所在的数据库中也能查询):show TABLES FROM 数据库名;

 查询语句中常用的函数

去重
SELECT DISTINCT 字段名 FROM 表名;

"+"在MySQL中的含义
作用:做加法运算
SELECT 数值+数值; 直接运算
SELECT 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
SELECT NULL+值;只要其中一个为null,结果都为null

concat函数
功能:拼接字符
SELECT CONCAT(字符1,字符2,字符3,...);

ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
SELECT IFNULL(rich,0) FROM employees;

isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0

3.2 条件查询

条件运算符:>、>、=、!=、>=、<=、<=>(安全等于)、 <>(不等于)

 逻辑运算符:&&--AND、||--OR、!--NOT

 模糊查询

LIKE:一般搭配通配符使用,可以判断字符型或数值型

通配符:‘%’ 任意多个字符,‘_’任意单个字符

ESCAPE'$':指明$这个符号为通配符

 between and(从什么到什么)

如:从1到10 between 1 and 10

3.3 排序查询

语法:

SELECT 查询列表 FROM 表名 WHERE 筛选条件 ORDER BY 排序条件【ASC/DESC】

ACS:升序,如果不写则MySQL默认升序排序

DESC:降序

排序查询一般放在最后,除了LIMIT语句外

3.4 分组函数

 语法:SELECT 查询列表 FROM 表名 GROUP BY 分组字段 【HAVING 筛选条件】分组后的筛选条件

组函数类型:

count:计算个数
     一般选择非空的列:主键
    count(*)
max:计算最大值 min:计算最小值 sum:计算和 avg:计算平均值
特点:
    1、以上五个分组函数都忽略null值,除了 count(*)
    2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
    3、都可以搭配distinct使用,用于统计去重后的结果
    4、count的参数可以支持:
        字段、*、常量值,一般放1
注意:聚合函数的计算,排除null值。
    解决方案:
        选择不包含非空的列进行计算
        IFNULL函数 

3.5 连接查询

 语法:SELECT 查询列表 FROM 表1 别名 【连接类型  JOIN 表2 别名 ON 连接条件

3.5.1 内连接 

  1. 等值连接:连接条件为一个等式;
  2. 非等值连接:连接条件为一个范围;
  3. 自连接:连接条件来自同一个表中;

 3.5.2 外连接

外连接的查询结果为主表中的所有记录

  •         如果从表中有和它匹配的,则显示匹配的值
  •         如果从表中没有和它匹配的,则显示NULL
  •         外连接查询结果 = 内连接查询结果 + 主表中有而从表中没有的记录

左外连接(LEFT JOIN):左边的表是主表

右外连接(RIGHT JOIN):右边的表是主表

交叉连接(CROSS JOIN):实现笛卡尔乘积

3.6 子查询

在查询中(或其他语句中)嵌套查询,嵌套的查询称为子查询

特点:
1、子查询都放在小括号内
2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
3、子查询优先于主查询执行,主查询使用了子查询的执行结果
4、子查询根据查询结果的行数不同分为以下两类:
        ① 单行子查询(标量子查询)
            结果集只有一行
            一般搭配单行操作符使用:> < = <> >= <= 
            非法使用子查询的情况:
                a、子查询的结果为一组值
                b、子查询的结果为空
           ② 多行子查询(列子查询)
            结果集有多行
            一般搭配多行操作符使用:any、all、in、not in
            in: 属于子查询结果中的任意一个就行
            any和all往往可以用其他查询代替

各个关键字所支持的子查询

select  标量子查询

from 表子查询:将子查询的结果充当一张表,要求必须起别名

where / having 标量子查询、列子查询 ※

3.7 分页查询 

放在查询语句的最后

LIMIT offset,size;

        offset:显示条目的起始索引(起始索引从0开始)

        size:显示的条目个数

公式:llimit (page-1)*size,size

3.8 联合查询

union 联合 合并:将多条查询语句的结果合并为一个结果

语法: 查询语句1 union 查询语句2 union ....

应用场景:要查询的结果来自多个表,且多个表没有直接关系,但查询的信息一致时

特点:

  1. 查询的列数一致;
  2. 查询的类型和顺序一致
  3. 使用union自动去重(取消去重 union all)

SQL语句的执行顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值