成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL:我能玩出這花樣兒?

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

[[405138]]

本文轉(zhuǎn)載自微信公眾號「杰哥的IT之旅」,作者三笠 。轉(zhuǎn)載本文請聯(lián)系菜杰哥的IT之旅公眾號。

前言

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語言其實入門不難,我先來教你最簡單的增刪改查基礎(chǔ)吧。

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

男:Ok,那我們先來一個最簡單常用的SQL語句DUAL查詢:SELECT SYSDATE FROM DUAL;

sysdate

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

例如:

計算器:SELECT 365 * 24 FROM dual;

計算器

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

女:這個太實用了,以后計算器和日歷都可以省了,哈哈哈。

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

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

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

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

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

 

女:嗯嗯,這個能理解,跟java,C 好像有些相似。

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

  1. CREATE TABLE bookshelf 
  2. BOOK_ID NUMBER, 
  3. BOOK_NAME VARCHAR2(100), 
  4. BOOK_TYPE VARCHAR2(100), 
  5. AUTHOR VARCHAR2(100), 
  6. INTIME DATE 
  7. ); 

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

SELECT * FROM bookshelf;

查詢圖書表

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

女:嗯嗯,很形象,感覺自己就像個圖書管理員一樣,哈哈哈。

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

  1. INSERT INTO bookshelf  
  2. (book_id, 
  3. book_name, 
  4. book_type, 
  5. author, 
  6. intime) 
  7. VALUES 
  8. (1, 
  9. '飄'
  10. '長篇小說'
  11. '瑪格麗特·米切爾'
  12. SYSDATE); 
  13. COMMIT

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

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

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

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

男:這個問題問的很好,因為人為的操作總會存在誤差,因此提出了 改 和 刪 兩種操作。

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

刪 的基本語法:DELETE FROM 表名;

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

1、修改作者名:

  1. UPDATE bookshelf SET author='Margaret Mitchell'
  2. COMMIT

修改作者名

2、下架圖書:

  1. DELETE FROM bookshelf; 
  2. COMMIT

圖書下架

通過以上兩個場景,演示了 改 和 刪 兩種操作。

女:lucifer,你講的很明了,我現(xiàn)在已經(jīng)懂了增刪改查四種操作了,迫不及待想要動手開始操作了!

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

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

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

先上架3本書:

  1. INSERT INTO bookshelf (book_id,book_name,book_type,author,intime) VALUES (1,'飄','長篇小說','瑪格麗特·米切爾',SYSDATE); 
  2. INSERT INTO bookshelf (book_id,book_name,book_type,author,intime) VALUES (2,'傾城之戀','愛情小說','張愛玲',SYSDATE); 
  3. INSERT INTO bookshelf (book_id,book_name,book_type,author,intime) VALUES (3,'從你的全世界路過','短篇小說','張嘉佳',SYSDATE); 
  4. COMMIT

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

查看《傾城之戀》:

  1. SELECT * FROM bookshelf WHERE BOOK_NAME = '傾城之戀'

查看《傾城之戀》

更新《飄》:

  1. UPDATE bookshelf SET author='Margaret Mitchell' WHERE book_name = '飄'
  2. COMMIT

更新《飄》

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

  1. DELETE FROM bookshelf WHERE book_name = '從你的全世界路過'
  2. COMMIT

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

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

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

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

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

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

五角星:

  1. WITH a AS 
  2.  (SELECT DISTINCT round(SUM(x) over(ORDER BY n)) x, 
  3.                   round(SUM(y) over(ORDER BY n)) y 
  4.     FROM (SELECT n, 
  5.                  cos(trunc(n / 20) * (1 - 1 / 5) * 3.1415926) * 2 x, 
  6.                  sin(trunc(n / 20) * (1 - 1 / 5) * 3.1415926) y 
  7.             FROM (SELECT rownum - 1 n 
  8.                     FROM all_objects 
  9.                    WHERE rownum <= 20 * 5))) 
  10. SELECT REPLACE(sys_connect_by_path(point, 
  11.                                    '/'), 
  12.                '/'
  13.                NULL) star 
  14.   FROM (SELECT b.y, 
  15.                b.x, 
  16.                decode(a.x, 
  17.                       NULL
  18.                       ' '
  19.                       '*') point 
  20.           FROM a, 
  21.                (SELECT * 
  22.                   FROM (SELECT rownum - 1 + (SELECT MIN(x) 
  23.                                                FROM a) x 
  24.                           FROM all_objects 
  25.                          WHERE rownum <= (SELECT MAX(x) - MIN(x) + 1 
  26.                                             FROM a)), 
  27.                        (SELECT rownum - 1 + (SELECT MIN(y) 
  28.                                                FROM a) y 
  29.                           FROM all_objects 
  30.                          WHERE rownum <= (SELECT MAX(y) - MIN(y) + 1 
  31.                                             FROM a))) b 
  32.          WHERE a.x(+) = b.x 
  33.            AND a.y(+) = b.y) 
  34.  WHERE x = (SELECT MAX(x) 
  35.               FROM a) 
  36.  START WITH x = (SELECT MIN(x) 
  37.                    FROM a) 
  38. CONNECT BY y = PRIOR y 
  39.        AND x = PRIOR x + 1; 

五角星

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

奧運五環(huán):

  1. WITH a AS 
  2.  (SELECT DISTINCT round(a.x + b.x) x, 
  3.                   round(a.y + b.y) y 
  4.     FROM (SELECT (SUM(x) over(ORDER BY n)) x, 
  5.                  round(SUM(y) over(ORDER BY n)) y 
  6.             FROM (SELECT n, 
  7.                          cos(n / 30 * 3.1415926) * 2 x, 
  8.                          sin(n / 30 * 3.1415926) y 
  9.                     FROM (SELECT rownum - 1 n 
  10.                             FROM all_objects 
  11.                            WHERE rownum <= 30 + 30))) a, 
  12.          (SELECT n, 
  13.                  (SUM(x) over(ORDER BY n)) x, 
  14.                  round(SUM(y) over(ORDER BY n)) y 
  15.             FROM (SELECT n, 
  16.                          cos(m / 3 * 3.1415926) * 2 * 15 x, 
  17.                          sin(m / 3 * 3.1415926) * 15 y 
  18.                     FROM (SELECT CASE 
  19.                                    WHEN rownum <= 2 THEN 
  20.                                     3 
  21.                                    WHEN rownum = 3 THEN 
  22.                                     -2 
  23.                                    ELSE 
  24.                                     -6 
  25.                                  END m, 
  26.                                  rownum - 1 n 
  27.                             FROM all_objects 
  28.                            WHERE rownum <= 5))) b) 
  29. SELECT REPLACE(sys_connect_by_path(point, 
  30.                                    '/'), 
  31.                '/'
  32.                NULL) star 
  33.   FROM (SELECT b.y, 
  34.                b.x, 
  35.                decode(a.x, 
  36.                       NULL
  37.                       ' '
  38.                       '*') point 
  39.           FROM a, 
  40.                (SELECT * 
  41.                   FROM (SELECT rownum - 1 + (SELECT MIN(x) 
  42.                                                FROM a) x 
  43.                           FROM all_objects 
  44.                          WHERE rownum <= (SELECT MAX(x) - MIN(x) + 1 
  45.                                             FROM a)), 
  46.                        (SELECT rownum - 1 + (SELECT MIN(y) 
  47.                                                FROM a) y 
  48.                           FROM all_objects 
  49.                          WHERE rownum <= (SELECT MAX(y) - MIN(y) + 1 
  50.                                             FROM a))) b 
  51.          WHERE a.x(+) = b.x 
  52.            AND a.y(+) = b.y) 
  53.  WHERE x = (SELECT MAX(x) 
  54.               FROM a) 
  55.  START WITH x = (SELECT MIN(x) 
  56.                    FROM a) 
  57. CONNECT BY y = PRIOR y 
  58.        AND x = PRIOR x + 1; 

奧運五環(huán)

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

  1. SELECT MAX(decode(dow, 
  2.                   1, 
  3.                   d, 
  4.                   NULL)) sun, 
  5.  
  6.        MAX(decode(dow, 
  7.                   2, 
  8.                   d, 
  9.                   NULL)) mon, 
  10.  
  11.        MAX(decode(dow, 
  12.                   3, 
  13.                   d, 
  14.                   NULL)) tue, 
  15.  
  16.        MAX(decode(dow, 
  17.                   4, 
  18.                   d, 
  19.                   NULL)) wed, 
  20.  
  21.        MAX(decode(dow, 
  22.                   5, 
  23.                   d, 
  24.                   NULL)) thu, 
  25.  
  26.        MAX(decode(dow, 
  27.                   6, 
  28.                   d, 
  29.                   NULL)) fri, 
  30.  
  31.        MAX(decode(dow, 
  32.                   7, 
  33.                   d, 
  34.                   NULL)) sat 
  35.  
  36.   FROM (SELECT rownum d, 
  37.  
  38.                rownum - 2 + to_number(to_char(trunc(SYSDATE, 
  39.                                                     'MM'), 
  40.                                               'D')) p, 
  41.  
  42.                to_char(trunc(SYSDATE, 
  43.                              'MM') - 1 + rownum, 
  44.                        'D') dow 
  45.  
  46.           FROM all_objects 
  47.  
  48.          WHERE rownum <= 
  49.  
  50.                to_number(to_char(last_day(to_date(SYSDATE)), 
  51.                                  'DD'))) 
  52.  
  53.  GROUP BY trunc(p / 7) 
  54.  
  55.  ORDER BY sun NULLS FIRST

打印日歷

 

責(zé)任編輯:武曉燕 來源: 杰哥的IT之旅
相關(guān)推薦

2019-11-26 14:11:52

互聯(lián)網(wǎng)裁員員工

2021-01-19 05:29:41

代碼Git 工作流

2021-03-26 10:48:14

代碼語言提交

2024-06-11 09:52:39

2021-10-11 08:21:23

@Valuespringspring框架

2022-05-09 08:01:23

countdistinctMySQL

2021-08-04 12:26:00

Postman工具頻率

2022-09-14 12:00:51

React路由庫前端

2021-09-01 05:41:03

Promise CLI項目

2025-03-28 10:39:17

C++宏定義語言

2016-05-27 17:56:35

互聯(lián)網(wǎng)

2017-05-22 15:50:38

ICT華為生態(tài)之行

2017-05-09 15:53:43

VR創(chuàng)新AR

2025-06-05 01:40:00

2017-08-02 17:33:09

互聯(lián)網(wǎng)

2020-11-04 07:32:01

AI技術(shù)

2024-06-18 08:46:06

2020-03-03 13:55:38

騰訊手機QQ

2022-04-11 11:38:44

Python代碼游戲
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲天堂一区 | 精品一区二区三区在线观看 | 国产精品一区二区视频 | 天堂va在线| 国产第一页在线播放 | 欧美激情 一区 | 久久久爽爽爽美女图片 | 国产精品久久久久久久久免费樱桃 | 日韩一区二区三区视频 | 亚洲美女视频 | 久久精品com| 国产清纯白嫩初高生在线播放视频 | 区一区二区三在线观看 | 久久精品欧美视频 | 中文字幕 在线观看 | a在线视频 | 综合色播 | 中文字幕av亚洲精品一部二部 | 亚洲成人av | 九九在线精品视频 | 亚洲中字在线 | 综合色在线 | 日韩视频在线播放 | 欧洲高清转码区一二区 | 在线日韩 | 久久91精品国产一区二区三区 | 亚洲视频在线观看一区二区三区 | 欧美男人天堂 | 一区二区国产精品 | 一区二区视频 | 精久久久| 韩日一区 | 成av在线 | 久久免费视频网 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 在线观看免费观看在线91 | 免费看国产片在线观看 | 99热在线播放 | av在线免费网 | 久久精品一区二区 | 一级片免费网站 |