热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql数据库的一些用法,mysql数据库常用语句

本文目录一览:1、MySql操作「数据查询」-20211222

本文目录一览:


  • 1、MySql操作「数据查询」-20211222


  • 2、如何使用MySQL数据库,MySQL的使用方法


  • 3、MySQL数据库必会技能,虚拟列的用法


  • 4、mysql使用教程?


  • 5、mysql建立的数据库怎么使用

MySql操作「数据查询」-20211222

# SELECT 数据查询

## 基础

显示如何使用简单的`select`语句查询单个表中的数据 使用`SELECT`语句从表或视图获取数据。

表由行和列组成,如电子表格。 通常,我们只希望看到子集行,列的子集或两者的组合。

SELECT语句的结果称为结果集,它是行列表,每行由相同数量的列组成。

select 语法

SELECT语句由以下列表中所述的几个子句组成:

1. SELECT 之后是逗号分隔列或星号(*)的列表,表示要返回所有列。

2. FROM 指定要查询数据的表或视图。

3. JOIN 根据某些连接条件从其他表中获取数据。

4. WHER E过滤结果集中的行。

5. GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。

6. HAVING 过滤器基于GROUP BY子句定义的小分组。

7. ORDER BY 指定用于排序的列的列表。

8. LIMIT 限制返回行的数量。

语句中的`SELECT`和`FROM`语句是必须的,其他部分是可选的。

`SELECT`语句允许通过在`SELECT`子句中指定逗号分隔列的列表来查询表的部分数据

建议显式获取数据的列,原因如下:

1. 使用星号(*)可能会返回不使用的列的数据。 它在MySQL数据库服务器和应用程序之间产生不必要的I/O磁盘和网络流量。

2. 如果明确指定列,则结果集更可预测并且更易于管理。 想象一下,当您使用星号(*)并且有人通过添加更多列来更改表格数据时,将会得到一个与预期不同的结果集。

3. 使用星号(*)可能会将敏感信息暴露给未经授权的用户

格式 `select 列筛选 form table where 行筛选`

还有一些有用的运算符可以在WHERE子句中使用来形成复杂的条件,例如:

BETWEEN 选择在给定范围之内的值。

LIKE 匹配基于模式匹配的值。

IN 指定值是否匹配列表中的任何值。

IS NULL 检查该值是否为NULL。

## SELECT 子查询

在一个查询过程中 嵌套另一个查询,子查询的结果作为外部查询的条件或者数据范围来使用。

分为 3 类:

1. where 型

- `select展示列名 from 表名 where 列名 运算符[in...] (select 对应列名 from ...)`

- 这个列名 和 对应列名 应该做到类型相同

- 如果不加入运算符 也可使用IN 这些类似的符号 - `select 展示列名 from 表名 where 列名 in (select 对应列名 from ...)`

- ex:

`select 展示列名 from 表名 where 列名 ALL(select 对应列名 from ....)`;

比子查询的值都大

`select 展示列名 from 表名 where 列名 ANY(select 对应列名 from ....);`

比子查询的任意一个值大

2. from 型

- `select 展示列名 from 表名 inner join (select 列名 from ...) 临时表名 on 条件;`

- 其中,select的子查询所得的表 为临时表,后跟临时表名,可在条件判断中指代

3. exist 型

- `select 展示列 from 表名 where exists (select 列名 from 表名 where 条件);`

- 将主查询的结果带入子查询进行条件判断和匹配,如果查询出结果即保留。

## 去重 DISTINCT

SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。`distinct` 实现查询不重复的数据

**DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户。**

使用 `DISTINCT` 关键字时需要注意以下几点:

- `DISTINCT` 关键字只能在 `SELECT` 语句中使用。

- 在对一个或多个字段去重时,`DISTINCT` 关键字必须在所有字段的最前面。

- 如果 `DISTINCT` 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。

## 指定别名 AS

### 1. 为表指定别名

1. 当表名很长的时候 或者 执行了一些特殊的查询的时候,为方便操作,可以为表指定一个别名,用以替代原来的名称

2. 语法.

3. `表名 as 别名` - 含义: - `表名` : 数据库中存储的数据表名称。

- `别名` : 查询的时候指定的新的名称。

- `as` : 此关键字 可以 省略,省略之后要将 `表名`与`别名`用 `空格` 分开

** *注意:表的别名不能与该数据库的其它表同名。字段的别名不能与该表的其它字段同名。在条件表达式中不能使用字段的别名,否则会出现“ERROR 1054 (42S22): Unknown column”这样的错误提示信息。* **

*** ex1:

***

### 2. 为字段指定别名

1. 在使用 SELECT 语句查询数据时,MySQL 会显示每个 SELECT 后面指定输出的字段。有时为了显示结果更加直观,我们可以为字段指定一个别名。

2. 语法:

3. `字段名 [AS] 别名`

- 含义:

- `字段名`:为数据表中字段定义的名称。

- `字段别名`:字段新的名称。

- `AS` 关键字可以省略,省略后需要将字段名和别名用空格隔开

** *注意:表别名只在执行查询时使用,并不在返回结果中显示。而字段定义别名之后,会返回给客户端显示,显示的字段为字段的别名* ** ***

ex2:

***

## 限制查询条数 LIMIT

1. LIMIT 关键字有 3 种使用方式,即

- `指定初始位置`、

- `不指定初始位置`

- `OFFSET 组合`使用

(。。。。。 我之前一直不知道, 只会使用 `limit 200`。。。。。)

### 指定初始位置

1. 语法

- `LIMIT 初始位置,记录数`

- 初始位置”表示从哪条记录开始显示;第一条记录的位置是 0,第二条记录的位置是 1。后面的记录依次类推。

- “记录数”表示显示记录的条数。

- *LIMIT 后的两个参数必须都是正整数。

* ex:tb_students_info 表中,使用 LIMIT 子句返回从第 4 条记录开始的行数为 5 的记录,SQL 语句和运行结果如下。

### 不指定初始位置

记录从第一条记录开始显示。显示记录的条数由 LIMIT 关键字指定。

1. 语法

- `LIMIT 5`

- `SELECT * FROM tb_students_info LIMIT 15;`

### LIMIT 和 OFFSET 组合使用

1. 语法

- `LIMIT 记录数 OFFSET 初始位置`

- 参数和 LIMIT 语法中参数含义相同,“初始位置”指定从哪条记录开始显示;“记录数”表示显示记录的条数。

该语句返回的是从第 4 条记录开始的之后的 5 条记录。即“ LIMIT 5 OFFSET 3 ”意思是获取从第 4 条记录开始的后面的 5 条记录,和“ LIMIT 3 , 5 ”返回的结果相同。

*** 2021-12-22 今天先学到这里 明天继续 MySql 的查询 学习

如何使用MySQL数据库,MySQL的使用方法

如何使用MySQL数据库,MySQL的使用方法

在Windows下,假如你的MySQL装在 D:\MySQL

就可以这样:

先切换到它的bin目录

cd D:\MySQL\bin\

D:\MySQL\binmysql -u root -p

接着输入你的root密码

接下来你就可以创建数据库、创建用户、创建修改表之类的操作(常用命令如下)。

查看现有数据库

mysql show databases;

创建数据库(假如数据库名为 mydb)

mysql create database mydb;

删除数据库(假如数据库名为 mydb)

mysql drop database accounts;

使用数据库(假如使用数据库 mydb)

mysql use mydb;

执行完使用数据库命令后,就可以对该数据库进行创建、修改、插入、删除表等操作,这些表的操作命令你可以到网上找找,不是很难的。一个数据库就相当于一个 Excel 文件,而表则相当于Excel文件的单元格,数据就是存放在表中。

MySQL数据库必会技能,虚拟列的用法

对于想要将自动生成的数据添加到表中的任何人来说, MySQL 虚拟列 是一个强大、易于使用和高级的功能。

INSERT 生成的列允许您在不使用and UPDATE 子句的情况下将自动生成的数据存储在表中。 这个有用的特性自 5.7 版 起就已成为 MySQL 的一部分,它代表了在生成数据时触发器的另一种方法。此外,生成的列可以帮助您更轻松、更高效地查询。

虚拟列 列类似于普通列,但您不能手动更改其值。这是因为表达式定义了如何根据从同一行的其他列中读取的其他值来生成生成列的值。因此,生成的列在表的域内工作,其定义不能涉及 JOIN 语句。

换句话说,您可以将生成的列视为一种视图,但仅限于列。请注意,生成的列与 SQL 触发器 不同,您只能在使用 CREATE TABLE or语句时定义它们,语法如下: ALTER TABLE

该 AS (generated_column_expression) 子句指定要添加或更新到表中的列是生成的列。定义 MySQL 将用于计算列值的 generation_expression 表达式,它不能引用另一个生成的列或除当前表的列之外的任何内容。另外,请注意生成表达式只能涉及不可变函数。例如,您不能在生成的列表达式定义中使用返回当前日期的函数,因为它是一个可变函数。

您还可以在关键字前面 AS 加上 GENERATED ALWAYS 关键字以使生成的列的性质更加明确,但这是可选的。然后,您可以指示生成列的类型是 VIRTUAL 还是 STORED 。您将在下面的章节中了解这两种类型之间的区别。默认情况下,如果没有在查询中明确指定,MySQL 会将生成的列标记为 VIRTUAL .

现在让我们看看生成的列语法在 CREATE TABLE 查询中的作用:

在此示例中,该 full_name 列将自动存储 first_name 和 last_name 列的连接。

如前所述,您可以将生成的列定义为 VIRTUAL 或 STORED。现在让我们仔细看看这两种类型。

MySQL 不存储标记为 VIRTUAL 的 虚拟列 。这意味着 MySQL 在需要时动态评估其值。 BEFORE 这通常在触发任何查询后立即发生。换句话说,虚拟生成的列不占用存储空间。

MySQL 存储任何生成的标记为 STORED 的列。这意味着每次插入或更新行时,MySQL 都会评估其值并将其存储在磁盘上。换句话说,存储列需要存储空间,就好像它是普通列一样。

现在让我们进一步了解虚拟列和存储生成列的优缺点。

优点

缺点

优点

缺点

采用生成的列有几个原因,但以下三个是最重要的。

如您所见,您可以通过将四列与以下生成的列聚合来轻松生成此数据字段:

这将产生:

在这种情况下,生成的列使您能够直接在数据库级别标准化数据字段格式。此外,存储生成的列避免了每次需要时都构造此字段的不可避免的开销。

通常,您使用网站 URL 中的资源 ID 或REST API来检索您需要的数据。但是公开暴露您的 ID 可能会带来安全问题。当您发现自己使用自动增量 ID 时尤其如此,这很容易预测并使抓取或机器人攻击更容易。

为避免这种情况,您可以考虑通过使用自动生成的、随机的、更安全的公共 ID 来隐藏您的原始 ID。您可以通过对您的 ID 进行散列处理,使用虚拟生成的列来实现这一点,如下所示:

请注意,为避免生成已知的哈希值,您可以将您的 ID 与特殊关键字连接起来。 在此处了解有关 MySQL 加密和压缩功能的更多信息。

过滤数据时,有些列比其他列更有用。此外,您通常必须更改存储在列中的值的表示形式,以使过滤更简单或更直观。您可以定义一个有用的生成列来存储以所需格式执行过滤所需的信息,而不是在每个过滤器查询中执行此操作。

例如,您可以定义一个生成的列,以便更轻松地找到篮球队中的球员,如下所示:

这样的列将产生:

如前所述,您只能在表中使用生成的列。此外,它们只能涉及不可变函数,并且MySQL 生成它们的值以响应 INSERT or UPDATE 查询。另一方面,触发器是 MySQL 自动执行的存储程序,每当与特定表关联的 或 事件发生 INSERT 时 UPDATE 。 DELETE 换句话说,触发器可以涉及多个表和所有 MySQL 函数。与生成的列相比,这使它们成为更完整的解决方案。同时,MySQL 触发器本质上使用和定义更复杂,也比生成的列慢。

mysql使用教程?

MySQL数据库使用教程介绍

完整 MySQL 操作详见:[MySQL攻略]MySQL数据库使用教程介绍

什么叫MySQL数据库?

数据库(Database)是依照算法设计来机构、储存和管理数据信息的仓库。每一个数据库都具有一个或多个API用以创建,访问,管理,检索和拷贝存储的数据信息。

如今大家用的大多数是关系型数据库管理系统(RDBMS)来储存和管理大量数据。所谓关系型数据库,就是以关系模型为基础的数据库,凭借结合集合代数等数学概念来对数据库中的数据进行处理。

MySQL是时下最热门的关系型数据库管理系统之一,本教程将会讲解MySQL的基础知识,并帮助大家熟练应用MySQL数据库。

MySQL教程-RDBMS专业术语

在开始学习MySQL数据库前,使我们先掌握下RDBMS的一些专业术语:

数据库:数据库是一些关系表的结合。

数据表:数据的矩阵。在一个数据库中的表看上去像一个简易的excel表。

列:一列(数据元素)包括了同类型的数据。

行:一行(元组/纪录)是一组有关的数据。

冗余:储存二倍数据,性能会有所损失,但信息安全性有所提高。

主键:主键是唯一的。一个数据表中只有包含一个主键。

外键:用于关联两个表。

索引:用数据库索引可快速访问数据表中的特定信息。索引是对数据库表格中一列或多列的值作排列的一种构造方式。类似书本的目录。

MySQL教程-基础操作

进到数据库:mysql -uroot -p,登陆密码立即回车键

退出数据库:quit或是exit

查询版本号:select version();

获取当前时间:select now();

mysql建立的数据库怎么使用

mysql创建数据库命令:1.show databases //显示数据库

2.create database student(数据库名) //创建数据库student

3.use student //进入student数据库

4.create table studinfo(表名) (sno int primary key,sage int(2))

............ // 创建表studinfo

5.show table //显示表

..............

6.drop database student //删除student数据库


推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了MySQL数据库中常用的函数,包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以方便地处理表中的数据,实现用户的操作需求。同时,还介绍了这些函数的使用范围和作用,以及在SELECT、INSERT、UPDATE、DELETE语句中的应用。其中,ASCII函数用于返回字符串的第一个字符的ASCII码。 ... [详细]
author-avatar
木头人2幸福
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有