1. 程式人生 > >資料庫基礎知識彙總

資料庫基礎知識彙總

最近在複習期末考,就順便把這些筆記儲存下來,也方便以後檢視,涉及的都是一些基礎知識,大牛勿噴啊,有錯誤之處歡迎指教~~~~

首先,當然得記住一些常用的詞彙啊!!!下面就把會出現的詞彙都大概的總結出來,方便檢視,省得滿文章的去找(英語好的就自行跳過吧!)。當然,不是純純的單詞翻譯,後面跟的文字可能是翻譯也可能是他用到的地方。

-DBCC ShrinkDataBase :收縮資料庫
- Constraint :約束 (資料完整性約束條件定義時用到)
- Primary Key :主鍵約束
- Unique :唯一性約束
- Clustered | Nonclustered :聚集索引或非聚集索引
- Check: 檢查約束
- Default :預設約束
- Foreign Key:外來鍵約束
- On update Cascade On deleteCascade :外來鍵約束中的級聯更新和刪除
- SQL: Structured Query Language 結構化查詢語言
- Having :篩選組
- Exists:存在
- Union:聯合
- Truncate Table :清空表(不記錄日誌操作,無法恢復)
- Begin Transaction :事務開始
- Commit Transaction :事務結束,執行過程成功
- Rollback Transaction: 事務回滾,執行過程出錯
- Set Implicit_Transactions On:隱式事務開始
- Set Implicit_Transactions Off:隱式事務關閉
- @@Trancount:檢測連線事務處理巢狀的層數
- Sysobjects:主要記錄新表的基本資訊
- Syscolumns :主要記錄新表的列資訊
- Sysindexes:主要記錄指向新表鎖使用的儲存空間和主鍵等資訊。
- excute:執行
- @@fetch_status:取得最後一次遊標資料提取操作結果狀態,0表示成功,-1表示失敗,-2表示要取得行不在記錄集內,已從集合中刪除。
- PROCEDURE:儲存過程

資料庫基礎和設計

  • 資料庫系統包括資料庫、資料庫管理系統、資料庫的使用者和支撐資料庫管理系統執行的軟硬體。
  • 資料庫五個常用的物件是:表、儲存、檢視、觸發器、索引。
  • 資料庫物件的三種關係:一對一、一對多、多對多。
  • 資訊是有用的資料,資料是資訊的表現形式。資訊的特點是:無限性、共享性、創造性。
  • 模式是資料庫中全體資料的邏輯結構和特徵的描述。資料庫的三級模式:內模式(物理層)、概念模式(邏輯層)、外模式(使用者層)。
  • 資料庫系統的使用者結構:單使用者結構、主從式結構、客戶-伺服器模式結構和分散式結構。
  • 第一正規化:在一個關係中消除重複的欄位,且每個欄位都是最小的邏輯儲存單位。
  • 第二正規化:所有非主鍵欄位完全依賴於主鍵,不存在非主鍵欄位部分依賴主鍵。
  • 第三正規化:去除傳遞依賴(不要包含可以通過計算得到或推導得到的欄位)。

資料庫結構和管理

  • 主資料檔案(.mdf):資料庫的起點,可以指向資料庫中檔案的其他部分。
  • 次資料庫檔案(.ndf)
  • 事務日誌檔案(.ldf):包含恢復資料庫所需的所有日誌資訊。
  • 收縮資料庫 DBCC SHRINKDATABASE(資料庫名稱,收縮後的大小)

表的儲存原理及完整性建立管理

  • 資料型別:
  • 數值型:BIGINT , INT , SMALLINT , TINYINT , DECIMAL和NUMERIC , FLOAT 和 REAL
  • 貨幣型:MONEY , SMALLMONEY
  • 字元型:CHAR , VARCHAR , TEXT
  • 日期時間型別:DATETIME , SMALLDATETIME
  • 完整性約束條件
  • 空值約束 : null | not null
  • 主鍵約束:Constraint PK_課程表_課號 PRIMARY KEY (課號)
  • 唯一性約束:Constraint 約束名 unique [ clustered | nonclustered] (列名)
  • 檢查約束:Constraint CK_課程表_課號 check(課號 like ‘s[0-9][0-9][0-9][0-9]’)
  • 預設約束:性別 char(2) Default ‘男’
  • 外部鍵約束:Constraint FK_開課表_課號 Foreign Key (課號) References 課程表(課號) on update cascade on delete cascade(包含了級聯刪除和修改)
  • 修改表結構:ALETR 跟屬性列有關的約束和索引刪除後,指定的屬性才能刪除。
  • 使用DROP Table 語句不能刪除系統表和被Foreign Key 約束所參照的使用者表,必須先刪除引用的外來鍵約束或引用的表。
    ~~~感覺分不清哪張表可以刪除,哪張不可以了????下面就用例子說明吧,如下所示:建立了兩張表,mainTB和foreignTB,foreignTB中的學校欄位受外來鍵約束,此時我們不能刪除mainTB,而foreignTB是可以直接刪除的,當然,如果刪除了foreignTB則mainTB也就可以刪除了!
    這裡寫圖片描述

查詢處理和表資料編輯

  • 起別名:當別名有空格時要加上”,eg: ‘new name’。
  • Distinct關鍵字作用的範圍是整個查詢列表,而不是單個的列,因此distinct要放在select後面。
  • 涉及空值的查詢,要用exp is [not] null,而不能用”=“ 或者 ”!=“ 或者 ” <>“代替。
  • 如果在select中用了計算列,並且要求按這個計算列進行排序,則在order by子句中有三種方式表示:
      1.計算列的順序編號 2.計算列的表示式 3.計算列的別名
select 學號,成績,成績+10 as 新成績
from 學生表
order by 3        --第二種方式:計算列的順序編號
order by 成績 +10 --第二種方式:計算列的表示式
order by 新成績   --第三種方式:計算列的別名
  • 分組查詢
      Group by 子句可以將查詢結果集按一列或多列取值相等的原則進行分組。
--查詢個門課程的課程名級相應的選課人數
select 開課號,count(學號) From 選課表 group by 開課號

group by 子句中的列名只能是From子句所列表的列名,而不能是別名。
select目標列表達式所涉及的列必須滿足,要麼在group by 子句中,要麼在某個統計函式中。

--查詢學號前5位為"s0601"且選修了兩門以上課程的學生的學號
select 學號 from 選課表 where 學號 like 's0606%' group by 學號 having count(*) >=2

where 和 having的區別:
1.作用物件不同(where -> 表;having -> 組);
2.選擇條件的構成有差異,where 條件不能直接包含統計函式,而having條件所涉及的列必須要麼在group by子句中,要麼在某個統計函式中。

  • 連線查詢
      普通連線
      join on 連線 (Inner join)
      外連線(左連線left outer join,右連線 right outer join,全連線 full outer join)
  • 子查詢
     對子查詢結果集的檢查包括:
      檢查給定值是否在結果集中(用in連線子查詢和父查詢);
      檢查給定值和結果值中元素的大小比較(單值比較;多值比較);
      檢查結果集是否為空。
--查詢選修了開課計劃編號為010101的課程的學生姓名
select 姓名
from 學生表 as s
where exists (
                select * from 選課表 as s
                where e.學號=s.學號 and 開課號='010101'
             )

--*****   這類查詢的特點:
--*****   1.子查詢的條件往往用到父查詢所涉及的表;
--*****   2.子查詢的select 子句一般寫成select * 即可,無需給出具體列名;
//獲取前8條記錄  desc降序  asc升序
select top 8 * from newsTab where type='通知通告' order by zhiding desc,id desc;
  • 插入子查詢結果
      1.使用insert select 子句 要自己建立表
      2.使用select into 子句 系統自己建立表(當目標列是計算列時必須取別名)

  • 刪除資料
      可以使用delete from 表名 或者 Truncate Table 語句來清空目標表(比delete快 不記錄日誌操作,他的刪除無法恢復)

索引

  • 索引是對資料庫中一個或多個列的值進行排序的結構。
  • 作用:
      通過建立唯一索引,可以保證資料記錄的唯一性。
      可以大大加快資料檢索的速度。
      可以加速表與表之間的連線。
      使用order by子句和group by子句進行檢索資料時,可以顯著減少查詢中分組和排序的時間。
      索引可以在檢索的過程中使用查詢優化器,提高系統性能。

  • 索引分類
      聚集索引:邏輯有序,物理也有序,一個表只能有1個;
      非聚集索引:邏輯有序,物理無序,一個表只能有249個;

  • 索引的建立和刪除

--索引的建立
create [unique] [clustered|nonclustered]
index 索引名
on 資料表|檢視(欄位 asc|desc)
--索引的刪除
drop index 表名.索引名

事務

  • 事務的特性:原子性、一致性、隔離性、永久性。
  • 事務時恢復和併發的基本單位。
  • 事務併發的資料問題:丟失修改或被覆蓋、讀髒資料、不能重複讀、幻影讀。
  • 事務分類:顯示事務、隱式事務、自動事務模式(SQL SERVER預設的)。
  • 顯示事務:
begin transaction                      --語句開始

commit transaction / commit work       --事務結束 執行成功
rollback transaction / rollback work   --事務結束 執行失敗
  • 隱式事務
    所有的create語句,alert table ,所有的drop語句,Truncate table,grant,revork,insert,delete,update,select,open,fetch都會重新啟動一個事務。
set Implicit_Transactions on --隱式事務開啟
set Implicit_Transactions off --隱式事務關閉

@@Trancount檢測連線事務處理巢狀的層數。

  • 基本鎖
      共享鎖(S鎖):用於只讀操作,它允許多個事務對資源鎖定進行讀取,但禁止其他事務對鎖定資源進行修改。
      排它鎖(X鎖) :它鎖定的資源不能再被其他事務鎖定,所以其他事務不能讀取和修改。

Transact-SQL程式結構

  • 批是一組sql語句的集合,一個批以GO結束,使用批的基本規則:
      1.所有create語句應該單獨做成一個批,不能再批中和其他sql語句一起使用。
      2.使用alter table修改表結構以後, 不能再同一個批中使用新定義的列。
      3.excute語句為批中的第一個語句時,可以省略excute關鍵字。
       4.批命令GO與其他sql語句不能再用一行上。

  • 轉換函式
      cast (<表示式> as <目標資料型別> [(<長度>)])
      convert(<目標資料型別> [(<長度>)],<表示式>[,style])

  • Case語句用法

CASE <輸入表示式>
    When <當表示式1> Then <結果表示式1>
    When <當表示式2> Then <結果表示式2>
    ................
    When <當表示式n> Then <結果表示式n>
    {Else <結果表示式n+1>}
END

CASE
    WHEN <條件表示式1> Then <結果表示式1>
    WHEN <條件表示式2> Then <結果表示式2>
    ................
    WHEN <條件表示式n> Then <結果表示式n>
    {Else <結果表示式n+1>}
END

檢視規劃和操作
檢視對應三級模式中的外模式,檢視中儲存著檢視的定義及其關聯的基本表的資訊,而不存放檢視對應的資料,這些資料仍然存放在匯出檢視的基本表中,因此檢視有稱為虛擬表。
資料庫中使用檢視的主要優點:
- 檢視能簡化使用者的操作;
- 檢視是使用者能以多角度看待同一資料;
- 檢視為資料庫重構提供了一定程度的邏輯獨立性;
- 檢視能夠對機密資料提供安全保護。

--建立檢視的語法格式
 create view view_name
 as
 select_statement    --定義檢視的select子句
 [with check option] --強制檢視上執行的所有資料修改語句都必須符合由select_statement設定的準則
 with encryption --表示sql server加密包含create view 語句的文本系統表列,可防止將檢視作為sql server複製的一部分發布。

 --建立檢視時,檢視的名字存在sysobjects表中,有關檢視所定義的列資訊新增到syscolumns表中,而有關檢視相關性的資訊儲存在
 --sysdepends表中,另外,create view 語句的文字新增到syscomments表中。

 eg:
 USE 教學管理
 IF exists (select table_name from information_schema.views where table_name='V_檢視名')
    drop view V_檢視名
 GO
 CREATE view V_檢視名
 WITH ENCPYPTION
 AS
 SELECT 課號,課名,教材
 FROM 課程表
 WHERE 所在院系='資訊學院'
 WITH CHECK OPTION
 GO
--修改檢視
alert view view_name
as
select_statement
[with check option]
--使用alert view 更改當前正在使用的檢視,sql server將為他提供一個排他架構鎖。

--檢視重新命名
exec sp_rename 'V_oldname','V_newname'
--刪除檢視
drop view view_name

當檢視引用多個表時,無法用delete刪除資料,若使用update,則應當與insert一樣,被更新的列必須屬於同一個表。
select_statement在選擇列表中沒有聚合函式,也不包括top,group by,union或distinct子句。
select_statement列表中沒有派生列。
一個update或insert語句只能修改引用的一個基表中的資料。
當檢視在from子句中只引用一個表時,delete語句才能引用可更新的檢視。

遊標
遊標提供了一種對從表中檢索出資料進行操作的靈活手段,就本質而言,有標識實際上是一種包括多條資料記錄的記過集中每次提取一條記錄的機制。
sql server支援三種類型的遊標:Transact-SQL 遊標、API伺服器遊標、客戶遊標。

--遊標的申明
DECLARE <遊標名>  cursor   
[local|global]
[forward_only|scroll]                --forward_only只進遊標,
[static|keyset|dynamic|fast_forwar]  --static靜態遊標,不能隨時反應使用者的更改結果 dynamic動態遊標,能隨時反應使用者的更改結果
[read_only|scroll_locks|optimistic]
FOR <select 查詢>


eg:
declare 學生表_cur1 cursor
for select 學號,姓名
    from 學生表 where 專業='計算機'
--開啟遊標
open 遊標名
--讀取遊標資料
fetch [next | prior | first | last |absolute{n|@nvar} | relative {n|@nvar} from ]  --next 返回結果集的第一行
                                                                                   --prior | first | last |absolute{n|@nvar} | relative {n|@nvar}只有定義了scroll選項才可以使用
遊標名
into @變數1,@變數2
--關閉遊標
close 遊標名
--close語句關閉遊標,但不釋放遊標佔用的資料結構,應用程式可以再次執行open開啟和填充遊標
eg:
declare 學生表_cur1 cursor
for select 學號,姓名,所在院系
    from 學生表 
    group by 學號

declare @snum char(5),
        @sname char(10),
        @sdepa char(10)
--開啟遊標
open 學生表_cur1
--取遊標第一行資料
fetch next from 學生表_cur1 into @snum,@sname,@sdepa
--逐行顯示教師資訊,並取下一行資料
while @@fetch_status = 0
BEGIN
        select @snum,@sname,@sdepa
        fetch next from 學生表_cur1
        into @snum,@sname,@sdepa
END
--關閉遊標,此時還可以重新開啟
close 學生表_cur1
--釋放遊標
deallocate 學生表_cur1
go

遊標定位修改和刪除操作

--遊標定位修改和刪除操作

--語法格式:
--遊標定位修改update語句:
update 表名
    set 子句
    where current of 遊標名
--遊標定位刪除delete語句:
delete from 表名
    set 子句
    where current of 遊標名
--利用where current of進行的修改或刪除隻影響當前行

--eg:首先檢視學生表中的每一行,將學號="s060109"的記錄的行動電話改為13888320247,並將城市改為天津
declare @學號 char(6) ,@姓名 char(10),@電話 char(11),@籍貫 char(10)
declare stu_up_cur cursor
for
select 學號,姓名,電話,籍貫
from 學生表

for update of 電話,籍貫

open stu_up_cur cursor
fetch next from stu_up_cur cursor into  @學號,@姓名,@電話,@籍貫

while @@fetch_status=0
begin
    select @學號,@姓名,@電話,@籍貫
    if @學號='s060109'
    update 學生表 set 電話='13888320247',籍貫='天津'
    where current of stu_up_cur cursor    --利用where current of進行的修改或刪除隻影響當前行
    fetch next from stu_up_cur cursor into  @學號,@姓名,@電話,@籍貫
end 
close stu_up_cur cursor
deallocate stu_up_cur cursor

使用者自定義函式設計
使用者自定義函式分為三種類型:標量型別函式(返回在returns子句中定義的型別的單個數據),內嵌表值型函式(以表的型別返回一個返回值),多語句表值型函式(返回一個表)
不能在函式中進行的操作有:對資料庫表的修改,對不在函式上的區域性遊標進行操作,傳送電子郵件,嘗試修改目錄,以及生成返回至使用者的結果集。

--建立標量值使用者自定義函式
--語法格式
create function function_name
return scalar_return_data_type
begin
    function body
    return scalar_expression
end

--eg:建立成績轉換標量值函式,實現百分制與優 良 中 及格 不及格的轉化
use 教學管理
go
create function F_分數等級(@成績 float)
return char(16)
as
begin
    declare @等級 char(16)
    select @等級= case
           when @成績 is null then '還沒有參加考試'
           when @成績<60 then '不及格'
           ................
           end
           return  @等級 
END


--呼叫方式
select 學號,DBO.F_分數等級(成績) as '成績等級' from 學生表 where 學號='s060606'
--建立內聯型使用者自定義函式
--語法格式
create function function_name
return table
begin
    return select_stmt
end

--eg:建立內聯型函式,返回指定學院的學生資訊
use 教學管理
go
create function F_學生資訊(@院系 char(20))
return table
as
           return(select 學號,性別 from 學生表 where 所在院系[email protected]院系)


--呼叫方式
select * from DBO.F_學生資訊('資訊學院')
--建立多語句表值型函式
--語法格式
create function function_name
return @return_variable table
as
begin
    function body
    return
end

--eg:建立多語句表值型函式,返回執行教師某年的開課資訊
use 教學管理
go
create function F_教師課表(@教師姓名 char(20),@開課學年 char(9))

return @教師課表 table(
        課名 varchar(30),
        開課地點 char(6),
        已選人數 int
)
as
begin
           insert @教師課表
           select 課名,開課地點,已選人數
           from 教師表 T,開課表 O
           where T.工號=O.工號
           AND 開課學年[email protected]開課學年
           return
end

呼叫方式
select * from DBO.F_教師課表('張三','2015-2016')

使用alert Function 命令相當於重建一個同名的函式
不能用alert Function更改函式的型別,也就是:標量值函式、表值型函式、多語句函式不能相互轉化

刪除函式:drop function function_name

儲存過程和使用者儲存過程的設計
儲存過程是一組完成特定功能的sql語句集,經編譯後儲存在資料庫中。
在sql server中儲存過程分為兩類:系統提供的儲存過程和使用者自定義的儲存過程。
系統過程主要儲存在master資料庫中並以sp_為字首,系統儲存過程主要是從系統表中獲取資訊,從而為系統管理員管理sql server提供支援。
使用者自定義儲存過程是由使用者建立並能完成某一個特定功能的儲存過程。
儲存過程的優點:

  • 儲存過程允許標準組建式程式設計。
  • 儲存過程能實現較快的執行速度。
  • 儲存過程能減少網路流量。
  • 儲存過程可作為一種安全機制來充分利用。
  • 自動完成需要預先執行的任務。
    儲存過程雖然既有引數又有返回值,但他與函式不同,儲存過程的返回值只是指明執行是否成功,並且他不能像函式那樣直接被呼叫,在呼叫儲存過程名字前一定要有exec保留字。

儲存過程由三部分組成:
- 所有的輸入引數及傳給呼叫者的輸出引數。
- 執行的針對資料庫的操作語句,包括呼叫其它儲存過程的語句。
- 返回給呼叫者的狀態值,以指明呼叫是成功還是失敗。

--建立一個帶引數的儲存過程,實現對指定的某一專業某門課程學生選課及成績的查詢。
use 教學管理
go
if exists (select * from sysobjects where name='p_學生選課資訊' and type='p')
    BEGIN
        DROP PROCEDURE P_學生選課資訊
    END
GO

CREATE PROCEDURE P_學生選課資訊(@專業 char(20),@課名 char(20))
as
if  @專業 is null
    begin
        print '必須指定專業'
    end
else
    begin
        select s.學號,姓名,專業,所在院系,o.課號,o.課名,o.成績
        from 學生表 as s,選課表 as E,開課表 as o,課程表 c
        where 專業[email protected]專業 and 課名[email protected]課名 and s.學號=e.學號 and e.開課號=o.開課號 and o.課號=c.課號
    end

--執行儲存過程
exec  P_學生選課資訊 '計算機','資料結構'

修改儲存過程 alter
刪除儲存過程 drop procedure 儲存過程名

觸發器原理及使用
觸發器可以看成一類特殊的儲存過程,他在滿足某個特定條件時自動觸發執行,觸發器是為表上的更新、插入、刪除操作定義的,也就是說,當表上發生更新、插入和刪除操作時觸發器將執行。
觸發器的主要作用就是能夠實現主鍵和外來鍵所不能保證的複雜的參照完整性和資料一致性。觸發器還有很多功能:

  • 強化約束。
  • 級聯執行。
  • 儲存過程的呼叫。

    觸發器的種類:

  • AFTER觸發器:該型別觸發器要求只有執行完某一操作[INSERT | UPDATE | DELETE ],並處理過所有約束後,觸發器才能被觸發,且只能在表上定義。

  • INSTEAD OF 觸發器:該類觸發器表示並不執行所定義的操作[INSERT | UPDATE | DELETE ],而僅執行觸發器本身。既可以在表上也可以在檢視上。

    觸發器原理:
    每個觸發器有兩個特殊的表:插入表和刪除表,分別為inserted 和 delete,有下列幾個特點:

  • 這兩個表是邏輯表,並且這兩個表都是由系統管理的,儲存在記憶體,不是儲存在資料庫中,因此不允許使用者直接對其修改。

  • 這兩個表的結構總是與被該觸發器作用的表有相同的表結構。
  • 這兩個表是動態駐留在記憶體中,當觸發器工作完成時,這兩個表也被刪除。
  • 這兩個表是隻讀的,且只在觸發器內部可讀,即使用者不能向這兩個表寫入內容,但可以在觸發器中引用表的資料。

    插入表的功能:
    一旦對該表執行了插入操作,那麼對該表插入的所有行來說,都有一個相應的副本存放到插入表(inserted )中,即插入表儲存原表插入的新資料行。
    刪除表的功能:
    一旦對該表執行了刪除操作,則將所有被刪除的行存放到刪除表(delete)中。

--insert觸發器
--在大學資料庫中,當新的學生選課註冊資訊新增到選課表中時,要對開課表中的人數進行更新,且當人數超過最多能容納的人數時,要提示選課人數已滿
USE 教學管理
GO
CREATE trigger T_選課表插入觸發
ON 選課表
FOR insert
AS
Begin
    DECLARE @已選人數 int,@限選人數 int
    select @已選人數=已選人數+1,@限選人數=限選人數
    from 開課表 o,inserted i
    where o.開課號=i.開課號
    if(@已選人數 > @限選人數)
    begin
        print '選修人數已滿'
        rollback transaction
    end
    update 開課表
    set 已選人數[email protected]已選人數
    from 開課表 o,inserted i
    where o.開課號=i.開課號
End
--update觸發器
--教師表裡的工號和負責人必須有外來鍵關聯,當負責人工號修改了,負責人內容也要更著修改,使用觸發器實現當某個負責人工號修改了,級聯修改負責人
use 教學管理
go
create trigger T_負責人工號變化
on 教師表
for update
AS 
Begin
    declare @old_工號 char(6),@new_工號 char(6)
    select @old_工號=工號
    from deleted
    select @new_工號=i.工號
    from inserted i
        update 教師表
        set 負責人[email protected]_工號
        where 負責人[email protected]_工號
end
--delete觸發器
--當某個學生退學時,須刪除該學生的基本資料,並級聯刪除該學生的選課記錄。
use 教學管理
go
create trigger T_學生資料刪除
on 學生表
for delete
AS 
Begin
     delete from 選課表 from 選課表 e,deleted d
     where e.學號=d.學號
end
--insert of觸發器
--當刪除教師表的某個教師時,需要先檢視開課表是否有該教師的代課情況,有則不能刪除,否則可以刪除。

use 教學管理
go

create trigger T_教師資料刪除
on 教師表
instead of delete
as
begin
declare @姓名 char(20)
select @姓名=姓名 from deleted 
if exIsts(select * from 開課表 o,deleted d where o.工號=d.工號) print @姓名+'不能刪除'
else 
    begin
        delete from 教師表 from 教師表 T ,deleted d where T.工號=d.工號
        print @姓名+'刪除成功'
    end
end

相關推薦

資料庫基礎知識彙總(一)

五個基本的關係代數操作 並、差、笛卡爾積、選擇、投影 資料庫語言四大類 DQL(Data Query Language):資料庫查詢語言。 DDL(Data Definition Language):資料庫定義語言。定義關係模式、刪除關係、修改關

MySQL資料庫基礎知識彙總(學習筆記)

前言 此文章主要內容是簡單的記錄學習歷程,主要通途是日後查詢東西比較方便,當做字典來使用。內容的順序也是從簡單的入門開始的。內容無非就是增刪改查。 ~~ ~~ 關係資料庫往簡單了說就是一個一個的表,每個表都有行和列,表與表之間又有聯絡。其中列,就是一個一個的欄位,代表著你要存入資料的標題。行

資料庫基礎知識彙總

最近在複習期末考,就順便把這些筆記儲存下來,也方便以後檢視,涉及的都是一些基礎知識,大牛勿噴啊,有錯誤之處歡迎指教~~~~ 首先,當然得記住一些常用的詞彙啊!!!下面就把會出現的詞彙都大概的總結出來,方便檢視,省得滿文章的去找(英語好的就自行跳過吧!)。當

程式設計師教程-6章-資料庫基礎知識

  目錄結構:   6.1 基本概念     6.1.1 資料庫系統     6.1.2 資料庫管理技術的發展       1 人工管理階段       2 檔案系統階段       3 資料庫系統階段     6.1.3 大資料       1 大資料產生背景       2 大資料的特徵

java基礎知識彙總

一:java概述(快速瀏覽): 1991 年Sun公司的James Gosling等人開始開發名稱為 Oak 的語言,希望用於控制嵌入在有線電視交換盒、PDA等的微處理器; 1994年將Oak語言更名為Java;   Java的三種技術架構: JAVAEE:Java P

java重要基礎知識彙總

Table of Contents 抽象類與介面的區別 問題:什麼時候用介面什麼時候用抽象類? java為什麼不支援多繼承 單根繼承的優點1:相容性 單根繼承的優點2: 便利性 單根繼承的優點3: 垃圾回收 continue關鍵字和break關鍵字 continu

R語言中tidyverse基礎知識彙總

tidyverse group_by 分組統計 gather()和spread() 簡單地說,gather()是列轉行,而spread()是行轉列。 請看下面的示例: > df id class grade 1 1 a 81 2 2 b 82 3 3

實習小白java面試基礎知識彙總-day1

實習小白java面試基礎知識彙總-day1 1.簡單敘述java的跨平臺原理 2.分析JVM,JRE,JDK 3.java基本資料型別 4..面向物件的特徵有哪些方面 5.四個許可權修飾符的區別 6.包裝型別,裝箱和拆箱

ORACLE資料庫基礎知識總結

1、RMAN全備備份檔案的順序 備份歸檔日誌、所有的資料檔案、控制檔案、spfile、再次備份歸檔日誌 2、redo日誌丟失恢復 redo日誌的三種狀態是current、active、inactive inactive,可以重建 clear log active、current不能變成inactive,只能通

angular6 開發實踐基礎知識彙總

1 事件處理    1.1   滑鼠移入事件觸發          (mouseenter)=" "               eg:&nbs

網路基礎知識彙總(持續更新)

網路基礎知識彙總 1.網路模型 2.二三層轉發 3.IP路由 4.VLAN 1.網路模型 常見的網路層次劃分有OSI七層協議、TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示: 由於工作偏向於底層網路,

C語言易錯基礎知識彙總

以下整理自湖南大學考研真題。 2010年 1、C語言源程式檔案經過C編譯程式編譯連線之後生產一個字尾為“.exe”的檔案 2、以下選項中不正確的整型常量是() A、12L    B、-10    C、1,900    D、123U 3、表示式_____不

資料庫基礎知識資料庫中的約束和三大正規化

一.資料庫中的正規化:   正規化, 英文名稱是 Normal Form,它是英國人 E.F.Codd(關係資料庫的老祖宗)在上個世紀70年代提出關係資料庫模型後總結出來的,正規化是關係資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法,以下就是對

MySQL資料庫基礎知識三(事務處理)

事務指的是一組SQL語句,它們是一個執行單位,且在必要時還可以取消。事務處理是通過使用提交和回滾功能來實現的。 另一個用途確保某個操作所涉及的行不會在你正在使用它們時被其他客戶端修改。事務把多條語句定義為一個執行單位,防止在多客戶端環境裡可能會發生的併發問題。 事務系統通

MySQL資料庫基礎知識四(外來鍵和引用)

級聯刪除,級聯更新 外來鍵維護資料的一致性。 下面是幾條術語: 父表:包含原始鍵值的表。 子表:引用了父表中鍵值的相關表。 建立父表和子表關聯案例 父表: create table parent { par_id INT NOT NULL, PRIMAR

MySQL資料庫基礎知識五(檢視和儲存程式)

使用檢視 檢視是一個虛表,它是在表或其他檢視的基礎上,使用SELECT語句來定義的。 建立檢視: create view view_name as select last_name,first_name from president;//建立虛表view_name,表為

資料庫基礎知識

資料庫也是計算機類筆試面試中不可避免會遇到的考點,尤其是銀行和部分傳統軟體類公司。這裡根據整理的資料,對資料庫的相關知識也做個總結吧。希望學過資料庫但長時間不用的同學根據這些知識能夠回憶和重拾,沒學過的同學能掌握一些資料庫的基礎知識。 第一節       一、相關概念

基礎技能-Oracle資料庫基礎知識

一、 Oracle Database 又名Oracle RDBMS,簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關係資料庫管理系統,系統可移植性好、使

網路安全基礎知識彙總

五種竊取機密攻擊的方式 網路踩點(Footprinting):攻擊者事先彙集目標的資訊,通常採用Whois、Finger、Nslookup、Ping等工具獲得目標的一些資訊,如域名、IP地址、網路拓撲結構、相關的使用者資訊等,這些往往是黑客入侵所做的第一步工作;

python基礎知識彙總

python中字串連線的四種方式 1、字串之間連線 ‘aa’ ‘bb’ 可以中間為空格 或者什麼都沒有。那麼輸出都是兩者之間緊密相連。 2、字串+數字 'aa' +90 這樣會報錯,因為不同型別不能相加,可以用 ‘aa’,90.這樣可以,但是中間會有一個空格