最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)庫(kù)基本操作語(yǔ)法歸納總結(jié)

 更新時(shí)間:2017年04月21日 10:07:09   作者:向往的生活  
本篇文章主要介紹了數(shù)據(jù)庫(kù)的一些常用方法及一些基本操作,需要的朋友可以參考下

關(guān)系型數(shù)據(jù)庫(kù):以表作為實(shí)體,以主鍵和外鍵關(guān)系作為聯(lián)系的一種數(shù)據(jù)結(jié)構(gòu)。

主鍵:在關(guān)系型數(shù)據(jù)庫(kù)中,用一個(gè)唯一的標(biāo)識(shí)符來(lái)標(biāo)志每一行,這個(gè)標(biāo)識(shí)符就是主鍵。主鍵有兩個(gè)特點(diǎn):非空和不能重復(fù)。

外鍵:在關(guān)系型數(shù)據(jù)庫(kù)中,外鍵就是用來(lái)表達(dá)表與表之間的關(guān)系、聯(lián)系,通過(guò)主外鍵關(guān)系,建立實(shí)體之間的聯(lián)系。

表之間的三種基本關(guān)系模型:

      ① 一對(duì)多關(guān)系: 一條主表記錄對(duì)應(yīng)多條從表記錄,一條從表記錄對(duì)應(yīng)一條主表記錄。

      ② 一對(duì)一關(guān)系: 一條主表記錄對(duì)應(yīng)一條從表記錄,一條從表記錄對(duì)應(yīng)一條主表記錄。

      ③ 多對(duì)多關(guān)系: 一條主表記錄對(duì)應(yīng)多條從表記錄,一條從表記錄對(duì)應(yīng)多條主表記錄。

關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):

     關(guān)系型數(shù)據(jù)庫(kù)只是一個(gè)保存數(shù)據(jù)的容器,大多數(shù)數(shù)據(jù)庫(kù)依靠一個(gè)稱為數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的軟件來(lái)管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

     目前流行的關(guān)系型數(shù)據(jù)庫(kù)服務(wù)器管理系統(tǒng)有:

      ① 微軟的MS SQL Server

      ② 甲骨文的Oracle

      ③ IBM公司的DB2

      ④ 開(kāi)源數(shù)據(jù)庫(kù)的MySQL、PostgreSQL

SQL:

     SQL是結(jié)構(gòu)化查詢語(yǔ)言,是一種用于管理關(guān)系型數(shù)據(jù)庫(kù),并與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行通訊的計(jì)算機(jī)語(yǔ)言。

SQL語(yǔ)句:

     ① 數(shù)據(jù)定義語(yǔ)言(DDL): 用于創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)結(jié)構(gòu)。

-- 創(chuàng)建數(shù)據(jù)庫(kù)db
CREATE DATABASE db;
-- 刪除數(shù)據(jù)庫(kù)db
DROP DATABASE db;
-- 建立表t_student
CREATE TABLE t_student(
 -- PRIMARY KEY標(biāo)志該列為主鍵列
 -- AUTO_INCREMENT設(shè)置自動(dòng)增長(zhǎng)列,該列的值由DBMS分配,不用開(kāi)發(fā)者維護(hù)
 id INT PRIMARY KEY AUTO_INCREMENT,-- 編號(hào)
 studentName VARCHAR(20),-- 姓名,20表示名字20個(gè)字
 sex ENUM('男','女'),-- 性別,enum表示枚舉
 birthday DATE, -- 生日
 tel VARCHAR(11) -- 電話
);

 ② 數(shù)據(jù)查詢語(yǔ)言(DQL):用于數(shù)據(jù)庫(kù)中數(shù)據(jù)的查詢 

-- 查詢所有的性別 DISTINCT表示去除重復(fù)的列

SELECT DISTINCT sex FROM t_student;

-- 查詢表中所有的數(shù)據(jù),*表示查詢表中所有的列
SELECT * FROM t_student;

-- 查詢第一條 開(kāi)始的數(shù)據(jù),顯示3條記錄
SELECT * FROM t_student LIMIT 0,3;

③ 數(shù)據(jù)操作語(yǔ)言(DML): 用于修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),包括插入、更新和刪除數(shù)據(jù)

-- 添加記錄
INSERT INTO t_student(studentName,sex,birthday,tel)
VALUES('張三','男','1983-09-30','13987879898');

-- 刪除id為17的記錄
DELETE FROM t_student WHERE id=17;

-- 修改李四的電話
UPDATE t_student SET tel='13966666666' WHERE studentName='李四';

④ 數(shù)據(jù)控制語(yǔ)言(DCL):控制數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限

-- 給用戶授予訪問(wèn)權(quán)限的GRANT語(yǔ)句

 -- 取消用戶訪問(wèn)權(quán)限的REVOKE語(yǔ)句

 外鍵約束:

       外鍵:是指從表的某列與主鍵的某列存在依附關(guān)系。

        外鍵約束:是指在外鍵關(guān)聯(lián)主鍵上強(qiáng)制加上一個(gè)約束,如果違反該約束,則不允許該條數(shù)據(jù)的修改。

        注意:沒(méi)有建立外鍵約束不等于沒(méi)有外鍵。

主鍵約束:

        主鍵是表中的一到多個(gè)列,主鍵列不能為空,也不能重復(fù),一個(gè)表中只能由一個(gè)主鍵。

聚合函數(shù):

      對(duì)一組數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析是使用聚合函數(shù)來(lái)實(shí)現(xiàn)的。常見(jiàn)聚合函數(shù)如下:

       COUNT:統(tǒng)計(jì)行數(shù)量。

       SUM:獲取單個(gè)列的和計(jì)量。

       AVG:計(jì)算某個(gè)列的平均值。

       MAX:計(jì)算某個(gè)列的最大值。

       MIN:計(jì)算某個(gè)列的最小值。

SQL語(yǔ)句的執(zhí)行順序:

      第一步:執(zhí)行FROM

       第二步:where條件過(guò)濾

       第三步:GROUP BY分組

       第四步:執(zhí)行select投影列

       第五步:HAVING條件過(guò)濾

       第六步:執(zhí)行ORDER BY排序語(yǔ)句,默認(rèn)為asc升序,DESC為降序。

聯(lián)接:

      內(nèi)聯(lián)接和外聯(lián)接的區(qū)別:

       內(nèi)聯(lián)接:只能查詢兩個(gè)表中都有的相關(guān)數(shù)據(jù)的記錄;

       外連接:可以查詢一個(gè)表中所有的記錄,無(wú)論該記錄是否有關(guān)聯(lián)數(shù)據(jù)。

 

CREATE TABLE t_man(
 id INT PRIMARY KEY AUTO_INCREMENT,
 manName VARCHAR(20),
 birthday DATE
);
INSERT INTO t_man(manName,birthday)
VALUES('張三','1980-02-03'),('李四','1994-01-05'),
  ('王五','1991-07-30'),('趙六','1995-11-18');
SELECT * FROM t_man;
 
 CREATE TABLE t_bike(
 id INT PRIMARY KEY AUTO_INCREMENT,
 bikeType VARCHAR(20),
 money INT,
 manId INT
 );
 
 -- 添加外鍵約束,讓主鍵和外鍵一一對(duì)應(yīng),防止垃圾數(shù)據(jù)的產(chǎn)生
 ALTER TABLE t_bike ADD CONSTRAINT fk_mb FOREIGN KEY (manId)
 REFERENCES t_man(id);
 
 INSERT INTO t_bike(bikeType,money,manId)
 VALUES('鳳凰',400,1),('永久',500,1),('火麒麟',250,1),
  ('大運(yùn)',1000,2),('夏力',600,2),('捷安特',1200,3),
  ('摩拜',200,3),('寶馬',2000,3),('奔馳',600,3);
 
 -- 查詢所有自行車(chē),并顯示該自行車(chē)的主人姓名
 SELECT b.*,m.manName FROM t_bike b JOIN t_man m ON m.id=b.manId;
 
 -- 查詢李四所有的自行車(chē)(內(nèi)連接:顯示兩個(gè)表中有聯(lián)系的數(shù)據(jù))
 SELECT b.* ,m.manName FROM t_bike b JOIN t_man m ON m.id=b.manId WHERE m.manName='李四';
 SELECT b.* ,m.manName FROM t_man m JOIN t_bike b ON m.id=b.manId WHERE m.manName='李四';
 
 SELECT b.* FROM t_bike b,t_man m WHERE b.manId=m.id AND m.manName='李四';
 
 -- 顯示所有用戶的自行車(chē)信息,外連接不能用,加where的形式來(lái)寫(xiě)
 -- 外連接:RIGHT 右外連接,包含右邊表中所有的信息,left 左外連接,包含左邊表中所有的信息。 
 SELECT m.*,b.bikeType,b.money FROM t_bike b RIGHT JOIN t_man m ON b.manId=m.id;
 
 -- 顯示所有用戶自行車(chē)的數(shù)量
 -- 左外連接
 SELECT m.*,COUNT(bikeType) num FROM t_man m LEFT JOIN t_bike b ON m.id=b.manId GROUP BY m.id;
 -- 右外連接
 SELECT m.*, COUNT(bikeType) number FROM t_bike b RIGHT JOIN t_man m ON b.manId=m.id GROUP BY m.id;

希望本篇文章對(duì)您有所幫助

相關(guān)文章

最新評(píng)論

北川| 屯门区| 双辽市| 阿克| 通州区| 云安县| 珲春市| 定远县| 静海县| 建宁县| 军事| 龙州县| 科技| 罗平县| 怀柔区| 南皮县| 兴义市| 玉溪市| 潞西市| 绥芬河市| 佛冈县| 平利县| 措勤县| 凤翔县| 林周县| 剑阁县| 蒲江县| 原阳县| 泸水县| 桃江县| 东阿县| 璧山县| 德州市| 佛冈县| 张家港市| 津市市| 泗阳县| 英吉沙县| 沛县| 金阳县| 宜章县|