色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle SQL 基礎(chǔ)

瀏覽:93日期:2023-11-26 15:03:22
一、關(guān)系數(shù)據(jù)庫的一些概念1、主鍵的值一般不可以改變2、外鍵:指向另一個表或本表的主鍵或唯一鍵的字段。外鍵的值一定要和某一主鍵相同,或者為空。3、數(shù)據(jù)庫對像:表,視圖,序列,索引,同義詞,程序(進(jìn)程,函數(shù),sql和pl/sql數(shù)據(jù))4、sql command 類別;data retrieval數(shù)據(jù)檢索:select;data manipulationlanguage (DML)數(shù)據(jù)操作語言:insert,update,delete;data definition language (DDL)數(shù)據(jù)定義語言:create,alter,drop,rename,truncate;transaction control事務(wù)控制:commit,rollback,savepointdata control language(DCL)數(shù)據(jù)控制語言:grant,revokeDCL 和DDL命令的執(zhí)行會導(dǎo)致一次隱式提交,之前未提交的操作(包括DML 命令)都會提交寫入日志文件,并在適當(dāng)?shù)貢r候?qū)懭霐?shù)據(jù)文件。二、SQL的語法1)連接號:2)把兩個字符連接起來eg:select game_card_type_idname from game_card_type;3)select distinct dept_id,title from emp: 對多個字段的唯一4)order by desc(降序)order by asc(升序)5)where column is (not) null6)like ‘_a%’_表示一個字符。%表示多少字符like ‘%x_y%’ escape ‘’:顯示包括x_y的字符7)where table1.column(+)=table2.columnplace the operator on the side of the join where there is no value to join to.;8) 聯(lián)接類型:equijoin:等式查詢non_equijoin:不等式查詢self:自己和自己建立關(guān)聯(lián)out join:where a.column=b.column(+)可以用的操作符是:’=’,’and’,不可以用’or’,’in’;9); COUNT 函數(shù)所用的列包含空值時,空值行被忽略。10); where 后的in any all 的區(qū)別in :等于子查詢的任何一個數(shù)any :與子查詢的每一個值相比 只要比其中一個大(小)就可以了all:與子查詢的所有值相比要比所有的的都大(小)!=ALL作用跟NOT IN 一樣;;三、SQL*PLUS的環(huán)境(可以在glogin.sql中定義初始參數(shù))1)START 命令用以執(zhí)行一個已儲存的文件,等同于@2)SAVE命令用以創(chuàng)建一個文件 3)EDIT命令用以調(diào)用編輯器編輯已存文件的內(nèi)容 4)CHANGE 是SQL*Plus的編輯命令,用于在當(dāng)前一行把舊文段轉(zhuǎn)換為新文段 5)DEL 命令用以刪除文本中一行或多行文字 6)SPOOL命令用以把查詢結(jié)果儲存在一個已有文件中,注重與SAVE區(qū)別 7)GET命令用以一個文件的內(nèi)容寫進(jìn)一個SQL塊中 8)SPOOL OUT命令用以把文件的結(jié)果發(fā)送到系統(tǒng)打印機(jī)。9)set pause off/on:設(shè)置頁面的滾動。按enter看下一頁。10); PAGESIZE:指定每頁顯示的行的數(shù)值,11); LONG:設(shè)置LONG類型數(shù)據(jù)顯示的最大寬度12); FEEDBACK:設(shè)置查詢返回記錄的最大值13); DESCRIBE :用于顯示表和視圖的結(jié)構(gòu),同義詞,或指定函數(shù)和過程的詳述。14); Timing:可以看到語句執(zhí)行的時間15); Autotrace:可以看到sql的執(zhí)行計(jì)劃,sysdba執(zhí)行/home/Oracle/prodUCt/9.2.0/sqlplus/admin/plustrce.sql腳本,而且必須把plustrace角色賦給執(zhí)行用戶。執(zhí)行用戶必須運(yùn)行/home/oracle/product/9.2.0/rdbms/admin/utlXPlan.sql16); 在各種數(shù)據(jù)類型中,只有NUMBER數(shù)據(jù)類型的默認(rèn)顯示是靠右對齊的,而CHAR, DATE和VARCHAR2是靠左對齊的17); QUIT 是SQL*PLUS命令,用以結(jié)束一個SQL*PLUS的對話。18); ttitle: ;;;;ttitle ‘selina’ 設(shè)select 的結(jié)果的抬頭為selinatti :顯示ttitle的狀態(tài)tti off/onBTitle ‘end’ 設(shè)結(jié)果的尾部19);;;Column:a);;column name heading ‘名字’format a15b);;column id justify left format 999999c);;column start_date format a9 null ‘not hired’//當(dāng)字段為空的時候則顯示成not hiredd);;column :顯示所有的column設(shè)置e);;column columnname:顯示某一個字段的設(shè)置f);;clear column :清除所有column設(shè)置g);;column columnname clear:清除某一字段的設(shè)置h);;以上的column可用col代替.clear可以用cle代替;;13)定義變量用&:由用戶輸入變量值,此變量可以存在于where后,做為整個查詢語句的變量。也可以在order by 后。做為字段的變量。也可以放在select 后,做為字段或表達(dá)式的變量。用&&:假如多個地方引用此變量。。只用輸入一次;;SQL> SELECT empno, ename, job, &&column_name; FROM emp ORDER BY &column_name;;;accept:由用戶輸入變量值; accept 變量名 datatype prompt ‘告訴用戶需要輸入的信息:’ hide; 引用的時候:&變名define(undefined):一開始就定義變量值四、函數(shù):1、字符函數(shù)lower:把字符轉(zhuǎn)成小寫upper:把字符轉(zhuǎn)成大寫initcap:把單詞的第一個字母變成大寫concat:連接字符; concat(‘good’,’morning’)=goodmoringSUBSTR (columnexpression, m[,n]) 用于對字符串進(jìn)行截取操作,從第m個位置開始,把其后的連續(xù)n個字符的部分截取下來,假如m位負(fù)值,則從末尾開始計(jì)算。eg:substr(‘string’,1,3) =str; substr(‘string’-3,3)=ingINSTR('String', 'r')=3LPAD(sal,10,'*') =*******sal;;length: 用于返回表達(dá)式中的字符數(shù),注重返回的是NUMBER。NVL(expression1, expression2) NVL 函數(shù)用以把一個空值轉(zhuǎn)換為一個實(shí)值,如: NVL(100/quantity, 0) ,要是quantity為空值,該函數(shù)返回一個0。 假如兩個字段類型不同必須進(jìn)行轉(zhuǎn)換。Min():返回最小值。。假如是字符。。A<a;2、數(shù)學(xué)函數(shù)round:四舍五入round(2.566,2)=2.27round(45,-1)=50trunc: 截?cái)? trunc(2.566,2)=2.56; trunc(45,-1)=40mod:; mod(m,n):m-n*flood(m/n);;//flood是取整數(shù);3、日期函數(shù):a);;;;months_between(date1,date2):算date1和date2之間的月的數(shù)量,可以是小數(shù)可以是負(fù)數(shù)months_between(’01-sep-95’,’11-jan-94’)=1.9774194b);;;;add_months(date,n):為date加上N個月,N只可以是整數(shù)c);;;;next_date(date,’char’):查找date的下一個星期Nnext_date(’01-sep-95’,’FRIDAY’)=08-SEP-95d);;;;last_day(date):查找date月的最后一天。e);;;;rount(date):把日期四舍五入f);;;;rount(25-MAY-95’,’MONTH’)=01-JUN-95g);;;;rount(25-MAY-95’,’YEAR’)=01-JAN-95h);;;;trunc(date):把日期截?cái)鄆);;;;trunc (25-MAY-95’,’MONTH’)=01-MAY-95j);;;;trunc (25-MAY-95’,’YEAR’)=01-JAN-95k);;;;日期中RR與YY的區(qū)別,RR格式對日期作類似于舍入的操作,YY格式對日期作類似于截取的操作 ;;;;;RRYY1995 27-oct-95 1995 1995 1995 27-oct-17 2017 1917 2001 27-oct-17 2017 2017 2001 27-oct-95 1995 2095用法:select to_char(sysdate, 'YY') from dual;select to_char(to_date('95-11-27', 'RR-MM-DD'), 'YYYY-MM-DD') from dual;select to_char(to_date('95-11-27', 'YY-MM-DD'), 'YYYY-MM-DD') from dual;4、轉(zhuǎn)換函數(shù)TO_CHAR:TO_CHAR(date,’fmt’):fm前綴用來去除首尾的空字符或0TO_CHAR(total,’fm$999999’) 假如想轉(zhuǎn)成$0.25,那就要寫成fm$9999990.99可以把日期轉(zhuǎn)換成字符 TO_CHAR(log_time,’MM/YY’) TO_CHAR(lot_time,’fmdd’’of;’’mm yyyy’) 具體格式如下HH24:MI:SS AM-----------15:24:32 pm DD’’of’’MONTH-----------12 of MAY Ddspth------------------------fourteenth Ddsp--------------------------fourteen ddth---------------------------4th YYYY-----------------------1978 MM-----------------------------12 MONTH-------------------------MAY5、group 函數(shù)avg,count,max,min,stddev,sum,variance;五、數(shù)據(jù)字典用戶表:由用戶創(chuàng)建,包含用戶的內(nèi)容數(shù)據(jù)字典:由系統(tǒng)建立,包含數(shù)據(jù)庫的信息;前綴:USER_ :由用戶創(chuàng)建,顯示用戶擁有的所有對象。 ;ALL_ :由受權(quán)的用戶訪問, 用戶可以訪問的對象名。DBA_ :由受了DBA權(quán)限的人訪問,顯示數(shù)據(jù)庫的所有對象。V$ :由受了DBA權(quán)限的人訪問,顯示數(shù)據(jù)字典數(shù)據(jù)庫服務(wù)器性能信息。通常是DBA用于顯示系統(tǒng)的統(tǒng)計(jì)表和動態(tài)性能表。;數(shù)據(jù)字典DICTIONARY數(shù)據(jù)字典提供用戶可以訪問的數(shù)據(jù)字典表和視圖的描述。 USER_OBJECTS顯示用戶擁有的對象。 USER_VIEWS顯示用戶擁有的視圖。 USER_TABLES顯示用戶擁有的表。 ALL_TABLES顯示用戶可以訪問的表。 ALL_VIEWS顯示用戶可以訪問的視圖。 USER_CATALOG顯示用戶擁有的所有表,視圖,同義詞和序列。 USER_CONS_COLUMNS顯示帶約束的列。 DBA_CONS_COLUMNS顯示數(shù)據(jù)庫里的所有表,視圖和同義詞。 USER_TAB_PRIVS_MADE:本用戶賦給別的用戶賦予權(quán)限的表USER_TAB_PRIVS_RECD:其他用戶給本用戶賦予權(quán)限的表USER_COL_PRIVS_MADE:本用戶賦給別的用戶賦予權(quán)限的字段USER_COL_PRIVS_RECD:其他用戶給本用戶賦予權(quán)限的字段ROLE_SYS_PRIVS:有什么系統(tǒng)權(quán)限賦給roleROLE_TAB_PRIVS:有什么關(guān)于表的權(quán)限賦給roleUSER_ROLE_PRIVS:role和用戶的對應(yīng)表;常用的表user_objects:用戶對象表(存儲用戶的所有對象)存儲以下的類型的數(shù)據(jù)Selina Sql>select distinct object_type from user_objects;INDEXLOBPACKAGEPACKAGE BODYPROCEDURESEQUENCESYNONYMTABLETRIGGERVIEWUser_catalog:用戶類表,存儲以下的類型的數(shù)據(jù)Selina Sql>select distinct table_type from user_catalog;SEQUENCESYNONYMTABLEVIEW;六、建立對象1、 表a);;基本概念Ø數(shù)據(jù)庫會分配一定的空間從而定義表的大小,所以表的大小不用指定。Ø表可容納最多1000列。Ø表可在用戶使用數(shù)據(jù)庫的同時創(chuàng)建,而且表的結(jié)構(gòu)可在表聯(lián)機(jī)時修改。ØRENAME語句的語法 : RENAME old name TO new name; 注重要是表名中包含空格,符號或數(shù)字,必須使用雙引號Ø在CREATE TABLE子句中使用子查詢,新表中的列數(shù)必須與子查詢返回的列數(shù)相等,列位置對應(yīng)。另外,除NOT NULL約束外,新列不會繼續(xù)源列的所有約束。Ø你不能對一列重命名。在表中添加一列時,你不能指定該列的位置,它會被默認(rèn)放置在最后。你可以為一列增加長度。 通常當(dāng)一列包含數(shù)據(jù)時,你不能修改該列的數(shù)據(jù)類型,不能減少一列的長度,但當(dāng)列中包含空值或你不改變列的大小時,你可以把CHAR 轉(zhuǎn)換為VARCHAR2數(shù)據(jù)類型。Ø在DROP TABLE table命令后加上CASCADE CONSTRAINTS回把表中的相關(guān)約束一并刪除。如命令:'DROP TABLE employee CASCADE CONSTRAINTS;'會把employee表中的數(shù)據(jù),結(jié)構(gòu),和相關(guān)約束一并刪除。Ø當(dāng)你創(chuàng)建一個數(shù)據(jù)類型為VARCHAR2的列時,必須指定長度。Ø為表加注釋:comment on table tablename; is ‘………’;ØCOMMENT ON TABLE命令用于在數(shù)據(jù)字典里添加關(guān)于表,視圖或快照的注釋。Ø但你對一表執(zhí)行了DML語句的INSERT操作時,但沒有提交,別人可以同時訪問該表,但看不到你所作的修改,由于對象被加鎖,所以別人不能作同樣的修改。b);;建表原則以字母開頭不可以超過30個字只能由數(shù)字,字母,_,$,#組成用子查詢建立表create table tablename as select …..;c);;刪除表drop table tablename刪除所有的數(shù)據(jù)刪除所有相關(guān)的index所有待解決的事務(wù)會自動提交不可以回滾不釋放空間;
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 精品国产日韩久久亚洲 | 视频一区在线播放 | 成人做爰网站免费看 | 97香蕉久久夜色精品国产 | 日本午夜人成免费视频 | 好湿好紧好痛a级是免费视频 | 欧美成人免费全部色播 | 一级性毛片 | 成 人 a v黄 色 | 点击进入不卡毛片免费观看 | 在线观看日本污污ww网站 | 2级毛片| 中国美女牲交一级毛片 | 九九色网 | japanese乱子另类| 色伊人国产高清在线 | 精产网红自拍在线 | 男人天堂手机在线 | 免费观看欧美一级高清 | 欧美毛片网站 | 天天看片天天爽_免费播放 天天看夜夜 | 在线国产一区二区三区 | 在线观看自拍视频 | 成人黄色在线网站 | 97视频在线观看免费播放 | a毛片视频免费观看影院 | 国产在线精品福利一区二区三区 | 亚洲v视频 | 91久久精品国产91久久性色也 | 一个人看的日本免费视频 | 亚洲一区2区三区4区5区 | 小明台湾成人永久免费看看 | 最新版天堂资源中文官网 | 亚洲第一页视频 | 国产在线视频专区 | 亚洲欧美日韩在线观看二区 | 亚洲三级视频在线观看 | 日韩精品一区二区三区视频 | 91精品国产综合久久久久久 | 天码毛片一区二区三区入口 | 中文字幕天堂最新版在线网 |