數(shù)據(jù)庫的概念
數(shù)據(jù)庫(database):存儲數(shù)據(jù)的“倉庫”彻桃。它保存了一系列有組織的數(shù)據(jù)馏予。數(shù)據(jù)庫和數(shù)據(jù)庫軟件經(jīng)常混淆澄步,實(shí)際上械媒,數(shù)據(jù)庫軟件應(yīng)稱為:DBMS(數(shù)據(jù)庫管理系統(tǒng))目锭。數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。?
數(shù)據(jù)庫的特點(diǎn)
(1)將數(shù)據(jù)放到表中纷捞,表再放到庫中(2)一個數(shù)據(jù)庫中可以有多個表痢虹,每個表都有一個的名字,用來標(biāo)識自己主儡。表名具有唯一性奖唯。(3)表具有一些特性,這些特性定義了數(shù)據(jù)在表中如何存儲糜值,類似java中 “類”的設(shè)計臭埋。(4)表由列組成,我們也稱為字段臀玄。所有表都是由一個或多個列組成的,每一列類似java 中的”屬性”(5)表中的數(shù)據(jù)是按行存儲的畅蹂,每一行類似于java中的“對象”健无。
1、SQL語言概述
SQL(Structure Query Language):專門用來與數(shù)據(jù)庫通信的語言液斜。SQL的優(yōu)點(diǎn): 1累贤、不是某個特定數(shù)據(jù)庫供應(yīng)商專有的語言,幾乎所有DBMS都支持SQL 2少漆、簡單易學(xué) 3臼膏、雖然簡單,但實(shí)際上是一種強(qiáng)有力的語言示损,靈活使用其語言元素渗磅,可以進(jìn)行非常復(fù)雜和高級的數(shù)據(jù)庫操作
2、SQL 語言分類
(1)DML(Data Manipulation Language):數(shù)據(jù)操縱語句,用于添加始鱼、刪除仔掸、修改、查詢數(shù)據(jù)庫記錄医清,并檢查數(shù)據(jù)完整性(2)DDL(Data Definition Language):數(shù)據(jù)定義語句起暮,用于庫和表的創(chuàng)建、修改会烙、刪除负懦。(3)DCL(Data Control Language):數(shù)據(jù)控制語句,用于定義用戶的訪問權(quán)限和安全級別柏腻。DQL
3纸厉、DML
DML用于查詢與修改數(shù)據(jù)記錄,包括如下SQL語句:INSERT:添加數(shù)據(jù)到數(shù)據(jù)庫中UPDATE:修改數(shù)據(jù)庫中的數(shù)據(jù)DELETE:刪除數(shù)據(jù)庫中的數(shù)據(jù)SELECT:選擇(查詢)數(shù)據(jù)SELECT是SQL語言的基礎(chǔ)葫盼,最為重要残腌。
4、DDL
DDL用于定義數(shù)據(jù)庫的結(jié)構(gòu)贫导,比如創(chuàng)建抛猫、修改或刪除數(shù)據(jù)庫對象,包括如下SQL語句:CREATE TABLE:創(chuàng)建數(shù)據(jù)庫表ALTER ?TABLE:更改表結(jié)構(gòu)孩灯、添加闺金、刪除、修改列長度DROP TABLE:刪除表CREATE INDEX:在表上建立索引DROP INDEX:刪除索引
5峰档、DCL
DCL用來控制數(shù)據(jù)庫的訪問败匹,包括如下SQL語句:GRANT:授予訪問權(quán)限REVOKE:撤銷訪問權(quán)限COMMIT:提交事務(wù)處理ROLLBACK:事務(wù)處理回退SAVEPOINT:設(shè)置保存點(diǎn)LOCK:對數(shù)據(jù)庫的特定部分進(jìn)行鎖定
Mysql產(chǎn)品的特點(diǎn)
MySQL數(shù)據(jù)庫隸屬于MySQL AB公司,總部位于瑞典
優(yōu)點(diǎn):成本低:開放源代碼讥巡,一般可以免費(fèi)試用性能高:執(zhí)行很快可信賴:某些非常重要和聲望很高的公司都用MySQL來處理自己的重要數(shù)據(jù)掀亩。簡單:很容易安裝和使用
DBMS分為兩類
基于共享文件系統(tǒng)的DBMS(Access )小型數(shù)據(jù)庫,沒有服務(wù)端和客戶端基于客戶機(jī)——服務(wù)器的DBMS(MySQL欢顷、Oracle槽棍、SqlServer)
1、sql語言分類:
DQL:select
DML:insert 抬驴、update炼七、delete
DDL:create、alter布持、drop
DCL:commit豌拙、rollback
2、語法規(guī)范
①忽略大小寫题暖,建議關(guān)鍵字大寫按傅,表名和列名小寫
②每句話結(jié)尾用分號
③常見注釋
#單行注釋
/*多行注釋*/
-- 單行注釋
④?每條sql命令捉超,可以換行寫,但關(guān)鍵字不能換行
子查詢
概念:一個查詢語句內(nèi)部又嵌套了select語句逞敷,被嵌套的select語句稱為子查詢或內(nèi)查詢
??????外面的查詢語句稱為外查詢或主查詢
特點(diǎn):
1狂秦、子查詢一般放在小括號內(nèi)
2、子查詢一般放在條件右側(cè)
3推捐、子查詢優(yōu)先于外查詢執(zhí)行
4裂问、子查詢根據(jù)查詢的結(jié)果行數(shù)不同,分為單行子查詢和多行子查詢
單行子查詢牛柒,查詢結(jié)果只有一行堪簿,使用單行操作符:> < >= <= <> =
多行子查詢,查詢結(jié)果多行皮壁,使用多行操作符:any椭更、some、all蛾魄、in虑瀑、not in等
數(shù)據(jù)的插入
語法:insert into 表名(字段,字段) values(值1滴须,值2);
特點(diǎn):
1舌狗、值和字段要一一對應(yīng)
2、如果是字符型或日期型扔水,值要用單引號引起來痛侍;如果是數(shù)值型,則不用單引號
3魔市、字段和值的個數(shù)必須一致
4主届、不能為null的字段必須插入值;
???可以為null的字段可以不用插入值待德,但必須遵循以下寫法:
??①?字段和值都不寫
??②?字段寫上君丁,值用null代替
5、字段列表可以不寫将宪,默認(rèn)是所有字段
insert into 表名?values(值绘闷,值);
事務(wù)的特點(diǎn)(ACID)
原子性:?一個事務(wù)不可再分,要么同時執(zhí)行涧偷,要么同時失敗
一致性:一個事務(wù)執(zhí)行完,數(shù)據(jù)從一個狀態(tài)切換到另一個狀態(tài)毙死,數(shù)據(jù)是完整的
隔離性:一個事務(wù)不受另一個事務(wù)的干擾
持久性:一個事務(wù)一旦提交燎潮,則永久的持久化本地,除非其他事務(wù)對其進(jìn)行更新