加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MySQL必知必会 笔记(二)

发布时间:2022-10-14 14:31:02 所属栏目:MsSql教程 来源:转载
导读: 笔记对应书本的四五六章
「written by Talaxy on 2/22/20」
SELECT语句
最经常使用的SQL语句就是SELECT语句了,它的用途是从一个或多个表中检索信息。
为了使用SELECT检索数据,必须至少给

笔记对应书本的四五六章

「written by Talaxy on 2/22/20」

SELECT语句

最经常使用的SQL语句就是SELECT语句了,它的用途是从一个或多个表中检索信息。

为了使用SELECT检索数据,必须至少给出两条信息:

检索单个列

从表中获得一个列 select 列名 from 表名;

如果没有明确排序查询结果,则返回的数据的顺序没有特殊意义

多条SQL语句必须以分号间隔。

MySQL和多数DBMS一样,不需要在单条SQL语句后加分号。

但如果使用的是mysql命令行,必须加上分号来结束SQL语句。

SQL语句不区分大小写。但许多SQL开发人员喜欢对SQL关键字使用大写,对列和表名使用小写,使得提高阅读性。

(注意:标识符,即数据库名、表名、列名,在MySQL4.1之前是区分大小写的)

一行SQL语句可以拆分为几行来写

检索多个列

select 列一, 列二, 列三, ... from 表名;

检索所有列

select * from 表名;

如果不是真的需要,最好不要用*通配符,检索不需要的列通常会降低检索和应用程序的性能

可以用*通配符来查询名字未知的列

检索不同的行(纪录)

如果不想要每个值每次都出现(去重):

select distinct 列名 from 表名;

distinct关键字必须放在所有列名之前

限制结果

如果只要返回前几行:

select 列名 from 表名 limit 行数;

这里的行数是指最大行数

返回从第几行开始后的几行:

select 列名 from 表名 limit 开始行数, 行数;

这里第一个数是开始位置,第一个位置是0,第二个数是要检索的行数。比如 "limit 1, 1" 会检索出第二行而不是第一行

MySQL5也可以这样写来提高阅读性:

select 列名 from 表名 limit 开始行数 offset 行数;

使用完全限定的表名

select 表名.列名 from 数据库名.列名;

这个语句和最开始的SELECT语句效果相同,但有些情况下需要这么写,以后章节会提到。

排序数据子句(clause):

SQL语句由子句构成,有些子句是必需的mssql 按关键字排序,有的是可选的。一个子句通常由一个关键字

对指定列排序(字典排序)输出:

select 列名 from 表名 order by 表名;

按多个列排序

select 列一, 列二, 列三, ...
from 表名
order by 列一, 列二, ... ;

ORDER BY后列的顺序为排序优先级顺序,由高到低

指定排序方向

select 列一, 列二, 列三, ...
from 表名
order by 列一 [desc], 列二 [desc], ... ;

[]包含的内容为可选项

若要对指定的列排序设为降序,在列的后面加desc即可。每个列后都可以加desc。

使用ORDER BY和LIMIT的组合,能找出第一个列中最高或最低的值:

select 列名 from 表名
order by 列名
limit 1;

使用WHERE子句

检索时可能会需要过滤出需要的信息。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)

select 列一, 列二, 列三, ... from 表名
where 条件;

条件可以是判等,比如 "列二 = 2.5"

尽量使用SQL过滤而非手动过滤,手动过滤会让服务器发送多余的数据,导致网络带宽的浪费。

在同时使用ORDER BY和WHERE子句时,应让WHERE在前,否则会产生错误

WHERE子句操作符

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!