1. 程式人生 > >SQL學習筆記(一)索引記錄

SQL學習筆記(一)索引記錄

首先還是老規矩,把用到的表貼出來,表名emp

問題1. 

在where子句中不能直接使用別名,這是因為where的執行順序在select之前,也就是說,在通過where子句對資料進行篩選的時候,別名並不存在。

問題2. 在select語句中使用條件邏輯

在示例表中   SAL  欄位表示工資,如果員工的工資少於2000,則返回NO,如果超過4000,則返回YES,否則返回OK,這樣的需求類似於高階語言中的IF-ELSE語句,那麼這個功能如何通過SQL來實現呢?

通過case表示式(關於case表示式的介紹,在前面的文章中有提到)

SELECT ename,sal,
case when sal < 2000 then 'NO'
     when sal > 4000 then 'YES'
     else 'OK'
end as STATUS
from emp;

問題3.隨機返回若干行記錄

從表中獲取特定數量的隨機記錄

SELECT ename,job
from emp
ORDER BY RAND() limit 5;

在這裡使用了ORDER BY子句,可能有些人會有疑問,在emp表中並沒有出現供ORDER BY用來排序的欄位,那麼排序是如何進行的呢?原因飲食ORDER BY子句可以接受一個函式的返回值,並利用該返回值改變結果集的順序。

我們換一種形式來展示

SELECT ename,job,RAND() as rand
from emp
ORDER BY rand limit 5;

這裡我們將隨機值進行輸出,可以看到每一行資料按照隨機值升序排序之後,取前五行。

問題4.把NULL值轉換為實際值

實際生產中,我們不希望從資料庫中拿出來的資料是NULL值,所以需要把NULL值做一些轉換,當值為NULL值轉換為特定的值,避免因為NULL而差生意料之外的問題。

1.通過coalesce函式,該函式能返回引數列表中第一個非空的值

SELECT ename,job,comm,COALESCE(comm,0)
from emp;

2.通過case表示式對comm進行判斷,如果是null,則轉換成別的值。

以上程式碼在MYSQL資料庫測試有效。

相關推薦

SQL學習筆記索引記錄

首先還是老規矩,把用到的表貼出來,表名emp 問題1.  在where子句中不能直接使用別名,這是因為where的執行順序在select之前,也就是說,在通過where子句對資料進行篩選的時候,別名並不存在。 問題2. 在select語句中使用條件邏輯 在示例表中

C++學習筆記——leetcode記錄

C++學習筆記(一)——leetcode記錄 944. Delete Columns to Make Sorted [Easy] 852. Peak Index in a Mountain Array [Easy] 942. DI String

SQL入門經典(第5版)學習筆記

1.縮寫“SQL”的含義是什麼?stuctured query language 結構化查詢語言 2.SQL命令的6個主要類別是什麼?事務控制命令 commit 資料定義語言 create table 資料操作語言 update 資料查詢語言 select 資料管理命令(進行審計分析 start audit

Oracle學習筆記——B-Tree索引

        目錄是索引的一個最好的例子,每條目錄包含對應章節的標題和頁碼,類比索引的每條索引項包含了資料記錄的某些鍵值組合幷包含了對應資料塊的訪問路徑(rowid)。目錄的存在就是為了快速定位到感興趣的內容,索引的存在也是問了加快對錶資料的隨機訪問。         常

python框架之 Tornado 學習筆記

tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https

Scala學習筆記編程基礎

大數據 上一個 extends 移除 condition api arr 調用方法 tab 強烈推薦參考該課程:http://www.runoob.com/scala/scala-tutorial.html 1. Scala概述 1.1. 什麽是Scala Scala

3D Game Programming withDX11 學習筆記 數學知識總結

表示 圖形 http 根據 轉置 元素 material -s com   在圖形學中,數學是不可或缺的一部分,所以本書最開始的部分就是數學知識的復習。在圖形學中,最常用的是矢量和矩陣,所以我根據前面三個章節的數學知識,總結一下數學知識。 一、矢量   數學中的矢量,擁有

系統分析與設計學習筆記

學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程?   “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所

最大熵學習筆記預備知識

color wrap targe dsm entropy plus 文件 eight 相關鏈接 生活中我們常常聽到人們說“不要把雞蛋放到一個籃子裏”。這樣能夠減少風險。深究一下,這是為什麽呢?事實上,這裏邊包括了所謂的最大熵原理(The Maxim

Nginx模塊之Nginx-Ts-Module學習筆記搶險體驗

學習筆記 體驗 nginx模塊 int images clas tps gin issues 1、通過HTTP接收MPEG-TS2、生產和管理Live HLS 3、按照官方的編譯和配置,當然了我是第一次編譯沒有通過,在作者重新調整下,編譯成功,感謝:@arut https:

jq學習筆記

簡單 ren 當前 一個 text 互斥 元素 如果 property 1 .attr() 與 .removeAttr()方法 - atr()方法用來獲取和設置元素屬性 attr()有4個表達式: attr(傳入屬性名):獲取屬性的值 attr(屬性名, 屬性

Redis學習筆記關於在windows64位環境下的安裝學習使用

客戶端 mas key-value 錯誤 services 再次 基準 alt 類型 前言 由於工作需要,目前我正在學習使用Redis。我當時學習Redis就從網上下載了點資料就開始學習了。入門看的是《REDIS入門指南》,這本書個人覺得很適合新手用來學習接觸。根據書上的引

Memcache 學習筆記----Memcache — Linux部署

工作 apach sch trick 解壓 font ash 一個 鍵值   Memcache 一、Memcache簡介(內容摘自 --百度百科)   memcache是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但目前被許多網

HtmlParser學習筆記-- 創建Parser對象

nco 修改 英文 text aid 意思 charset 網頁 第一個 首先 ,介紹下HTMLParser的核心類,org.htmlparser.Parser類,這個類實際完成了對於HTML頁面的分析工作。主要的構造函數如下: public Parser ();

Python 學習筆記

pytho oat 變量 情況 class 弱類型 定義 寫代碼 基本上 為什麽學習Python?因為Python 的用處太多了。 本想學會一們語言就好好的維持下去,但是最近Python太火啦,什麽人工智能、網絡爬蟲的,耳濡目染的,心想多學習一些東西總是好的,於是就抽空學習

thphp5.0學習筆記

mic tel 序號 app clas world char p s 庫類 1.目錄結構: 其中thinkphp子目錄是框架核心目錄 thinkphp結構: 2.入口文件 默認自帶的入口文件位於public/index.php 應用目錄為application,其結構

Unity Shader學習筆記坐標變換

directx 渲染 系列 約束 shade ace cnblogs 相機 它的 基本問題   試想我們的美術做了一個3D模型,然後渲染引擎把模型渲染到屏幕上。我們還可以選定不同的視角,模擬不同的光照條件去觀察模型。現在來分析一下這個過程。如果說我們把這個過程看成一個函數,

Django學習筆記——安裝,創建項目,配置

lvs csv oot url root import 方式 配置文件 函數 瘋狂的暑假學習之 Django學習筆記(一) 教材 書《The Django Book》 視頻:csvt Django視頻 1.創建項目

ELK學習筆記安裝Elasticsearch、Kibana、Logstash和X-Pack

成功 前端 功能 靈活 日誌分析 傳統 開發人員 收集 還在 最近在學習ELK的時候踩了不少的坑,特此寫個筆記記錄下學習過程。 日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日

移動端學習筆記

標簽設置 裏的 none trait 關於 http width 面具 屏幕 <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=.5,minimum-s