oracle学习笔记(一)------oracle基础知识和基本sql语句
最近一直在學(xué)習(xí)oracle,總結(jié)了一些學(xué)習(xí)筆記,我會(huì)陸續(xù)貼出來,和網(wǎng)友交流?,希望能給一些初學(xué)者提供幫肋,也希望能有高手指點(diǎn)。
?
oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)
? 包括 表空間,段,區(qū)間和數(shù)據(jù)塊
??? 表空間:所有的表的集合,分為System系統(tǒng)表空間,Users用戶表空間,Temp臨時(shí)表空間,tools工具表空間
??? 段:把表空間進(jìn)一步劃分成段,不同的段存放的數(shù)據(jù)不同,如,數(shù)據(jù)段,臨時(shí)段,回滾段,索引段等
??? 區(qū)間:將段進(jìn)一步劃分成區(qū)間,區(qū)間是分配單元,對數(shù)據(jù)進(jìn)行分配
??? 塊:區(qū)間中又劃分成塊,
從邏輯上講,一個(gè)數(shù)據(jù)庫由若干個(gè)表空間組成,每個(gè)表空間中有若干個(gè)表,每個(gè)表又可以分為數(shù)據(jù)庫段(Data Segment)和索引段,每個(gè)段中
又可以分為若干個(gè)數(shù)據(jù)庫區(qū)間(Extent),每個(gè)數(shù)據(jù)區(qū)間由若干個(gè)數(shù)據(jù)塊組成。由此可見,數(shù)據(jù)塊是最基本的存儲單位,而表空間,表,段,區(qū)
間以及模式對象則是邏輯組織的構(gòu)成成員?
?
------------------
SQL語言的命令通常分為四類
1、數(shù)據(jù)定義語言(DDL)
創(chuàng)建、修改或刪除數(shù)據(jù)庫中各種對象,包括表、視圖、索引等。
命令:CREATE TABLE , CREATE VIEW, CREATE INDEX、ALTER TABLE ,
DROP TABLE , DROP VIEW, DROP INDEX
2、查詢語言(QL)
按照指定的組合、條件表達(dá)式或排序檢索已存在的數(shù)據(jù)庫中數(shù)據(jù),
不改變數(shù)據(jù)庫中數(shù)據(jù)。
命令:SELECT…FROM…WHERE…
3、數(shù)據(jù)操縱語言(DML)
對已經(jīng)存在的數(shù)據(jù)庫進(jìn)行元組的插入、刪除、修改等操作
命令:INSERT、UPDATE、DELETE
4、數(shù)據(jù)控制語言(DCL)
用來授予或收回訪問數(shù)據(jù)庫的某種特權(quán)、
控制數(shù)據(jù)操縱事務(wù)的發(fā)生時(shí)間及效果、對數(shù)據(jù)庫進(jìn)行監(jiān)視
命令:GRANT、REVOKE、COMMIT、ROLLBACK
??
-----------------------------------
用戶名scott/tiger 可進(jìn)行式例數(shù)據(jù)庫的操作
-----------------------------------
select table_name from user_tables; 查看有那些用戶表
??(最后的分號是結(jié)束并執(zhí)行)
-----------------------------------
修改用戶密碼
在dos下輸入D:/>sqlplus /nolog
conn / as sysdba
show user;
alter user sys identified by oracle;?
最后這條語句是修改sys賬戶的密碼為oracle
insert into aa(id,name,birthday)
values (01,'lily',SYSDATE);
SYSDATE 當(dāng)前系統(tǒng)時(shí)間日期函數(shù),oracle中函數(shù)中如果沒有參數(shù),后面的括號可省略
-----------------
insert into aa(id,name,birthday)
values (01,'lily',TO_DATE('2006-5-6','yyyy-MON-DD'));
TO_DATE('日期的字符串','日期時(shí)間的格式') 添加指定日期字段,必須用這個(gè)日期轉(zhuǎn)換函數(shù)
-----------------
set linesize 500 設(shè)置行寬度為500
set pagesize 100 設(shè)置每頁顯示100行
run 執(zhí)行剛才最后執(zhí)行的sql語句 (可簡寫為r或/)
alter session set nls_date_format='YYYY-MM-DD';
???????? 修改會(huì)話,使表中存儲日期的格式是 YYYY-MM-DD
?
desc 表名 :查看表結(jié)構(gòu)
ed: 如果用戶輸入sql語句有錯(cuò)誤,可以輸入ed打開一個(gè)afiedt.buf文件,里面存放著上一回輸入的sql語句
??? 修改后,輸入/可重復(fù)執(zhí)行剛才改過的sql語句
------------------
使用綁定變量,給數(shù)據(jù)庫中插入多個(gè)記錄
insert into aa(id,name,sal)
values (&employeeno,'&employeename',&employeesal);
? 回車后會(huì)提示給這三個(gè)變量輸入值
然后用run或r或/可重復(fù)執(zhí)行給表中插入記錄的操作
-----------------------------------
從其它表中復(fù)制數(shù)據(jù)
?insert into aa(id,name,address)
????? select id,name,address
????? from bb where address='jl';
----------------------------------
更新
update aa set name='zhangsan' where address='jl';
----------------------------------
clear screen 清屏
----------------------------------
commit; 提交事務(wù)
rollback; 回滾事務(wù)
當(dāng)?shù)谝粭lsql(DML:數(shù)據(jù)操縱語言)語句被執(zhí)行時(shí),事務(wù)便開始了
當(dāng)出現(xiàn)下面的事件時(shí),事務(wù)便結(jié)束:
-commit or rollback被執(zhí)行時(shí),把前面的事務(wù)提交,事務(wù)結(jié)束
-DDL(數(shù)據(jù)定義語言) or DCL(數(shù)據(jù)控制語言) 被執(zhí)行時(shí)(自動(dòng)提交)
-用戶退出
-系統(tǒng)中止
事務(wù)保存點(diǎn):可以有選擇的返回到事返的某個(gè)保存點(diǎn)
比如,執(zhí)行一條sql語句, update......
???savapoint 事務(wù)保存點(diǎn)名1
??? 執(zhí)行其它sql語句
???rollback to 事務(wù)保存點(diǎn)名1?? (回滾到“事務(wù)保存點(diǎn)名1”)
----------------------------------
null值在算術(shù)表達(dá)式中的使用
如果在查詢中,進(jìn)行運(yùn)算時(shí),在運(yùn)算中的字段有空值,它的結(jié)果為空
select id,name, sal*10+comm form s
?????? 這里假如某人的comm字段的值為空,它運(yùn)算的結(jié)果就為空
解決辦法是這種運(yùn)算用函數(shù)去做
------------------
select id||''||name as employees form emp
? 這里的||和sqlserver中的+一樣,字符串連接符,功能是兩個(gè)字段連接在一起
------------------------------------
select * from s where name='AA';
? 這里的where中的查詢條件的內(nèi)容必須為大寫,不然找不到任何結(jié)果
select name address sal from aa where sal between 1000 and 1500;
select name address sal from aa where sal in(1000,1200,1500);
select name address sal from aa where name like 'Z%';?? (%代表多個(gè)字符)
select name address sal from aa where name like 'Z_';?? (_代表一個(gè)任意字符)
select name address sal from aa where address is null;? (顯示所有address為空的記錄)
限制重復(fù)行
select distinct name from aa;
總結(jié)
以上是生活随笔為你收集整理的oracle学习笔记(一)------oracle基础知识和基本sql语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java1.5语言新特性简单总结
- 下一篇: struts+spring的配置方式总结