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