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

SQL:我能玩出這花樣兒?

數據庫 SQL Server
官方解釋: SQL (Structured Query Language:結構化查詢語言) 是用于管理關系數據庫管理系統(RDBMS)。

[[405138]]

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

前言

SQL是什么?

官方解釋: SQL (Structured Query Language:結構化查詢語言) 是用于管理關系數據庫管理系統(RDBMS)。

SQL能用來干什么?

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

SQL

下面讓我們看看小美是如何零基礎學習SQL的:

女:Lucifer,最新領導讓我負責數據庫開發,需要寫SQL,但是我零基礎沒學過,有辦法快速入門嗎?

男:小美啊,SQL語言其實入門不難,我先來教你最簡單的增刪改查基礎吧。

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

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

sysdate

使用這個SQL語句可以查看數據庫當前時間,當然也可以把 SYSDATE 換成任意東西。

例如:

計算器:SELECT 365 * 24 FROM dual;

計算器

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

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

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

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

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

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

數據類型

 

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

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

  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,圖書名稱,圖書類型,作者,入庫時間。通過上面學習的 SELECT語法,來查詢一下這張表:

SELECT * FROM bookshelf;

查詢圖書表

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

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

男:哈哈,沒錯,我們數據庫管理員跟圖書管理員可以說是異曲同工。好了,繼續說放書吧,現在假設有一本書《飄》,作者:瑪格麗特·米切爾,類型:長篇小說。現在通過 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 (對應列名的值);

插入數據

通過sql查詢發現,這本書《飄》已經放入了書架上,可供大家借用和查看。

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

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

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

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

現在來模擬一下場景:

1、修改作者名:

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

修改作者名

2、下架圖書:

  1. DELETE FROM bookshelf; 
  2. COMMIT

圖書下架

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

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

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

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

男:沒錯,很聰明。現在隆重有請 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

插入數據

查看《傾城之戀》:

  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

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

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

女:懂了懂了,lucifer,我現在是不是可以去開發了?好像練練手啊!!!

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

女:好的好的。有問題了,我在繼續問你,謝謝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; 

五角星

調整期中數字5, 你還可以輸出7角星, 9角星。

奧運五環:

  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; 

奧運五環

打印當月日歷:

  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

打印日歷

 

責任編輯:武曉燕 來源: 杰哥的IT之旅
相關推薦

2019-11-26 14:11:52

互聯網裁員員工

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

互聯網

2017-05-22 15:50:38

ICT華為生態之行

2017-05-09 15:53:43

VR創新AR

2025-06-05 01:40:00

2017-08-02 17:33:09

互聯網

2020-11-04 07:32:01

AI技術

2024-06-18 08:46:06

2020-03-03 13:55:38

騰訊手機QQ

2022-04-11 11:38:44

Python代碼游戲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产免费 | 欧美亚洲国产成人 | 瑟瑟激情 | 久久综合伊人一区二区三 | 欧美一级淫片免费视频黄 | 巨大黑人极品videos精品 | 高清久久久 | 亚洲成人一二区 | 久草成人 | 欧美一级淫片免费视频黄 | 一本大道久久a久久精二百 国产成人免费在线 | 欧美一区二区久久 | 欧美一区二区三区在线观看 | 久久久久久高潮国产精品视 | 亚洲成人av | 亚洲欧美一区二区三区在线 | 9999视频| 欧美乱淫视频 | 人人做人人澡人人爽欧美 | 欧美国产激情 | 欧美精品国产精品 | 国产黄色在线观看 | 国产免费黄网 | 精品日韩一区 | 欧美国产视频 | 91av在线视频观看 | 国产中文字幕在线观看 | 色婷婷狠狠 | 亚洲日韩中文字幕一区 | 天天草夜夜骑 | 成人网在线看 | 搞黄视频免费看 | 欧美中文字幕在线观看 | 99re在线视频免费观看 | 国产精品视频免费观看 | 成年人在线视频 | 小h片免费观看久久久久 | 国产精品1区 | 一区二区三区四区五区在线视频 | 久久aⅴ乱码一区二区三区 91综合网 | 国产精品一区在线播放 |