oracle數據庫學習筆記(一)


1.什么是Oracle數據庫?

數據庫:存放、操作、管理數據的倉庫。
數據最終保存計算機的磁盤上。
項目開發:淘寶網 -->.txt
Oracle:甲骨文公司
全球第二大軟件廠商
第一:微軟
第三:IBM
第四:愛斯普
第五:賽門鐵克
Oracle數據庫:Oracle甲骨文公司所研發
和推出的一款關系型數據庫軟件。

2.為什么要學習、使用數據庫?
數據庫的好處、優點
1)file文件
學生管理系統
保存數據的格式不規范。
解析數據的方式不統一。
2)xml格式
可擴展標記語言
xml主要用於輕量級的數據存儲和傳輸
SAX解析 Dom解析 Dom4j解析
<students>
<student>
<id>1001</id>
<name>Jack</name>
<age>22</age>
<gender>男</gender>
</student>
</students>
3)數據庫軟件
非輕量級的數據管理軟件。
下載、安裝、配置環境.....
當上述步驟一旦執行完畢,
用來處理數據和操作數據相當的高效和方便。

常見關系型數據庫的分類:
1)大型數據庫
Oracle db2(IBM) ....
特點:存儲量大、安全性高 收費
銀行 大型企業
花旗銀行 一台40000 40台一組
2)中型數據庫
Mysql SqlServer
特點:存儲量較大、安全性較高 免費
3)小型數據庫
Access(微軟) Sqlite
特點:存儲量較小、安全性較低
就是一個文件。
移動端開發、嵌入式設備開發

3.如何學習使用數據庫?
學習對數據進行CRUD(增刪改查)的操作。
CURD
Create Read Update Delete
在關系型數據庫中,CRUD是通過SQL指令實現的。
SQL:結構化的查詢語句。
查詢student表中的全部內容:
select * from student;
查詢teacher表
select * from teacher;
PL/SQL:在原有的sql命令基礎之上,
加了一些邏輯判斷。例如if else for
SQL*PLUS:Oracle自帶的一個客戶端工具,
用來向Oracle服務器發送、執行sql命令。


4.表(table)
最基本的存儲單元。
有行有列
表格中有哪些種類的數據取決於有哪些列(字段)
每插入一條數據,就是插入一行數據。
列決定了表格結構,
行決定了表格具體數據內容。

學生管理系統:
1)學生表(學號、姓名、性別、年齡、班級)
1 張三 男 22 1001
2)課程表(課程編號、課程名、課程描述)
1 java基礎 面向對象編程技術
2 Oracle數據庫基礎 。。。。
3)學生選課表(學生學號、課程編號)
1,1
1,2
4)教師表(教工號、姓名、性別、年齡...)
5)教師授課表(課程編號,教工號)

1 張三 男 40 java基礎 公共選修課 面向對象編程
2 李四 女 50 java基礎 公共選修課 面向對象編程
數據冗余

1號學生 張三 40歲 男
2號學生 張三 40歲 男

關系型數據庫:
數據庫中數據和數據之間是存在一定關聯的。
1)表自己存在二元關系 二維關系
行和列交錯
2)表與表之間存在關聯關系
非關系型數據庫:
Redis:一種運行在內存中的非關系型數據庫。
保存的數據全部都是鍵值對。
key = value
name=zhangsan
address=suzhoushi
age=22
company=briup
關系型數據庫中實體的關系有三種:
1)一對一
一個A只能對應一個B
一個B只能對應一個A
丈夫和妻子的關系屬於一對一關系。
丈夫表(id,姓名,年齡,妻子id)
1 張三 23歲 10
妻子表(id,姓名,年齡)
1 王翠花 22歲
處理方式:通過主鍵和外鍵
可以把外鍵放在任意一方。
2)一對多
一個A可以對應很多個B
但是每個B只能對應一個A
小組和成員的關系
一個小組中可以容納很多個成員
但是每個成員只能加入一個小組。
小組表(小組編號,小組名,小組描述)
成員表(成員編號,姓名,性別,小組編號)
1 張三 男 S1
處理方式:通過外鍵。
外鍵應該放在多的一方。
3)多對多
一個A可以對應很多個B
一個B也可以對應很多個A
學生和課程的關系
學生表(學號、姓名、性別、年齡、班級)
課程表(課程編號、課程名、課程描述)
處理方式:建立一張橋表。
學生選課表(學生ID、課程ID、選課時間)
處理思想:把一個多對多變成了
兩個一對多。

5.SQL的分類
分為五種:
1)DDL Database Design Language
數據庫定義語言
用來定義數據庫對象(表)的結構。
創建表:create table
修改表:alter table
刪除表:drop table
截斷表:truncate table
單純地對表的表名、字段做操作
不涉及到表中具體的數據。
2)DCL Database Control Language
數據庫控制語言
用來控制數據庫中用戶的權限
向用戶賦予權限:grant 權限/角色 to 用戶名;
撤銷用戶的權限:revoke 權限/角色 from 用戶名;
3)DML Database Manipulation Language
數據庫操縱語言
操縱的是具體到表中的數據。
包含:增加 刪除 修改
插入數據:insert
刪除數據:delete
修改數據:update
特點:具有事務性。
事務性:每次執行一條/一批sql語句的過程
都看做是一次事務。
事務需要提交。如果不提交事務,
則DML語言所做的修改,不會真實生效。
在提交事務之前,
事務可以回滾到上一個節點。
4)DQL Database Query Langauge
數據庫查詢語言
select
查詢語句是數據庫中最簡單的sql
也是最復雜的sql
select * from 表名;
5)DTL Database Transiction Language
數據庫事務語言
用來控制事務的提交、回滾
提交:commit;
回滾:rollback;

6.Oracle數據庫中的六大對象
1)*表 table
是關系型數據庫中最基本的存儲單位。

2)視圖 view
不是一張真正的表。是一張虛表。
視圖中顯示的內容需要依賴於其它表的內容。
本質就是一條select查詢語句。

3)*序列 sequence
Oracle中特有的對象。
用來產生唯一值。
通過指定規則,序列可以產生一組特定數值。
常用於生成主鍵ID的值。

4)索引 index
索引加在數據庫表中的某些字段上,
可以提高該字段的檢索效率。
一些經常查詢的字段,就可以加上索引。
加了索引之后,查詢時會優先查詢這些字段。
不要在不經常使用的字段上加索引。

5)*同義詞 synonym
給數據庫中的對象起一個別名。
HOSPITAL_MANAGE_SYSTEM_SYS_USER
起個別稱:user

6)存儲單元/程序單元 program unit
PL/SQL所操作的對象。

一個認知
什么是Oracle?
兩個概念
1.什么是數據庫
2.什么是關系型數據庫
三個名詞
SQL
SQL*PLUS
PL/SQL
四個約束
主鍵約束--實體性完整性約束
外鍵約束--參照性完整性約束
列級約束
表級約束
五個分類
SQL語句的五種分類
1)DDL
2)DCL
3)DML
4)DQL
5)DTL
六個對象

視圖
序列
索引
同義詞
程序單元


在SQLPLUS中訪問和操作數據庫:

1.打開SQLPLUS工具
1)打開CMD,在命令行輸入指令:SQLPLUS
win+r 彈出運行窗口 輸入CMD
前提是環境變量配置正確

檢查環境變量中的PATH的值:
有沒有正確添加Oracle數據庫的BIN目錄
2)直接打開oracle自帶的終端SQLPLUS

區別:如果在cmd中運行sqlplus命令的話,直接需要輸入賬號和密碼
如果運行的是oracle自帶的終端的話
可以不輸入賬號密碼

2.使用賬號和密碼進行登錄
oracle已經給我們預設好了兩個管理員賬號
可以直接用來登錄
1)sys 權限最大 董事長
2)system 權限其次 總經理
密碼是安裝的過程中設定的密碼。oracle
不推薦直接使用管理員賬號對數據庫進行操作。
使用管理員賬號創建一個普通賬號用來操作數據。

登錄過程:
1)CMD 直接提示輸入賬號--> system -->回車 -->提示輸入密碼
-->輸入密碼 回車
2)直接打開SQLPLUS終端
使用指令conn 賬號/密碼
conn不是登錄的意思
是連接賬號的意思
在登陸了某個賬號的狀態下,
也可以使用conn命令切換賬號。

查看當前登錄的用戶: show user


創建一個用戶:
create user 用戶名 identified by 密碼;
例如:創建一個名為briup 密碼為oracle的用戶:
create user briup identified by oracle;

向創建好的用戶賦權:
grant 權限/角色 to 用戶名;

一般要賦予兩個最基本的角色:
connect 包含創建連接、發起會話的權限
resource 包含操作數據中的表以及表中數據的權限。
增刪改查
SQL:grant connect,resource to briup;

切換到briup用戶:
conn briup/oracle

3.修改會話語言環境
為什么要修改會話語言環境?
在插入的數據當中包含日期類型的數據。
日期類型數據在中英文環境下表現是不同的。

alter session set nls_language='english';
alter session set nls_language='simplified chinese';

nls:native language support 地區化語言支持

4.導入數據(執行.sql腳本)
.sql:一批sql命令,集合在一個文件中。
可以批量執行sql命令。
把一批sql命令放到.sql腳本中,
在終端直接執行這個文件,就相當於逐條執行sql命令。

執行方式:
1)start 目錄+文件名
2)@目錄+文件名
注意書寫方式區別:start后面有空格,@后面沒有空格。

查看數據是否導入成功:
查詢s_emp表中有多少數據?
select count(*) from s_emp;

 

三張表
員工表 s_emp
部門表 s_dept
區域表


查看表中的字段

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM