本文目錄一覽:
- 1、數據庫基礎篇(二)—— SQL之數據查詢
- 2、ORACLE如何在DML語句中使用序列?
- 3、用SQL腳本寫ETL
- 4、sql developer 輸入參數為list怎麼設置
- 5、怎麼把excel文件里的數據導入SQL數據庫?
- 6、怎麼用DeskTopAuthor漢化特版軟件做電子書
數據庫基礎篇(二)—— SQL之數據查詢
接下來,我們將使用員工相關的四張樣本數據表,來學習SQL,建議你在學習過程中多動手練習,理解才會更深刻。表和字段含義,如下圖:
如何利用SQL語句來操作以上數據呢?我們必須將樣本數據導入MySQL客戶端(如:Navicat)中。可以在客戶端操作數據,或者在終端窗口。工作中經常在客戶端操作,所以本文所有SQL語句將在Navicat中學習。
首先將sql腳本保存到桌面(獲取方式:關注”Python之每日一課”公眾號,後來回復”sql基礎數據”,即可。),導入SQL腳本的具體操作流程如下:
現在數據準備完成。這裡是導入sql腳本;導出同理,選擇”轉儲SQL“文件。當然了,Navicat也支持將當前表或查詢結果導出Excel、CSV等文件類型。
下面可以寫SQL語句了(每個sql腳本可以保存,下次直接使用),如下:
類似於Python中 :print(要打印的東西)
①通過select查詢完的結果 ,是一個虛擬的表格,不是真實存在
② 要查詢的東西 可以是常量值、表達式、字段、也可以是函數
補充:可以給字段起別名,好處是提高可讀性,更方便理解;多表連接時,區分字段。用AS 或 空格來實現。如下:
2、 條件查詢
條件查詢:根據條件過濾原始表的數據,查詢到想要的數據
1)語法
2)分類
①條件表達式
②邏輯表達式
③模糊查詢
⭐ 注意:where 一定要放到 from 後面。NULL 不是假,也不是真,而是”空”;任何運算符,判斷符碰到NULL,都得NULL;NULL的判斷只能用is null,is not null;NULL 影響查詢速度,一般避免使值為NULL。exists查詢可以與in型子查詢互換,它們之間區別以後語句優化時會詳細講解。
3、 排序查詢
1)語法
2)舉栗
⭐ 注意:order by 一定要放到 語句最後(limit前面)
4、分組查詢
1)語法
2)特點
①可以按單個字段分組
②和分組函數一同查詢的字段最好是分組後的字段
③分組篩選(where 和 having區別)
④可以按多個字段分組,字段之間用逗號隔開
⑤可以支持排序
⑥having後可以支持別名
3)舉栗
⭐ 注意:關鍵字順序是where —group by—having—order by—limit( having不能單獨使用,需結合group by ,表示對分組後的結果進行篩選;而 group by 必須結合分組聚合函數一起使用 ,比如:count()、max()等)
5、 常見函數
1)單行函數
2)分組函數
3)分組函數特點
①以上五個分組函數都忽略null值,除了count(*)
②sum和avg一般處理數值型,max、min、count可以處理任何數據類型
③都可以搭配distinct使用,用於統計去重後的結果
④count的參數可以支持:字段、*、常量值,一般放1
6、連接查詢(多表查詢)
單個表不能滿足需求時,需要結合多張表,去除有關聯的數據。這時就需要用連接查詢,連接查詢有三種,通常join使用的最多。
①等值連接的結果 = 多個表的交集
②多個表不分主次,沒有順序要求
③一般為表起別名,提高閱讀性和性能
①語法
②好處
語句上,連接條件和篩選條件實現了分離,簡潔。
⭐ 注意:左右連接可互換 A left join B 等價於B right join A;內連接是左/pre
右連接的交集;mysql沒有外連接。
自連接相當於等值連接,但是等值連接涉及多個表,而自連接僅僅是它自己。如下:在員工信息表裡,查詢員工名和直接上級的名。
7、子查詢
一條查詢語句中又嵌套了另一條完整的select語句,其中被嵌套的select語句,稱為子查詢或內查詢。在外面的查詢語句,稱為主查詢或外查詢。
①子查詢都放在小括號內
②子查詢可以放在from後面、select後面、where後面、having後面,但一般放在條件的右側
③子查詢優先於主查詢執行,主查詢使用了子查詢的執行結果
④子查詢根據查詢結果的行數不同分為以下兩類:
2)舉栗
8、分頁查詢 (可選)
實際web開發中,當顯示的數據,一頁顯示不完時,需要分頁提交sql請求。
2)特點
①起始條目索引默認從0開始
②limit子句放在查詢語句的最後
③公式:select * from 表 limit (page-1)*sizePerPage,
3)舉栗
9、union聯合查詢
union用於把涉及多個表的SELECT語句的結果組合到一個結果集合中。適用於查詢條件較多,多個表之間沒有連接關係的場景。/pre
2)特點
①多條查詢語句的查詢的列數必須是一致的
②多條查詢語句的查詢的列的類型幾乎相同
③union 代表去重,union all 代表不去重
3)舉栗
UNION 和 UNION ALL 運行結果的區別如下:
⭐ 注意:在多個 SELECT 語句中,第一個 SELECT 語句中被使用的字段名稱將被用於結果的字段名稱。當使用 UNION 時,MySQL 會把結果集中重複的記錄刪掉,而使用 UNION ALL ,MySQL 會把所有的記錄返回,且效率高於 UNION
好,今天學習到這裡。工作中用的最多就是查詢。如果能消化本文涉及到的所有內容,大概能解決80%的工作需求。本文更多的是原理介紹,例子不多,只有先知道是什麼,才能知道怎麼學。那麼,接下來最重要的是要多練習實踐。因為實際的業務場景要複雜很多,給大家推薦兩個刷題的網站,力扣和牛客網,裡面有大量的sql面試題。能進一步提高我們sql的水平。這篇文章主要是SQL的常用查詢。明天繼續學習SQL的DML增刪改。一起加油!
ORACLE如何在DML語句中使用序列?
創建序列
CREATE SEQUENCE department_sequence
INCREMENT BY 10
START WITH 50 ; –由於之前存在40的了,所以這個開始序號為50
執行過程
declare
v_dname varchar2(50);
v_loc varchar2(50);
begin
v_dname:=請輸入部門名稱;
v_loc:=請輸入部門地址;
insert into department values (department_sequence.nextval,v_dname,v_loc);
commit;
end;
執行後會彈出窗口
輸入時,要帶單引號
用SQL腳本寫ETL
學好SQL就行了,DML/DDL. ETL可以用很多工具來實現,比如Shell, Perl, Informatica, Ab Initio等等, SQL本身的邏輯和處理工作就是ETL的過程. 如果是用SQL來實現ETL調度管理,可以先創建數據庫表,然後,通過SQL實現Insert/Update/Delete來控制ETL腳本的被調度。
sql developer 輸入參數為list怎麼設置
1. PL/SQL Developer記住登陸密碼
在使用PL/SQL Developer時,
為了工作方便希望PL/SQL Developer記住登錄Oracle的用戶名和密碼;
設置方法:
PL/SQL Developer-tools-Preferences-Oracle-Logon History,
在右邊界面的”Definition”中,”Store history”是默認勾選的,
再勾選上”Store with password”,即可.
上述方法若不好用,使用下面的方式:
在上面所說的界面中的”Fixed Users”中,
添加需要直接選擇後就可登錄的用戶名/密碼@ORACLE_SID,
如:
cbsdb/cbsdb@cbsdb
重新登錄的時候,從Oracle Logon的登錄界面的Username後面的…按鈕處,
選擇需要登錄的用戶即可。
2. 執行單條SQL語句(SQL Window中根據光標位置自動選擇語句)
在使用PL/SQL Developer的SQL Window時,按F8鍵,PL/SQL Developer默認是執行該窗口的所
有SQL語句,需要設置為鼠標所在的那條SQL語句,即執行當前SQL語句;
設置方法:PL/SQL Developer-tools-Preferences-SQL Window-Window types,
勾上”AutoSelect Statement” 即可。
注意,每條語句後面要加分號。
3. 格式化SQL語句
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句太長或太亂,
希望能用比較通用的寫法格式話一下,這樣看起來會好看些,也好分析;
使用方法:
選中需要格式化的SQL語句,然後點擊工具欄的PL/SQL beautifier按鈕即可.
4. 查看執行計劃
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句執行的效率,分析下表結構,
如何可以提高查詢的效率,可以通過查看Oracle提供的執行計劃;
使用方法:
選中需要分析的SQL語句,然後點擊工具欄的Explain plan按鈕(即執行計劃),
或者直接按F5即可。
5. 調試存儲過程
在使用PL/SQL Developer操作Oracle時,有時候調用某些存儲過程,或者調試存儲過程;
調用存儲過程的方法:
首先,在PL/SQL Developer左邊的Browser中選擇Procedures,
查找需要調用的存儲過程;然後,選中調試的存儲過程,點擊右鍵,
選擇Test,在彈出來的Test script窗口中,
對於定義為in類型的參數,需要給該參數的Value輸入值;
最後點擊上面的條數按鈕:Start debugger或者按F9;
最後點擊:RUN或者Ctrl+R。
(具體要調式一個存儲過程,請參照操作手冊,這個大概說明下應用)。
6. oralce精簡客戶端的使用
要想PL/SQL連接oracle數據庫,除了PL/SQL Developer 之外還需要Oracle客戶端,
有一個更方便的方法就是使用Oracle精簡客戶端,很多地方可以下載,文件很小,耗資源也少。
安裝完成後修改安裝目錄下的\Oracle\ora90\network\ADMIN\tnsnames.ora文件:
格式如下:
DATABASE_NAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#(SERVICE_NAME = dealer)
(SID = SID_NAME)
#(SERVER = DEDICATED)
)
)
7. 關鍵字自動大寫:
了解一點編程的常識的人都知道,編碼風格很重要。
在閱讀代碼方面,保持一致的編碼風格,閱讀起來比較容易;
在執行效率方面,保持一致的編碼風格,更有可能被放到共享SQL區中,
這樣就提供了執行的效率。
另外,信息系統的核心是數據庫,系統出問題時最先要查的就是SQL語句,
怎樣在浩瀚的日誌中快速找到那條SQL語句是件比較痛苦的事情。
SQL語句全部大寫並不能徹底解決這一問題,
但在一堆代碼中間找一行全部大寫的字符相對容易些,你的眼睛會感謝你。
設置也很簡單:
Tools-Preferences-Editor,將Keyword case選擇Uppercase。
我一般是讓關鍵字大寫,其他比如表名,字段名等都是小寫。
大家都應該養成一種自己的編碼習慣,並保持下去。
8. 右鍵菜單
在PL/SQL Developer(下面簡稱PLD)中的每一個文本編輯窗口,
如SQL Window,Command Window和Porgram Window,
右鍵點擊某個對象名稱,會彈出一個包含操作對象命令的菜單,我們這裡稱之為右鍵菜單。
對象類型可以是表,視圖,同義詞,存儲過程和函數等。
根據對象類型的不同,彈出的菜單也有區別。
表和視圖有View, Edit, Rename, Drop, Query data 和Edit data等功能。
View和Edit分別是查看和修改表的結構信息,如字段,主鍵,索引和約束等。
Query data相當於新打開一個窗口,並執行select * from 表。
Edit data相當於新打開一個窗口,並執行select * from 表 for update。
存儲過程和函數有Test功能,選中後可以進入調試狀態。
有時由於PLD識別錯誤,右鍵點擊對象並不能出來正確的菜單,
可以在對象所在的DDL或DML語句的前面,加上分號,這樣PLD就能正確的判斷出對象的類型
9. Select for Update
有時我們需要把一些數據導入數據庫中,如果用UE拼Insert語句,會比較麻煩,而且操作性不強。
PLD的SQL Window可以查詢,新增,修改和刪除表的內容。
查詢自不必說,而新增,刪除和修改,只需在select語句後加入for update,
對錶進行行級鎖定,然後點擊窗口的鎖型圖標,即可進入編輯狀態。
下面介紹一下如何從Excel中提取文本插入到數據庫中,
我們的Excel文件中有三列,在數據庫中建立臨時表:
CREATE TABLE t1(
cino varchar2(100),
contno varchar2(100),
loanno varchar2(100)
)
然後在SQL Window中輸入select t1 for update,並點擊鎖型鼠標,進入編輯狀態,
用鼠標點擊第一行的輸入窗口,這時PLD會死鎖幾秒鐘,
然後可以見到光標在第一行的輸入框中閃動,
用鼠標把CINO, CONTNO, LOANNO選中,進入Excel中,把需要插入數據庫的內容選中,
然後切換到PLD,按Ctrl + V,點擊√,然後再點擊Commit按鈕,
則數據提交到表t1中,執行select * from t1可以看到內容.
10. PL/SQL Beautifier(PL/SQL 美化器)
PLD 6以上版本有對DML代碼格式化的功能。
在SQL Window或Program Window中選中部分代碼(如果不選則對整個窗口的代碼操作),
在菜單中選Edit – PL/SQL Beautifier,得到格式化的代碼。
對於非法的DML語句或DDL語句,PLD將會在下方狀態欄提示:
PL/SQL Beautifier could not parse text。
在缺省的狀態下,PLD會把DML語句的每一個字段都排在單獨的一行,這樣不方便查看。
在菜單中選Edit à PL/SQL Beautifier Options,進入Preferences窗口,
選擇Edit,進入配置文件編輯界面,在標籤欄選DML,
在窗口中部的Select, Insert和Update組框中把Fit選中,然後點擊Save,
把配置文件保存到PLD的安裝目錄下,點擊Close關閉。
在Rules file中輸入配置文件所在位置,點擊OK,完成配置文件切換。
這時再對代碼進行格式化,就可以使每一個字段儘可能的在一行上了。
11. TNS Names
菜單Help-Support Info-TNS Names,可以查看Oracle的tnsnames.ora。
12. Copy to Excel
在SQL Window中執行Select語句,在結果出來以後,右鍵點擊下面的數據區,
選擇Copy to Excel,可以把數據區的記錄原樣拷貝到Excel中。
但有兩點需要注意:
(1) field中不能以=開始,否則Excel會誤認為是函數;
(2) 數字不要超過17位,否則後面的位數將會置為0,
但可以通過在數字前加’來使Excel認為該field是文本,
同時對於數據庫中Numbe類型的字段,最好用to_char輸出,不然可能會顯示不正常;
13. 保持上次打開的SQL腳本
重新進入PL/SQL Developer時,Window List能打開上次退出時的文檔:
(1) 將菜單Tools-Window list選項勾上;
(2) Tools-Perferences-User Interface-Options的右邊,
將”Autosave desktop”勾選.
(3) 退出PL/SQL Developer重新進入.
14. 快速找到已知表名的表或其他對象:
在Tools菜單中,勾選上Object Browser,將對象瀏覽器打開,
雙擊對象瀏覽器中的某個對象所處的文件夾,
比如表都是在Tables文件夾中,
然後以儘快的速度輸入表名,即可找到以你輸入的幾個字母開頭的對象了.
15. 快速關閉打開於Windows List中的文檔窗口:
按住Shift鍵,左鍵點擊需要關閉的文檔窗口.
16. PL/SQL DEVELOPER中的專用複製(Special Copy)
如果你正在用 PL/SQL Developer 寫 SQL 和 PL/SQL 代碼,
隨後你又要在其它工具里使用代碼,例如象 3GL 這樣的程序設計語言,
那麼你可能需要把這些代碼轉換為稍微不同的格式。
讓我們假設你已經在 PL/SQL Developer 里寫了並測試了這樣一個SQL 語句:
select deptno, sum(sal) mgr_sal
from emp
where job = ‘MANAGER’
group by deptno
order by mgr_sal desc
例如,如果你要在Borland Delphi 里使用這個語句,你可能需要象這樣的格式:
SQL := ‘select deptno, sum(sal) mgr_sal from emp’ + #13#10 +
‘where job = ”MANAGER”’ + #13#10 +
‘group by deptno’ + #13#10 +
‘order by mgr_sal desc’;
為了這個目的,在PL/SQL DEVELOPER中選中已寫好的SQL語句,鼠標右鍵,
在彈出的菜單中找到 Special Copy。這個功能有一個子菜單,它顯示了所有被定義的專用複製格式。
在選擇了格式之後,被轉換的代碼就被儲存在剪貼板上了,
這樣你就可以粘貼它到相應工具的編輯器里了。
專用複製格式被定義在 PL/SQL Developer 安裝目錄下的 SpecialCopy 子目錄里。
你可以改變預先確定的複製格式或者添加新的複製格式。
僅僅簡單地添加一個帶有 .copy 擴展名的文本文件就可以了,
它包含了一個針對 PL/SQL 代碼第一行的變量
(line_1)、一個針對 PL/SQL 代碼最後一行的變量(line_N)
和一個針對所有其它行的變量(line_*)。下面是一個針對 Borland Delphi 的例子:
;PL/SQL Developer SpecialCopy definition for Borland Delphi
;line_1 for first line
;line_* for all other lines
;line_N for last line
;
SQL := ‘line_1’ + #13#10 +
‘line_*’ + #13#10 +
‘line_n’;
第一行需要為指派到 SQL 的變量加上前言,接下來需要有一個 CR/LF 對。
最後一行不需要有CR/LF 對,但需要用分號來終止。所有其它行僅僅需要 CR/LF 接在後面。
如果 line_1 和 line_n 都與 line_* 一樣,你可以忽略它們。
在一些語言里,你需要對特定的字符使用換碼序列。
例如,在 C++ 里,你要對 tab字符(ASCII 碼為 9)使用 \t 。
要定義這些換碼序列,請使用 #define 關鍵詞:
#define char(9) = \t
#define \ = \\
String(“line_1\n”) +
String(“line_*\n”) +
String(“line_n”);
你還可以使用 “#define compress”來指出你要從結果里移除所有多餘的空字符(空格、製表符和換行)。
注意,.copy 文件的名字將被包括在菜單里,所以你應該使用描述性的文件名。
17. 在PL/SQL DEVELOPER中複製行記錄的簡便方法
(1) 單擊要拷貝的行記錄左邊的黑色小三角,該行被選中,右鍵複製。
(2) 粘貼至記事本里,然後複製剛才粘貼的內容。(該步驟不知何故不能缺)
(3) 單擊新記錄左邊的黑色小三角,右鍵粘貼即可。
18. 快捷鍵定義的位置:
Tools-Preferences-User Interface-Key configuration
選中需要定義的Item,然後按一個快捷鍵組合即可,
如果所按的快捷鍵已有定義,會有提示,這時候Cancel,另外選擇快捷鍵組合即可;
通常情況下,打開PLSQL Developer後,最經常乾的事就是打開SQL Window和Command Window,
就給這兩個操作定義了快捷鍵, ALT+S 和 ALT + C,這樣拿鼠標點三下的事情只需要按一下鍵。
設置方法:
菜單Tools – Preferences – Key Configuration
注意:
如果設置了快捷鍵不起作用,
回到Tools – Preferences – Key Configuration界面,
點擊最上方的”Default Administrator”右邊的”…”按鈕,
在彈出的”Preference Set”界面中,對”Personal Preferences”
以及下面的”Definition”-“Description”進行一下設置.
19. 在窗口標題欄內顯示文件的完全路徑
Tools-Preferences-User Interface-Options
勾選”Show complete file path in windows titles”
20. Object Brower中自定義Object的順序以及登錄後默認自動選中My Objects
默認情況下,PL/SQL Developer登錄後,Brower里會選擇All objects,
如果你登錄的用戶是dba,要展開tables目錄,正常情況都需要Wait幾秒鐘,
而選擇My Objects後響應速率則是以毫秒計算的。
設置方法:
Tools菜單 – Object Brower Filters,會打開Define Browser Filters界面,
選中”My Objects”,並勾選 “Default” 設為默認即可。
Tools菜單 – Object Brower Folders,會打開Define Browser Folders界面,
這裡可以把經常用到的幾個目錄(比如:Tables Views Seq Functions Procedures)
移得靠上一點,並加上顏色區分,這樣你的平均尋表時間會大大縮短,試試看。
21. 雙擊即顯示錶數據
鼠標雙擊表或者視圖時的默認響應實在讓我感到失望,因為我最關心的是表結構和數據,
但是雙擊後這兩件事情都沒有發生,也許默認響應是高手們需要的,
但對我來說查看數據和表結構是最主要的,其他的我不關心。
不過好的是這是可以設置的,你可以給鼠標雙擊和拖放綁定需要的事件,
比如:雙擊編輯數據,拖放顯示錶結構,Yeah!
設置方法:
菜單Tools – Preferences – Object Browser,
在右側,為不同的Object Type綁定雙擊和拖放操作。
22. 去掉注釋的斜體樣式:
菜單Tools – Preferences – User Interface-Editor
在右邊的界面中”Syntax Highlighting”下,去掉”Comment”右邊的”Italic”的勾選.
怎麼把excel文件里的數據導入SQL數據庫?
具體操作步驟如下:
1、首先雙擊打開sqlserver,右擊需要導入數據的數據庫,如圖所示。
2、點擊任務,再點擊任務中的導入數據選項,打開導入導出數據嚮導界面。
3、在嚮導界面點擊下一步,進入下圖界面依次填寫需要的內容:數據源 Excel,文件路徑,以及Excel版本,填好後點擊下一步(如果Excel其他版本不行的話,就選擇Excel97-03的,再將Excel保存為相應版本)即可。
4、然後就是目標數據庫設置:目標選擇msslserver,服務器名稱不用變,身份驗證輸入相應的密碼,數據庫選擇對應的數據庫,設置好後點擊下一步。
5、然後來到圖示界面,直接默認選項即可,點擊下一步。
6、圖示界面,可以自定義目標數據庫(表在數據庫中可以不存在),點擊預覽即可以看到導入之後的表狀態,如圖。
7、上一步完成後再繼續下一步,最後點擊完成,即可導入成功,如圖。
8、最後在數據庫中檢查一下導入的表數據,附上導入的Excel數據為例。
怎麼用DeskTopAuthor漢化特版軟件做電子書
需要下載相應軟件,推薦使用名編輯電子雜誌大師。萬彩信息旗下的名編輯電子雜誌大師是一款理想的電子出版物製作軟件,幾乎涵蓋了所有的出版物形式。例如,發布在線多媒體雜誌、產品手冊、企業宣傳冊、政府宣傳冊、報紙、商業手冊、公司報告、時事報道、通訊、教育書籍、互動書籍、銷售目錄等多頁文檔。
名編輯電子雜誌大師擁有一流的軟件設計和開發團隊,具有豐富的網絡應用軟件設計開發經驗。在數字傳播系統開發及相關領域,經過長期創新性開發,掌握了一整套從算法、數據結構到產品安全性方面的領先技術,使得產品無論在穩定性、代碼優化、運行效率、負載能力、安全等級、功能可操控性和權限嚴密性等方面都居於國內外同類產品的領先地位。點擊馬上開啟製作之旅
想要了解更多關於做電子書的相關信息,推薦選擇萬彩信息旗下的名編輯電子雜誌大師。廣州萬彩信息技術有限公司旗下自主研發而成的名編輯電子雜誌大師,是中國最專業的電子雜誌製作軟件。在軟件發布之初,由於其操作簡單、功能多樣的特性,迅速受到了用戶的喜愛和認可,並獲得了強烈的反響。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241384.html