1. 程式人生 > >Day51、資料庫、遠端連線伺服器、查詢select語句、form字句、where字句、order by 子句

Day51、資料庫、遠端連線伺服器、查詢select語句、form字句、where字句、order by 子句

一、  資料庫介紹

1、資料庫簡介

設計資料庫要保證冗餘(重複)度小,資料的完整性

  一套軟體 UI、業務邏輯層、持久層

  DB(database):資料庫

 DBMS(databasemanagement system):資料庫管理系統

  DBA:資料庫管理員

  DBS:資料庫系統

  關係型資料庫(RDB)

  什麼是關係型資料庫? 用二維表儲存資料

2、主流的關係型資料庫

商業型:

oracle     Oracle(甲骨文)

db2       IBM           

sql server  微軟           

開源的  免費的

MySql     Oracle

3、操作資料庫的語言---SQL

SQL:structured query language   結構化查詢語言

查詢(DQL):            select

資料操作語言(DML):   insert updata delete  (增刪改資料)

資料定義語言(DDL):   creat alter  drop   (增刪改物件)

事務處理語言(TCL):   commit (提交) rollback(撤銷) savepoint

資料控制語言(DCL):   grant(授予許可權)  revoke(撤銷許可權)

4、遠端連線伺服器

步驟:

1) 連線伺服器

telnet ip

ip: 176.3.20.200

使用者名稱:oracle

密碼:oracle

2) 使用賬號登陸oracle

sqlplus :oracle提供的客戶端訪問工具

sqlplus 回車

輸入使用者名稱:oracle

輸入密碼:oracle

SQL> “輸入命令”

第二步可以簡化為:sqlplus使用者名稱/密碼

如: sqlplusoracle/oracle

5、描述表結構:

s_emp:員工資訊表

desc 表名;

desc s_emp;

在cmd下輸入命令:desc s_emp;

(

在ubuntu中 直接輸入sqlplus syetem/open123也可以

[email protected]:~$ sqlplus system/open123

SQL*Plus: Release 10.2.0.1.0- Production on Tue Oct 25 10:48:55 2016

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0- Production

With the Partitioning, OLAP and Data Miningoptions

SQL> desc s_emp;

)

SQL> desc s_emp;

 Name                                     Null?      Type

 ------------------------------------------------- --------------

 ID                員工編號              NOT NULL  NUMBER(7)

 LAST_NAME          姓                 NOTNULL  VARCHAR2(25)

 FIRST_NAME         名                             VARCHAR2(25)

 USERID                                             VARCHAR2(8)

 START_DATE         入職日期                       DATE

 COMMENTS                                        VARCHAR2(255)

 MANAGER_ID        領導編號                       NUMBER(7)

 TITLE                職位                          VARCHAR2(25)

 DEPT_ID             部門編號                       NUMBER(7)

 SALARY               工資                          NUMBER(11,2)

 COMMISSION_PCT     提成                          NUMBER(4,2)

Name:欄位名

Null?表示該欄位是否允許為空   NOT NULL不允許為空

Type:欄位的資料型別

NUMBER(p,s)  數值型別

              p   [1,38]

              s   [-84,127]

                 [-1.0e-130,1.0e+126 )

                  1~22 bytes

varchar2(n)         變長字串   <=4000字元

char               定長字串    <=2000字元

data               日期         

二、查詢   select語句

1、from 子句

2、where 字句(條件字句)

3、order by (排序)

4、單行函式

5、多表查詢

6、組函式和分組

7、子查詢

三、form字句

select 欄位 from 表名;  指定從表名裡查詢欄位

1、 查詢一個欄位

/*列出所有員工的工資*/

select salary fromm s_emp ; 

slect first_name from s_emp;

2、 查詢多個欄位

Select 欄位1,欄位2…….fom  表名

/*列出所有員工的id,first_name,salary */

select id,first_name,salary s_emp;

3、 查詢表中全部資料

select id,last_name,first_name,……,commission_pctfrom s_emp;

使用*表示所有欄位

select * from s_emp;

4、 使用算數運算(一般是數值型別的欄位)

+ - * /

/*列出員工的年收入*/

12*salary

12*salary+1000

select id,first_name,salary,salary*12 froms_emp;

5、 欄位或表示式的別名

欄位或表示式 [as] 別名

select id,first_name,salary as sal,salary*12yearsal from s_emp;

“”:用雙引號解決別名有非法字元的問題

select id,first_name,salary assal,salary*12 year sal from s_emp;error

select id,first_name,salary assal,salary*12 “year sal” from s_emp;

select id,first_name,salary assal,salary*12 “yearSal” from s_emp;

6、 sql中的字串

1) sql中如何表示字串

‘’     ‘ ‘        ‘a’      ‘hello world’

2) 字串拼接

|| ---字串拼勁

/*把first_name和last_name拼接起來 */

Select id,fist_name || last name name froms_emp;

/*在first_name和last_name之間拼接加一個點. */

Select id,fist_name || ‘.’|| last name name from s_emp;

Select id,fist_name || ‘’|| last name name from s_emp; 錯誤

This’s

轉義:’

Select id,fist_name || ‘’’’|| last name name from s_emp;

7、

1)/*列出所有員工的年收入,包括提成*/

SQL> select commission_pct from s_emp;

12*salary*(1+commission_pct/100)

select id,first_name,salary,12*salary*(1+commission_pct/100)yearsalary from s_emp;

NULL值和任何數值進行算數運算,結果為NULL

2)處理NULL值的函式

nvl(par1,par2) :引數可以是任意型別,但是兩個引數型別必須一樣

當par1不為null時,返回par1,

當par2為空時,返回par2;

selectid,first_name,salary,nv1(12*salary*(1+commission_pct/100),12*salary) yearsalaryfrom s_emp;  不好

NULL值要儘早處理

nvl(commission_pct,0)

或selectid,first_name,salary,12*salary*(1+nvl(commission_pct,0)/100) yearsalary from s_emp;

8、 排重顯示

distinct

/*列出多有員工的職位(title)*/

select title from s_emp;

/*列出表中職位型別*/

select distinct title from s_emp;

多欄位排重

select distinct title,dept_id from s_emp;

四、where字句(條件字句)

1、where字句的作用是限制返回的行

符合條件的行被篩選出來,不符合條件的行被過濾掉

Select 欄位 from 表名 where 條件;

2、數字型別的條件

/*列出工資大於1500的員工的資訊*/

select id,first_name,salary from s_empwhere salary>1500;

select id,first_name,salary from s_empwhere 1=1; /*資料庫引擎不支援= =*/

select id, first_name,salary from s_empwhere 1!=1;

3、列出first_name為Mark的員工的資訊

Select id,first_name from s_emp wherefirst_name=’Mark’;

sql中不區分大小寫,但是字串型別的值是區分大小寫的

4、where字句能使用的運算子

< <=  >  >= != (<>、^=)

5、sql提供的運算子

1)表示一個閉區間  [a,b]

between a and b

/*列出工資在[1100,1450]之間的員工的資訊*/

Select id,first_name,salary from s_empwhere salary between 1100 and 1450;

/*列出編號在[10,15]範圍內的員工的id,first_name,dept_id*/

Select id,first_name,dept_id from s_empwhere id between 10 and 15;

2)表示欄位的取值在一個列表中(值1,值2,…..)

欄位 in(列表)

/*列出部門編號為32,42,50的部門的員工的資訊*/

select id,first_name,dept_id from s_empwhere dept_ip in(32,42,50);

3)模糊查詢

張小龍  龍小云  成龍 張三  李四

查詢名字中帶 龍的

萬用字元  %  _

%:任意長度的任意字元

_:一個任意字元

like ‘%龍%’  帶龍的

like ‘_龍’    第二個字是龍的

/*列出員工的first_name的首字母為A的員工的資訊*/

select id,first_name from s_emp wherefirst_name like ‘A%’;

/*列出員工的first_name的第二個字母為a的員工的資訊*/

select id,first_name from s_emp wherefirst_name like '_a%';

user_tables

desc user_tables;

/*所有的表名*/

select table_name from user_tables;

/*從user_tables表中查詢出所有的S_開頭的表名*/

select table_name from user_table wheretable_name like ‘S_%’   不合適

escape:表示哪一個字元後面的字元需要轉義

select table_name from user_tables wheretable_name like ‘S\_%’ escape ‘\’;

/*從user_tables表中查詢出所有的S_開頭的表名*/

select table_name from user_tables wheretable_name like ‘S\_\_%’ escape ‘\’;

4)NULL值的查詢

欄位 is null

select id,manager_id from s_emp wheremanager_id is null;

/*列出提成為空的員工的資訊*/

select id,commission_pct from s_emp wherecommission_pct is null;

6、sql提供的邏輯運算子

and :邏輯與

or:邏輯或

not:邏輯非

1)     使用and列出工資在[1100,1450]範圍內的員工的資訊

select id,salary from s_emp wheresalary>=1100 and salary=<1450 ;

2)     使用or列出部門編號為32,42,50的部門的員工的資訊

select id,first_name,dept_id from s_empwhere dept_id=32 or dept_id=42 or dept_id=50;

3)     列出提成不為null的員工的資訊

對立面

>            <=

 <           >=

 =            !=

between and   not between and

in            not in(注意null值)

like           not like

is null         is not null

select id,commission_pct from s_emp wherecommission_pct is not null;

五、orderby 子句

1、 order by 子句總是在select語句的最後

select 欄位

 from  表名

    where 條件

       orderby 子句

2、按照工資從高到低顯示員工的資訊

order by 排序標準  排序方式

排序標準: 欄位或表示式

排序方式:升序 asc (預設的排序方式 自然順序 字典順序)

         降序 desc

select id,first_name,salary from s_empwhere 1=1 order by salary desc;

3、在排序時,NULL值按最大值處理

列出員工的資訊,按照manager_id升序排序

select id,first_name,manager_id from s_emporder by manager_id;

4、多欄位排序

Order by 欄位1 排序方式,欄位2 排序方式

按照工資從高到低顯示員工資訊,如果工資相同,則按id升序顯示

select id,first_name,salary from s_emporder by salary desc,id asc;

相關推薦

Day51資料庫遠端連線伺服器查詢select語句form字句where字句order by 子句

一、  資料庫介紹 1、資料庫簡介 設計資料庫要保證冗餘(重複)度小,資料的完整性   一套軟體 UI、業務邏輯層、持久層   DB(database):資料庫  DBMS(databasemanagement system):資料庫管理系統   DBA:資料庫管理員  

Win10中使用Hyper-V安裝Ubuntu18.04實現ssh遠端連線及Hpyer-V中Ubuntu全屏問題

利用Windows10自帶的虛擬機器Hyper-V安裝Ubuntu18.04,並實現配置主機通過ssh連線Hpyer-V中Ubuntu虛擬機器,同時解決Ubuntu虛擬機器在Hpyer-V全屏時不能鋪滿螢幕的問題 首先安裝Hyper-V:開啟Win10控制面板--程式--啟

Python遠端連線伺服器上的Oracle資料庫/mysql

讀取ORACLE資料庫 1、安裝plsql以及配置檔案instanctclient 在配置檔案中新增資料庫ip、埠等 BZPDA =   (DESCRIPTION =     (ADDRESS_LIST =     &

遠端連線伺服器上的oracle資料庫幾種方法

第一種情況:   若oracle伺服器裝在本機上,那就不多說了,連線只是使用者名稱和密碼的問題了。不過要注意環境變數%ORACLE_HOME%/network/admin/是否設定。  第二種情況:   本機未安裝oracle伺服器,也未安裝oracle客戶端。但是安裝了pl

遠端連線伺服器資料庫

1、通過navicat通過需要連線的Ip,使用者名稱、密碼即可連線遠端資料庫,並且可以用eclipse訪問資料庫 2、通過遠端連線伺服器桌面,可以訪問遠端伺服器,並儲存檔案至本地: Win+R,輸入mstsc 在"遠端桌面連線"程式”中展開“選項”,選擇“本地資源”標籤; “本地裝置和資源/

Oracle資料庫-客戶端遠端連線伺服器

首先我們要知道Oracle是CS結構(客戶端伺服器),在今後正式工作後,公司中Oracle伺服器只有一臺,我們現在只是將伺服器與客戶端都在自己的筆記本上,但公司是不可能讓個人安裝伺服器的... 方式一:        1.找到listener.ora和tnsnames.ora

遠端連線伺服器上的MySQL資料庫出現1130錯誤的解決辦法

問題背景: win2003servers系統,mysql5.0資料庫, MySQL-Front連線工具(以下簡稱MF) 問題:通過MF連線資料庫,出現ERROR 1130 (HY000): Host ‘xxx.xxx.xxx.xxx’ i

遠端連線伺服器資料庫報錯:Host ‘XXXXXX’ is blocked because of many connection errors

一、我遇到的問題描述     使用Navicat for mysql連線公司的伺服器資料庫,報錯:Host ‘XXXXXX’ is blocked because of many connection errors 二、出現錯誤原因    

【轉】MySQL—1資料庫索引的實現原理及查詢優化

MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取資料的資料結構。 使用索引的目的在於提高查詢效率,這篇文章梳理一下索引的實現原理和應用。 不同的儲存引擎索引實現的資料結構不同 MySQL支援諸多儲存引擎,而各種儲存引擎對索引的支援也各不相同,

Python遠端連線伺服器上的Oracle資料庫

1、正確的開啟方式 在你的IPython或者是Anaconda的jupyter中輸入一下程式碼,其中: ‘username’—— 使用者名稱 ‘password’——密碼 ‘192.168.1.1:1521/service_

sql 異常<除非另外還指定了 TOPOFFSET 或 FOR XML,否則,ORDER BY 子句在視圖內聯函數派生表查詢和公用表表達式中無效。>

select sel top percent 異常 子句 cor 查詢 表達 問題:當子查詢內存在ORDER BY 字句時查詢會報錯 SQL: SELECT * FROM (   SELECT * FROM USER ORDER BY USER_CORD ) S. 解

Xmanager遠端連線伺服器

服務端 以cenos7為例,其他系統請見https://www.netsarang.com/faq/xmanager/list 將桌面轉換成lightdm 安裝依賴 yum install lightdm 如果安裝失敗,可以先嚐試下面的命令再安裝 yum

資料庫遠端】MySQL資料庫開啟遠端連線方法

Mysql安裝後,預設不能外網直接訪問的,只能本機訪問,但是很多使用者需要外網訪問來備份資料、修改資料或者呼叫資料,mysql如何開啟遠端連線呢?下面就是MySQL資料庫開啟遠端連線方法。 登陸mysql操作命令如下直接複製即可 1.下面的命令是給予任何主機訪問資料的許可權 mysql&

win7 遠端連線伺服器出現身份驗證錯誤,又找不到加密Oracle修正

今天想用遠端桌面連線登入伺服器,結果,彈出一個錯誤的提示框:發生身份驗證錯誤,要求的函式不受支援。    然後在網上找了相關的教程,基本上所有的方法都是如下所示:    策略路徑:"計算機配置"->"管理模板"->"系統"->"憑據分

Linux系統遠端連線伺服器命令列模式

對於很多新手來說,如何用Windows遠端Linux作業系統,是個前進的大問題。如果這個問題前進不了,其他更別說了。 Linux或Max OS X系統電腦,登入步驟為 1.開啟ssh客戶端 2.使用者名稱:root 3.伺服器: 輸入伺服器的IP 埠預設為22 4.輸入伺服器密碼

本機直接遠端連線伺服器Jupyter notebook

最近一直在跑神經網路的作業,所以借到了GPU的伺服器,jupyter notebook 又是一個用Python寫dl作業的神器,於是免不了要學會怎麼遠端訪問jupyter notebook! 1. 問度娘 不靠譜…..大家分享的觀點主要

遠端連線伺服器:提示身份驗證錯誤 要求的函式不受支援 Windows遠端桌面連線

之前好好的能遠端桌面連線到伺服器,但是今天來就不能連線上了,並提示:身份驗證錯誤。要求的函式不受支援。猜想可能是Windows又更新了什麼鬼,後面查詢資料知道是由於CredSSP加密Oracle修正的原因,這裡我整理了下解決方案,希望能幫到你。 微軟給出解決方案: h

通過Navicat遠端連線伺服器MySQL伺服器

1.檢視伺服器mysql許可權 select user,host from mysql.user; 2.看host許可權是否為%,如果不是可通過MySQL Workbench進行修改; 進入MySQL Workbench並且連線資料庫 單擊Users and Privile

PyCharm遠端連線伺服器(pycharm-professional-2018.2.5)

第一步:File -- Setting(Ctrl+Alt+S) 第二步: 1)Project:D -- Project Interpreter -- 設定 -- Add -- SSH Interpreter -- New server configuration -- Host -

PyCharm 如何遠端連線伺服器編寫程式

寫在前面 我之前一直通過mstsc遠端伺服器修改程式碼,或者本地修改後上傳到遠端伺服器等,各種不爽,現在改用xshell,但有時候還是感覺不方便。於是乎,自己動手配置PyCharm遠端連線伺服器,這樣就不用總是到伺服器裡修改程式碼,而是直接在Windows下PyCharm裡修改後自動儲存,並實現自動同步更新