数据库基础知识——SELECT语句(排序检索数据)
SQL使⽤
SQL(发⾳为字母S-Q-L或sequel)是结构化查询语⾔(Structured Query Language)的缩写。SQL是⼀种专门⽤来与数据库通信的语⾔。
SQL 语⾔特点:
SQL 语⾔不区分⼤⼩写;
在命令⾏窗⼝的 SQL 语句要以分号 ; 结束。
为了下⾯的展⽰,我们创建了 crashcourse 数据库:
CREATE DATABASE crashcourse DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
crashcourse 是我⾃⼰设置的数据库的名称,下⾯的使⽤⽰例,都是使⽤这个数据库。
为了下⾯的展⽰,我们还需要为 crashcourse 数据库创建⼀些表和往表中插⼊⼀些记录,相关的 SQL ⽂件有:
创建表:
插⼊数据:
登录网页代码其中 SELECT 语句是我们最常⽤的,同时结合 ORDER BY ⼦句可以对返回的数据进⾏排序。
⼀、排序数据(ORDER BY ⼦句)
SELECT 语句返回的数据⼀般将以它在底层表中出现的顺序显⽰,此顺序将会因数据的更新或删除⽽受到MySQL重⽤回收存储空间的影响,如:
css鼠标经过的导航栏效果select prod_name from products;php正则替换script
为了明确地排序⽤SELECT语句检索出的数据,可使⽤ORDER BY⼦句:
1. 按单个列排序
select prod_name from products order by prod_name;
通过⾮选择列进⾏排序:通常,ORDER BY⼦句中使⽤的列将是为显⽰所选择的列。但是,实际上并不⼀定要这样,⽤⾮检索的列排序数据是完全合法的。2. 按多个列排序
select prod_id, prod_price, prod_name from products order by prod_price, prod_name;
上⾯的代码检索3个列,并按其中两个列对结果进⾏排序——⾸先按价格,然后再按名称排序。
对于上述例⼦中的输出,仅在多个⾏具有相同的prod_price值时才对产品按prod_name进⾏排序。如果prod_price列中所有的值都是唯⼀的,则不会按prod_name排序。
3. 指定排序⽅向
数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使⽤ORDER BY⼦句以降序(从Z到A)顺序排序。为了进⾏降序排序,必须指定 DESC 关键字。
select prod_id, prod_price, prod_name from products order by prod_price desc;
ztree官方文档DESC关键字只应⽤到直接位于其前⾯的列名。在上例中,只对prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排序,⽽prod_name列(在每个价格内)仍然按标准的升序排序。
在多个列上降序排序 如果想在多个列上进⾏降序排序,必须对每个列指定DESC关键字。
select prod_id, prod_price, prod_name from products order by prod_price desc, prod_name desc;
与DESC相反的关键字是ASC(ASCENDING),在升序排序时可以指定它。但实际上,ASC没有多⼤⽤处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。
4. ORDER BY 和 LIMIT 的组合
使⽤ORDER BY和LIMIT的组合,能够出⼀个列中最⾼或最低的值。mysql面试题基础知识
下⾯的例⼦演⽰如何出最昂贵物品的值:
select prod_price from products order by prod_price desc limit1;
prod_price DESC保证⾏是按照由最昂贵到最便宜检索的,⽽LIMIT 1告诉MySQL仅返回⼀⾏。
arraylist的特点ORDER BY⼦句的位置在给出ORDER BY⼦句时,应该保证它位于FROM⼦句之后。如果使⽤LIMIT,它必须位于ORDER BY之后。使⽤⼦句的次序不对将产⽣错误消息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。