SQL 必知必会(学习笔记一)

SQL 必知必会(学习笔记一)

了解SQL

大一的时候有开始接触过Mysql,下载下来完了下,创建root账号登录登出权限,接着搞了下数据库create DATABASE ,然后求知欲不是很强,弄了一个helloworld就止步于此了
一直到后面两门课程设计即使用了Mysql都直接用的别人现成的.sql文件,毕业设计就更简单了,mongodb有手就行。存的也是json,demo就几条数据用着还挺爽。

工作了就不行了,公司用的就是mysql,刚开始还好,写的都是内存相关,基本都没接触到数据库内容。

直到有一天我写了个 致命功能,误用write和update,我发现的时候已经在现网已经运行了一段时间,这个问题会导致用户的数据异常,更疯狂的是当时我为了改这个bug还差点误删了其他用户的数据,虽然后面都一一补救回来了,但是这个事情确实使我震撼住了,以后凡是涉及到数据库的操作一定要小心。正好的是今天需要找回一个用户的数据,我发现我对sql可以说一窍不通,百度了一条正确的语句成功搞定这个任务了。说着就今天就趁此机会深入学习了sql

检索数据

使用SELECT语句来检索

单列

SELECT prod_name
FROM Products;

多列

SELECT prod_id,prod_name,prod_price
FROM Products;

所有列

SELECT *
FROM Products;

是通配符*,代表返回表中所有列。

  • 检索不同的值
SELECT DISTINCT vend_id
FROM Products;

只返回不同(具有唯一性)的vend_id行。如果需要使用DISTINCT关键字,必须放在列名的前面,并且作用于所有的列

  • 找对应的行
SELECT prod_name
FROM Products
WHERE ROWNUM <=5;

小于五的行

排序检索数据

  • 单列
    前面使用的SELECET检索出来的数据是无序的,为了明确排序用SELECT语句检索出的数据,使用ORDER BY子句取一个或者多个列的名字
    从A_Z是默认的排序顺序
SELECT prod_name
FROM Products
ORDER BY prod_name

ORDER BY必须放在末尾

  • 多列
SELECT prod_id, prod_price,prod_name
FROM Products
ORDER BY prod_price,prod_name

优先按照prod_price排序,若相同按照prod_name排序

  • 除了按照名字指出排序顺序以外,还可以使用相对列位置进行
  • ORDER BY 2,3; 和上面的命令实现了同样的效果(不建议使用)

若要降序(Z_A),需要指定DESC关键字

SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC;

按照价格降序排序(最贵的将会排在最前面)

DESC只应用到直接位于他前面的列名。如

ORDER BY prod_price DESC,prod_name;

这里的prod_price 将会按照降序排列,但是相同的价格,会按照prod_name 升序排列

posted @ 2022-03-01 00:38  CeliaChu207  阅读(63)  评论(0编辑  收藏  举报