mysql 必知必会整理—sql 简单语句[二]

前言

简单整理一下sql 排序与过滤。

正文

在这里需要创建一下一个数据库实例。

为了方便直接用docker 创建一下啊,方便简洁。

https://hub.docker.com/_/mysql

按照上面安装一下。

有几个基本的数据库状态需要了解一下。

显示有多少数据库:

show databases:

use gogs;

show tables;

show columns from version.

SHOW COLUMNS 要求给出一个表名(这个例子中的 FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto_increment)。

简单查询语句

简单介绍一下查询语句。

检索单列:

SQL语句和大小写 请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。

这里可以养好习惯,将关键字进行大写,然后将表名和列名进行小写。

使用空格 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

检索多个列:

在这里面通过逗号隔开。

如果需要列出全部的列,可以通过select * from version;

使用通配符 一般,除非你确实需要表中的每个列,否则最好别使用*通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

如果想检测出不同的行,那么可以使用ditinct,这样会进行去重。

不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。

如果查询出来10行,但是我们只需要5,那么可以使用limit。

比如 select * from version limit 5;

这样就只会取出5条来了。

然后呢,这个limit 有两个字段可以填写。

比如:

select * from version limit 5,5;

LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

这里的返回的5行,是不包括第5行的。

所以对于mysql 来说分页真的是太简单了。

MySQL 5的LIMIT语法 LIMIT 3, 4的含义是从行4开始的3行还是从行3开始的4行?如前所述,它的意思是从行3开始的4行,这容易把人搞糊涂。 由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

所以在写code中,最好使用offset 这个关键字,工程以通用为第一要素。

有一个问题,假设有两张表都有列名a1。

那么select a1 from table1,table2,这个a1 到底是table1还是table2呢?

所以需要我们完全限定表名:select table1.a1 from table1,table2

posted @ 2021-09-21 09:47  敖毛毛  阅读(127)  评论(0编辑  收藏  举报