MySQL 基础 ---- MYSQL 必知必会的阅读一

MySQL 基础 ---- MYSQL 必知必会的阅读一


文章目录

一、了解 SQL

1.数据库
① 一个以某种有组织的方式存储的数据集合
② 通常是一个文件或一组文件
2. 表
① 某种特定类型数据的结构化清单
②具有唯一的表名
③同一个数据库中没有其他表具有相同的名字
④模式
  • 关于数据库和表的布局及特性的信息

引自CSDN:我们可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table就被放入每个房间中,不能放置在房间之外。然后床上可以放置很多物品,就好比Table上可以放置很多列和行一样。所以Schema包含的是Object,而不是User。

3.列和数据类型
① 列
  • 表中的一个字段。
  • 所有表都由一个或多个列组成
  • 有相应的数据类型
②数据类型
  • 所容许的数据类型
  • 可限制存储在列中的数据种类帮助正确排序数据
  • 帮助正确排序数据
  • 对优化磁盘起重要作用
4.行
① 表中的一个记录
② 表中数据按行存储,所保存的每个记录存储在自己的行内
③ 如若表为网格
  • 垂直列为表列
  • 水平行为表行
5. 主键
① 一列或一组列,其值能够唯一区分表中每一行
① 表示一个特定的行。
② 使用条件
  • 任意两行都不具有相同的主键值
  • 每一行都必须具有一个主键值(主键列不允许NULL值)
② 多列主键
  • 满足上溯述条件
  • 所有列值的组合必须是唯一的(但单个列值可以不唯一)
② 使用习惯
  • 不更新主键列的值
  • 不重用主键列的值
  • 不在主键列中使用可能会更改的值

三、使用MySQL

1.选择数据库
① 关键字(key word)
  • 作为 MySQL 语言组成部分的一个保留字
  • 不能用关键字命名一个表或列
② USE关键字
  • 选择数据库
  • 不返回任何结果
  • USE + 数据库名
  • 必须先用 USE 打开数据库,才能读取其中的数据
2.数据库和表
① SHOW 命令
  • 显示数据库、表、列、用户、权限等信息
  • MySQL 从内部表提取信息
② SHOW DATABASES;
  • 返回可用数据库的一个列表
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2f59f2e-1649052537713)(C:\Users\18517\AppData\Roaming\Typora\typora-user-images\image-20220404134536273.png)]
③SHOW TABLES;
  • 返回当前选择的数据库内可用表的列表
④SHOW
  • 可用来显示表列
  • SHOW COLUMNS
    • 要求给出一个表名
    • SHOW COLUMNS FROM customers;
    • 对每个字段所有一行
    • 行中包括字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息
  • DESCRIBE 语句
    • SHOW COLUMNS FROM 的快捷方式
    • DESCRIBE customers; == SHOW COLUMNS FROM customers;
⑤OW STATUS;

显示广泛的服务器状态信息

⑥HOW CREATE DATABASE/TABLE;

分别用来创建特定数据库或表

⑦OW GRANTS;

用来显示授予用户(所有用户或特定用户)的安全权限

⑧HOW ERRORS/WARNINGS;

用来显示服务器错误或警告消息

⑨INFORMA-TION_SCHEMA

获得和过滤模式信息

⑩ELP SHOW;

显示允许的 SHOW 语句


四、检索数据

1.SELECT 语句
① 从一个或多个表中检索信息
② 使用 SELECT 必须给出两个信息
  • 想选择什么
  • 从什么地方选择
2. 检索单个列
① 语法

SELECT 列名 FROM 表名

②输出结果
  • 输出的数据没有明确的排序
  • 返回表中所有的行
3.检索多个列

SELECT 列名,列名 FROM 表名

4.检索所有列
① 语法
  • 使用星号(*)通配符
  • SELECT * FROM 表名;
② 好处以及建议
  • 可以检索出名字未知的列
  • 一般最好不要使用 * 通配符,会降低检索和应用程序的性能
5. 检索不同的行
① 语法
  • DISTINCT 关键字 ---- 只返回不同的值
  • SELECT DISTINCT 列名 FROM 表名;
② 不能部分使用 DISTINCT

DISTINCT 关键字应用于所有列而不仅是前置它的列。如果给出 SELECT DISTINCTvend_id, prod_price,除非指定的两个列都不同,否则所有行都将被检索出来。

6.限制结果
① 语法
  • **LIMIT ** 子句 ---- 返回第一行或前几行
  • LIMIT 起始行序数,返回的行数
  • eg1
    • SELECT 列名 FROM 表名 LIMIT 3,4;
    • 返回从行3开始的4行
    • 3 — 开始位置 ------ 行数也指下标序号,从0开始
    • 4 — 检索的行数
  • eg2
    • SELECT 列名 FROM 表名 LIMIT 5;
    • 返回不多于5行
    • 即从第0行开始
② 检索的行数超过已有的行数时

LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行), MySQL将只返回它能返回的那么多行。不会报错

③ IT 的替代语法

LIMIT 4 OFFEST 3 等同于 LIMIT 3,4

7.完全限定列名表名

用以区分不同数据库相同表名,以免出错

eg:

SELECT products.prod_name

FROM crashcource.products;


五、排序检索数据

1. 排序数据
① ORDER BY 子句
  • 取一个列或多个列的名字
  • 据此对输出进行排序
  • 位于 FROM 子句之后
子句:通常由一个关键字和所提供的数据组成
② eg:
  • SELECT prod_name
  • FROM products
  • ORDER BY prod_name;
2. 按多个列排序
① 使用语法
  • 指定列名,列名之间用逗号分开
  • 顺序即为语句中列名的顺序
② eg:
  • SELECT prod_name , prod_price
  • FROM products
  • ``WHERE prod_price = 2.50 ;`
  • 仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序
3. 指定排序方向
① 降序排序
  • DESC 关键字 — 只应用到位于其前面的列名

  • eg:

    • SELECT prod_name

      FROM products

      ORDER BY prod_name DESC;

② 升序排序
  • ASC 关键字
  • 升序排序是默认的
② 多个列排序
  • 若想对多个列进行降序排序,必须对每个列指定 DESC关键字

  • eg — 只对 prod_price 列以降序排序

    • SELECT prod_name

      FROM products

      ORDER BY prod_name DESC prod_name;

③大小写区分排序

默认 Aa等同

④ 获取列的最值

ORDER BY 子句最后加入 LIMIT 1


六、过滤数据

(一)、 使用 WHERE 子句

1. 搜索条件 == 过滤条件

只检索所需要的数据需要指定的搜索条件

2. WHERE 子句
  • 根据WHERE子句中指定的搜索条件进行过滤

  • WHERE 子句在表名(FROM 子句)之后给出

  • WHERE 子句在 ORDER BY 子句之前,否则会报错

  • eg:----- 相等测试

    • 代码块

      • SELECT prod_name , prod_price
      • FROM products
      • WHERE prod_price = 2.50 ;
    • 只检索两个列,不返回所有行,只返回 prod_price 值为 2.50 的

(二)、WHERE 子句操作符

1. WHERE 子句操作符
操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间
2. 检查单个值
(1) MySQL执行匹配时默认不区分大小写
  • eg:‘fuses’ 与 ‘Fuses’ 匹配
(2) 不匹配检查
  • 操作符 : <> , !=
  • 输出不等于所给值的数据
  • 引号的使用
    • 单引号限定字符串
    • 字符串类型的列需要使用限定引号
    • 数值类则不用
(3) 范围值检查
  • BETWEEN 操作符
  • 语法 : BETWEEN 开始值 AND 结束值
  • BETWEEN 匹配范围中所有值,包括指定的开始值和结束值
(4) 空值检查
  • NUll 无值。与字段包含0、空字符串或仅仅包含空格不同
  • 检查具有 NULL 值的列 — **IS NULL ** 子句

在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有 NULL 的行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mathison晨默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值