日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

通俗讲解和学习SQL

發(fā)布時(shí)間:2025/3/12 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通俗讲解和学习SQL 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源:公眾號(hào)【杰哥的IT之旅】
作者:三笠
ID:Jake_Internet

前言

SQL是什么?

官方解釋: SQL (Structured Query Language:結(jié)構(gòu)化查詢語言) 是用于管理關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。

SQL能用來干什么?

通俗的講: 讓您可以訪問和處理數(shù)據(jù)庫,包括數(shù)據(jù)插入、查詢、更新和刪除。

SQL

下面讓我們看看小美是如何零基礎(chǔ)學(xué)習(xí)SQL的:

Lucifer,最新領(lǐng)導(dǎo)讓我負(fù)責(zé)數(shù)據(jù)庫開發(fā),需要寫SQL,但是我零基礎(chǔ)沒學(xué)過,有辦法快速入門嗎?

小美啊,SQL語言其實(shí)入門不難,我先來教你最簡(jiǎn)單的增刪改查基礎(chǔ)吧。

好的,我試試看,奧力給。

Ok,那我們先來一個(gè)最簡(jiǎn)單常用的SQL語句DUAL查詢:SELECT SYSDATE FROM DUAL;

sysdate

使用這個(gè)SQL語句可以查看數(shù)據(jù)庫當(dāng)前時(shí)間,當(dāng)然也可以把 SYSDATE 換成任意東西。

例如:

計(jì)算器:SELECT 365 * 24 FROM dual;

計(jì)算器

這個(gè)SQL我們?cè)陂_發(fā)中會(huì)經(jīng)常用到,作為入門第一個(gè)SQL輕松有趣。小美,你覺得難嗎?

這個(gè)太實(shí)用了,以后計(jì)算器和日歷都可以省了,哈哈哈。

是的,其實(shí)我們剛剛已經(jīng)不經(jīng)意的學(xué)習(xí)了SQL語言增刪改查中的?查?操作了。接下來,我要介紹一個(gè)新的對(duì)象:表?:是相關(guān)的數(shù)據(jù)項(xiàng)的集合,它由列和行組成。通俗的講,數(shù)據(jù)庫相當(dāng)于圖書館,表就類似于其中的一個(gè)個(gè)書架,表數(shù)據(jù)就類似于一本本書。我們查詢數(shù)據(jù)庫表的數(shù)據(jù),就好比我們進(jìn)入圖書館去找一本喜歡的書。我這么說,你能理解嗎?

查?的基本語法:select * from?表名;

可以可以,這個(gè)比喻我一下子就聽懂了,原來數(shù)據(jù)庫查詢是這樣的,那表是怎么創(chuàng)建的呢?

不要著急,先來介紹一下數(shù)據(jù)庫中最常用的3個(gè)數(shù)據(jù)類型:NUMBER,VARCHAR2,DATE,分別為數(shù)字型,字符型,日期型。顧名思義,即用來定義表中列字段用來存放數(shù)據(jù)的類型。

數(shù)據(jù)類型

嗯嗯,這個(gè)能理解,跟java,C 好像有些相似。

嗯嗯。理解了這個(gè),就可以開始建表了,現(xiàn)在來創(chuàng)建一個(gè)簡(jiǎn)單的圖書館書架表。

CREATE?TABLE?bookshelf ( BOOK_ID?NUMBER, BOOK_NAME?VARCHAR2(100), BOOK_TYPE?VARCHAR2(100), AUTHOR?VARCHAR2(100), INTIME?DATE );

表名為:bookshelf,有列:圖書id,圖書名稱,圖書類型,作者,入庫時(shí)間。通過上面學(xué)習(xí)的 SELECT語法,來查詢一下這張表:

SELECT * FROM bookshelf;

查詢圖書表

可以發(fā)現(xiàn),新建的bookshelf表沒有任何記錄。現(xiàn)在,圖書館里已經(jīng)增加一個(gè)空的書架,是不是需要將書放入書架上呢?這時(shí)就需要用到 操作了。

嗯嗯,很形象,感覺自己就像個(gè)圖書管理員一樣,哈哈哈。

哈哈,沒錯(cuò),我們數(shù)據(jù)庫管理員跟圖書管理員可以說是異曲同工。好了,繼續(xù)說放書吧,現(xiàn)在假設(shè)有一本書《飄》,作者:瑪格麗特·米切爾,類型:長(zhǎng)篇小說。現(xiàn)在通過?INSERT?將這本書放入書架上:

INSERT?INTO?bookshelf? (book_id, book_name, book_type, author, intime) VALUES (1, '飄', '長(zhǎng)篇小說', '瑪格麗特·米切爾', SYSDATE); COMMIT;

的基本語法:insert into 表名 (需要插入的列名,用逗號(hào)隔開) values (對(duì)應(yīng)列名的值);

插入數(shù)據(jù)

通過sql查詢發(fā)現(xiàn),這本書《飄》已經(jīng)放入了書架上,可供大家借用和查看。

太形象了,那如果我把書的作者寫錯(cuò)了,那怎么辦呢?再插入一條嗎?

這個(gè)問題問的很好,因?yàn)槿藶榈牟僮骺倳?huì)存在誤差,因此提出了?改?和 ?刪?兩種操作。

的基本語法:UPDATE 表名 SET 列名 = 新的值;

的基本語法:DELETE FROM 表名;

現(xiàn)在來模擬一下場(chǎng)景:

1、修改作者名:

UPDATE?bookshelf?SET?author='Margaret?Mitchell'; COMMIT;
修改作者名

2、下架圖書:

DELETE?FROM?bookshelf; COMMIT;
圖書下架

通過以上兩個(gè)場(chǎng)景,演示了 和 ? 兩種操作。

lucifer,你講的很明了,我現(xiàn)在已經(jīng)懂了增刪改查四種操作了,迫不及待想要?jiǎng)邮珠_始操作了!

小美,先別急,你沒有發(fā)現(xiàn)一個(gè)嚴(yán)重的問題嗎?如果書架上不止一本書呢?那你怎么對(duì)指定的那本書進(jìn)行操作呢?有思考過嗎?

對(duì)哦,上面都是演示的一本書,如果有多本書,是不是也有對(duì)應(yīng)的操作可以來篩選呢?

沒錯(cuò),很聰明。現(xiàn)在隆重有請(qǐng)?WHERE?查詢條件登場(chǎng)。正如上面所說,WHERE 子句用于提取那些滿足指定條件的記錄




舉個(gè)栗子

先上架3本書:

INSERT?INTO?bookshelf?(book_id,book_name,book_type,author,intime)?VALUES?(1,'飄','長(zhǎng)篇小說','瑪格麗特·米切爾',SYSDATE); INSERT?INTO?bookshelf?(book_id,book_name,book_type,author,intime)?VALUES?(2,'傾城之戀','愛情小說','張愛玲',SYSDATE); INSERT?INTO?bookshelf?(book_id,book_name,book_type,author,intime)?VALUES?(3,'從你的全世界路過','短篇小說','張嘉佳',SYSDATE); COMMIT;
插入數(shù)據(jù)

查看《傾城之戀》:

SELECT?*?FROM?bookshelf?WHERE?BOOK_NAME?=?'傾城之戀';
查看《傾城之戀》

更新《飄》:

UPDATE?bookshelf?SET?author='Margaret?Mitchell'?WHERE?book_name?=?'飄'; COMMIT;
更新《飄》

刪除《從你的全世界路過》:

DELETE?FROM?bookshelf?WHERE?book_name?=?'從你的全世界路過'; COMMIT;
刪除《從你的全世界路過》

通過上面的幾個(gè)栗子????,應(yīng)該能很好的理解 WHERE 查詢條件的使用了。

懂了懂了,lucifer,我現(xiàn)在是不是可以去開發(fā)了?好像練練手啊!!!

嗯。現(xiàn)在只能說是入門了,會(huì)簡(jiǎn)單的增刪改查是數(shù)據(jù)庫開發(fā)的第一部,所有的數(shù)據(jù)庫操作都是基于SQL語言的。

好的好的。有問題了,我在繼續(xù)問你,謝謝lucifer!!!Thanks?(・ω・)ノ。

另外,這跟大家分享三個(gè)一句SQL畫圖的趣味小玩意兒:

五角星:

WITH?a?AS(SELECT?DISTINCT?round(SUM(x)?over(ORDER?BY?n))?x,round(SUM(y)?over(ORDER?BY?n))?yFROM?(SELECT?n,cos(trunc(n?/?20)?*?(1?-?1?/?5)?*?3.1415926)?*?2?x,sin(trunc(n?/?20)?*?(1?-?1?/?5)?*?3.1415926)?yFROM?(SELECT?rownum?-?1?nFROM?all_objectsWHERE?rownum?<=?20?*?5))) SELECT?REPLACE(sys_connect_by_path(point,'/'),'/',NULL)?starFROM?(SELECT?b.y,b.x,decode(a.x,NULL,'?','*')?pointFROM?a,(SELECT?*FROM?(SELECT?rownum?-?1?+?(SELECT?MIN(x)FROM?a)?xFROM?all_objectsWHERE?rownum?<=?(SELECT?MAX(x)?-?MIN(x)?+?1FROM?a)),(SELECT?rownum?-?1?+?(SELECT?MIN(y)FROM?a)?yFROM?all_objectsWHERE?rownum?<=?(SELECT?MAX(y)?-?MIN(y)?+?1FROM?a)))?bWHERE?a.x(+)?=?b.xAND?a.y(+)?=?b.y)WHERE?x?=?(SELECT?MAX(x)FROM?a)START?WITH?x?=?(SELECT?MIN(x)FROM?a) CONNECT?BY?y?=?PRIOR?yAND?x?=?PRIOR?x?+?1;
五角星

調(diào)整期中數(shù)字5, 你還可以輸出7角星, 9角星。

奧運(yùn)五環(huán):

WITH?a?AS(SELECT?DISTINCT?round(a.x?+?b.x)?x,round(a.y?+?b.y)?yFROM?(SELECT?(SUM(x)?over(ORDER?BY?n))?x,round(SUM(y)?over(ORDER?BY?n))?yFROM?(SELECT?n,cos(n?/?30?*?3.1415926)?*?2?x,sin(n?/?30?*?3.1415926)?yFROM?(SELECT?rownum?-?1?nFROM?all_objectsWHERE?rownum?<=?30?+?30)))?a,(SELECT?n,(SUM(x)?over(ORDER?BY?n))?x,round(SUM(y)?over(ORDER?BY?n))?yFROM?(SELECT?n,cos(m?/?3?*?3.1415926)?*?2?*?15?x,sin(m?/?3?*?3.1415926)?*?15?yFROM?(SELECT?CASEWHEN?rownum?<=?2?THEN3WHEN?rownum?=?3?THEN-2ELSE-6END?m,rownum?-?1?nFROM?all_objectsWHERE?rownum?<=?5)))?b) SELECT?REPLACE(sys_connect_by_path(point,'/'),'/',NULL)?starFROM?(SELECT?b.y,b.x,decode(a.x,NULL,'?','*')?pointFROM?a,(SELECT?*FROM?(SELECT?rownum?-?1?+?(SELECT?MIN(x)FROM?a)?xFROM?all_objectsWHERE?rownum?<=?(SELECT?MAX(x)?-?MIN(x)?+?1FROM?a)),(SELECT?rownum?-?1?+?(SELECT?MIN(y)FROM?a)?yFROM?all_objectsWHERE?rownum?<=?(SELECT?MAX(y)?-?MIN(y)?+?1FROM?a)))?bWHERE?a.x(+)?=?b.xAND?a.y(+)?=?b.y)WHERE?x?=?(SELECT?MAX(x)FROM?a)START?WITH?x?=?(SELECT?MIN(x)FROM?a) CONNECT?BY?y?=?PRIOR?yAND?x?=?PRIOR?x?+?1;
奧運(yùn)五環(huán)

打印當(dāng)月日歷:

SELECT?MAX(decode(dow,1,d,NULL))?sun,MAX(decode(dow,2,d,NULL))?mon,MAX(decode(dow,3,d,NULL))?tue,MAX(decode(dow,4,d,NULL))?wed,MAX(decode(dow,5,d,NULL))?thu,MAX(decode(dow,6,d,NULL))?fri,MAX(decode(dow,7,d,NULL))?satFROM?(SELECT?rownum?d,rownum?-?2?+?to_number(to_char(trunc(SYSDATE,'MM'),'D'))?p,to_char(trunc(SYSDATE,'MM')?-?1?+?rownum,'D')?dowFROM?all_objectsWHERE?rownum?<=to_number(to_char(last_day(to_date(SYSDATE)),'DD')))GROUP?BY?trunc(p?/?7)ORDER?BY?sun?NULLS?FIRST;
打印日歷

最后

本文是讀者:三笠在 CSDN 平臺(tái)創(chuàng)作的一篇文章,把枯燥的 SQL 技術(shù)文章寫的非常有意思,歡迎大家關(guān)注。

博客地址:https://blog.csdn.net/m0_50546016(點(diǎn)擊文末左側(cè)的閱讀原文可直達(dá),或 PC 端訪問)

原創(chuàng)不易,如果你覺得這篇文章對(duì)你有點(diǎn)用的話,麻煩你為本文點(diǎn)個(gè)贊、在看、留言或轉(zhuǎn)發(fā)一下,因?yàn)檫@將是我輸出更多優(yōu)質(zhì)文章的動(dòng)力,感謝!

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請(qǐng)掃碼:

總結(jié)

以上是生活随笔為你收集整理的通俗讲解和学习SQL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。