国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

oracle數(shù)據(jù)庫中sql基礎(chǔ)

2024-08-29 13:28:59
字體:
供稿:網(wǎng)友
    一、關(guān)系數(shù)據(jù)庫的一些概念
  
 1、主鍵的值一般不可以改變
  
 2、外鍵:指向另一個(gè)表或本表的主鍵或唯一鍵的字段。外鍵的值一定要和某一主鍵相同,或者為空。
  
 3、數(shù)據(jù)庫對(duì)像:表,視圖,序列,索引,同義詞,程序(進(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,savepoint
  data control language(dcl)數(shù)據(jù)控制語言:grant,revoke
  dcl 和ddl命令的執(zhí)行會(huì)導(dǎo)致一次隱式提交,之前未提交的操作(包括dml 命令)都會(huì)提交寫入日志文件,并在適當(dāng)?shù)貢r(shí)候?qū)懭霐?shù)據(jù)文件。
  
 二、sql的語法
  
 1) 連接號(hào):||
  
 2) 把兩個(gè)字符連接起來
  eg:select game_card_type_id||name from game_card_type;
  
 3) select distinct dept_id,title from emp: 對(duì)多個(gè)字段的唯一
  
 4) order by desc(降序)
  order by asc(升序)
  
 5) where column is (not) null
  
 6) like ‘_a%’  _表示一個(gè)字符。%表示多少字符
  like ‘%x/_y%’ escape ‘/’:顯示包括x_y的字符
  
 7) where table1.column(+)=table2.column
  place 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ù)所用的列包含空值時(shí),空值行被忽略。
  
 10) where 后的in any all 的區(qū)別
  in :等于子查詢的任何一個(gè)數(shù)
  any :與子查詢的每一個(gè)值相比
  只要比其中一個(gè)大(?。┚涂梢粤?br>  all:與子查詢的所有值相比要比所有的的都大(?。?br>  !=all作用跟not in 一樣
  
 三、sql*plus的環(huán)境(可以在glogin.sql中定義初始參數(shù))
  
  1) start 命令用以執(zhí)行一個(gè)已儲(chǔ)存的文件,等同于@
  
  2) save命令用以創(chuàng)建一個(gè)文件
  
  3) edit命令用以調(diào)用編輯器編輯已存文件的內(nèi)容
  
  4) change 是sql*plus的編輯命令,用于在當(dāng)前一行把舊文段轉(zhuǎn)換為新文段
  
  5) del 命令用以刪除文本中一行或多行文字
  
  6) spool命令用以把查詢結(jié)果儲(chǔ)存在一個(gè)已有文件中,注意與save區(qū)別
  
  7) get命令用以一個(gè)文件的內(nèi)容寫進(jìn)一個(gè)sql塊中
  
  8) spool out命令用以把文件的結(jié)果發(fā)送到系統(tǒng)打印機(jī)。
  
  9) set pause off/on:設(shè)置頁面的滾動(dòng)。按enter看下一頁。
  
  10) pagesize:指定每頁顯示的行的數(shù)值,
  
  11) long:設(shè)置long類型數(shù)據(jù)顯示的最大寬度
  
  12) feedback:設(shè)置查詢返回記錄的最大值
  
  13) describe :用于顯示表和視圖的結(jié)構(gòu),同義詞,或指定函數(shù)和過程的詳述。
  
  14) timing:可以看到語句執(zhí)行的時(shí)間
  
  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.sql
  
  16) 在各種數(shù)據(jù)類型中,只有number數(shù)據(jù)類型的默認(rèn)顯示是靠右對(duì)齊的,而char, date和varchar2是靠左對(duì)齊的
  
  17) quit 是sql*plus命令,用以結(jié)束一個(gè)sql*plus的對(duì)話。
  
  18) ttitle:
  ttitle ‘selina’ 設(shè)select 的結(jié)果的抬頭為selina
  tti :顯示ttitle的狀態(tài)
  tti off/on
  btitle ‘end’ 設(shè)結(jié)果的尾部
  
  19) column:
  
  a) column name heading ‘名字’format a15
  
  b) column id justify left format 999999
  
  c) column start_date format a9 null ‘not hired’//當(dāng)字段為空的時(shí)候則顯示成not hired
  
  d) column :顯示所有的column設(shè)置
  
  e) column columnname:顯示某一個(gè)字段的設(shè)置
  
  f) clear column :清除所有column設(shè)置
  
  g) column columnname clear:清除某一字段的設(shè)置
  
  h) 以上的column可用col代替.clear可以用cle代替
  
  13)定義變量
  
  用&:由用戶輸入變量值,此變量可以存在于where后,做為整個(gè)查詢語句的變量。也可以在order by 后。做為字段的變量。也可以放在select 后,做為字段或表達(dá)式的變量。
  
  用&&:如果多個(gè)地方引用此變量。。只用輸入一次
  
  sql> select empno, ename, job, &&column_name
  from emp
  order by &column_name;
  
  accept:由用戶輸入變量值
  accept 變量名 datatype prompt ‘告訴用戶需要輸入的信息:’ hide
  引用的時(shí)候:&變名
  define(undefined):一開始就定義變量值
  
 四、函數(shù):
  
  1、字符函數(shù)
  
  lower:把字符轉(zhuǎn)成小寫
  upper:把字符轉(zhuǎn)成大寫
  initcap:把單詞的第一個(gè)字母變成大寫
  concat:連接字符 concat(‘good’,’morning’)=goodmoring
  substr (column/expression, m[,n]) 用于對(duì)字符串進(jìn)行截取操作,從第m個(gè)位置開始,把其后的連續(xù)n個(gè)字符的部分截取下來,如果m位負(fù)值,則從末尾開始計(jì)算。
  eg:substr(‘string’,1,3) =str
  substr(‘string’-3,3)=ing
  instr('string', 'r')=3
  lpad(sal,10,'*') =*******sal
  length: 用于返回表達(dá)式中的字符數(shù),注意返回的是number。
  nvl(expression1, expression2)
  nvl 函數(shù)用以把一個(gè)空值轉(zhuǎn)換為一個(gè)實(shí)值,如:
  nvl(100/quantity, 0) ,要是quantity為空值,該函數(shù)返回一個(gè)0。
  如果兩個(gè)字段類型不同必須進(jìn)行轉(zhuǎn)換。
  min():返回最小值。。如果是字符。。a  
  2、數(shù)學(xué)函數(shù)
  
  round:四舍五入
  round(2.566,2)=2.27
  round(45,-1)=50
  trunc: 截?cái)?br>  trunc(2.566,2)=2.56
  trunc(45,-1)=40
  mod:
  mod(m,n):m-n*flood(m/n)   file://flood是取整數(shù)
  
  3、日期函數(shù):
  
  a) months_between(date1,date2):算date1和date2之間的月的數(shù)量,可以是小數(shù)可以是負(fù)數(shù)
  months_between(’01-sep-95’,’11-jan-94’)=1.9774194
  
  b) add_months(date,n):為date加上n個(gè)月,n只可以是整數(shù)
  
  c) next_date(date,’char’):查找date的下一個(gè)星期n
  next_date(’01-sep-95’,’friday’)=08-sep-95
  
  d) last_day(date):查找date月的最后一天。
  
  e) rount(date):把日期四舍五入
  
  f) rount(25-may-95’,’month’)=01-jun-95
  
  g) rount(25-may-95’,’year’)=01-jan-95
  
  h) trunc(date):把日期截?cái)?br>  
  i) trunc (25-may-95’,’month’)=01-may-95
  
  j) trunc (25-may-95’,’year’)=01-jan-95
  
  k) 日期中rr與yy的區(qū)別,rr格式對(duì)日期作類似于舍入的操作,yy格式對(duì)日期作類似于截取的操作
  rr  yy
  1995 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前綴用來去除首尾的空字符或0
  to_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-------------------------may
  
  5、group 函數(shù)avg,count,max,min,stddev,sum,variance
  
 五、數(shù)據(jù)字典
  
  用戶表:由用戶創(chuàng)建,包含用戶的內(nèi)容
  
  數(shù)據(jù)字典:由系統(tǒng)建立,包含數(shù)據(jù)庫的信息
  
  前綴:
  user_ :由用戶創(chuàng)建,顯示用戶擁有的所有對(duì)象。
  
  all_ :由受權(quán)的用戶訪問, 用戶可以訪問的對(duì)象名。
  
  dba_ :由受了dba權(quán)限的人訪問,顯示數(shù)據(jù)庫的所有對(duì)象。
  
  v$ :由受了dba權(quán)限的人訪問,顯示數(shù)據(jù)字典數(shù)據(jù)庫服務(wù)器性能信息。通常是dba用于顯示系統(tǒng)的統(tǒng)計(jì)表和動(dòng)態(tài)性能表。
  
  數(shù)據(jù)字典
  
  dictionary數(shù)據(jù)字典提供用戶可以訪問的數(shù)據(jù)字典表和視圖的描述。
  user_objects顯示用戶擁有的對(duì)象。
  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)限賦給role
  role_tab_privs:有什么關(guān)于表的權(quán)限賦給role
  user_role_privs:role和用戶的對(duì)應(yīng)表
  
  常用的表
  
  user_objects:用戶對(duì)象表(存儲(chǔ)用戶的所有對(duì)象)存儲(chǔ)以下的類型的數(shù)據(jù)
  selina sql>select distinct object_type from user_objects;
  index
  lob
  package
  package body
  procedure
  sequence
  synonym
  table
  trigger
  view
  user_catalog:用戶類表,存儲(chǔ)以下的類型的數(shù)據(jù)
  selina sql>select distinct table_type from user_catalog;
  sequence
  synonym
  table
  view國內(nèi)最大的酷站演示中心!
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 麻江县| 广饶县| 鹤峰县| 柯坪县| 扎赉特旗| 凤凰县| 五华县| 巴楚县| 江都市| 监利县| 湛江市| 洛川县| 曲松县| 海伦市| 桓仁| 永仁县| 宜州市| 封丘县| 清苑县| 安乡县| 新竹市| 桐柏县| 开平市| 东莞市| 那曲县| 潮安县| 郁南县| 怀宁县| 东海县| 井冈山市| 田阳县| 五莲县| 保亭| 芷江| 太谷县| 饶平县| 石阡县| 清河县| 宜春市| 石首市| 苏尼特右旗|