SQL基礎(chǔ)<二>

  • 回顧
    上周我們掌握了用SQL語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)以及數(shù)據(jù)表的方法,首先我們嘗試創(chuàng)建數(shù)據(jù)庫(kù)和表用于今天的學(xué)習(xí)。
.open demo #以創(chuàng)建的方式打開
-- 創(chuàng)建表格
CREATE TABLE Shohin 
(shohin_id CHAR(10) PRIMARY KEY NOT NULL,
shohin_mei VARCHAR(100) NOT NULL,
shohin_bunrui VARCHAR(32) NOT NULL,
hanbai_tanka INTEGER,
shiire_tanka INTEGER,
torokubi DATE);
BEGIN TRANSACTION;-- 開啟事務(wù)
-- 插入數(shù)據(jù)
INSERT INTO Shohin VALUES ('0001','T恤衫','衣服',1000,500,'2009-09-20');
INSERT INTO Shohin VALUES ('0002','打孔器','辦公用品',500,320,'2009-09-11');
INSERT INTO Shohin VALUES ('0003','運(yùn)動(dòng)T恤','衣服',4000,2800,NULL);
INSERT INTO Shohin VALUES ('0004','菜刀','廚房用具',3000,2800,'2009-09-20');
INSERT INTO Shohin VALUES ('0005','高壓鍋','廚房用具',6800,5000,'2009-01-15');
INSERT INTO Shohin VALUES ('0006','叉子','廚房用具',500,NULL,'2009-09-20');
INSERT INTO Shohin VALUES ('0007','擦菜板','廚房用具',880,790,'2008-04-28');
INSERT INTO Shohin VALUES ('0008','圓珠筆','辦公用品',100,NULL,'2009-11-11');
COMMIT; -- 提交數(shù)據(jù)

查詢基礎(chǔ)

  • 從表中查詢數(shù)據(jù)時(shí)需要使用SELECT語(yǔ)句,表示從表中選出必要數(shù)據(jù)的意思。
  • 對(duì)于創(chuàng)建好的數(shù)據(jù)表,我們首先肯定希望整體了解數(shù)據(jù)樣式。
    SELECT * FROM Shohin;
    很多數(shù)據(jù)庫(kù)會(huì)顯示列名,sqlite好像不會(huì)
  • 有些時(shí)候,比如數(shù)據(jù)量過大或者特定的任務(wù)等情況,我們需要選取特定的某列或多列來進(jìn)行查看。
    SELECT shohin_mei FROM Shohin;
    SELECT shohin_id,shohin_mei,shohin_bunrui FROM Shoin;
  • 對(duì)于我們例子中表的列名,像shohin_id,shohin_mei,shiire_tanka, ···,意義不明確不直觀,容易影響我們對(duì)輸出結(jié)果的理解。(很多數(shù)據(jù)庫(kù)查詢結(jié)果的第一行都是列名),因此我們可以在查詢語(yǔ)句中給列設(shè)定別名,這樣輸出結(jié)果的第一列就是我們?cè)O(shè)定的別名了。
SELECT shohin_id AS id,
               shohin_mei AS name,
               shiire_tanka AS "進(jìn)貨單價(jià)"  -- 修改別名為中文時(shí)必要加雙引號(hào)(單引號(hào)不行)
FROM Shohin;
  • 刪除重復(fù)信息,就好比如果我們想要知道所有的商品都屬于哪幾種時(shí)應(yīng)該怎么做呢?
    SELECT DISTINCT shohin_bunrui FROM Shohin;

    當(dāng)然我們也可以對(duì)多列甚至所有列進(jìn)行匹配尋找重復(fù)項(xiàng)然后刪除。
  • 有些時(shí)候,我們可能希望查詢的并不是某些列的所有數(shù)據(jù),而是這些列中滿足某些條件的數(shù)據(jù),這是我們應(yīng)該使用WHERE語(yǔ)句。
SELECT shohin_mei,shohin_bunrui
FROM Shohin
WHERE shohin_bunrui = '衣服';
  • SQL語(yǔ)句中可以使用計(jì)算表達(dá)式(運(yùn)算符)或者常數(shù)(字符串常數(shù)、日期常數(shù)、數(shù)字常數(shù)),比如現(xiàn)在希望可以將商品、單價(jià)(hanbai_tanka)以及單價(jià)的兩倍打印出來。
SELECT shohin_mei,hanbai_tanka,
                hanbai_tanka * 2 AS hanbai_tanka_x2,
                38 AS id               
FROM Shohin;
  • 比較運(yùn)算符、邏輯運(yùn)算符
    可用于WHERE語(yǔ)句判斷條件時(shí)使用,=、>、<、<>、>=、<=、AND、OR、NOT。舉幾個(gè)簡(jiǎn)單例子。
SELECT shohin_mei FROM Shohin
WHERE shiire_tanka <> 2800;
SELECT shohin_mei,shohin_bunrui FROM Shohin
WHERE shohin_bunrui = '辦公用品'
  AND (torokubi = '2009-09-11'
       OR torokubi = '2009-09-20');
  • 特殊的NULL值
    當(dāng)表中數(shù)據(jù)空缺時(shí),表示為NULL。請(qǐng)記住所有包含NULL的算術(shù)運(yùn)算,結(jié)果都為NULL,同樣的NULL也不能進(jìn)行比較運(yùn)算。那我們?cè)趺春Y選數(shù)據(jù)表中的NULL?可以使用IS NULL或者IS NOT NULL運(yùn)算符。
SELECT shohin_mei,shiire_tanka
FROM Shohin
WHERE shiire_tanka IS NULL;
  • SQL的邏輯運(yùn)算為三值邏輯,包括真,假和UNKNOWN(NULL)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • SQL SELECT 語(yǔ)句 一、查詢SQL SELECT 語(yǔ)法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,993評(píng)論 0 33
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,627評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,995評(píng)論 0 11
  • 經(jīng)常有父母跑來吐槽: 孩子玩具太多了,根本沒地方收??! 家里跟雜貨鋪似的,只要有了娃,啥日系北歐風(fēng),那就是別人家的...
    妍醬的整理收納閱讀 1,110評(píng)論 0 7
  • 作者 yoyoyosiyu@126.com 時(shí)間 2017年9月 簡(jiǎn)述 這段時(shí)間一直在不斷的嘗試配置和使用Spri...
    simonzeng閱讀 671評(píng)論 0 0

友情鏈接更多精彩內(nèi)容