欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

數(shù)據(jù)庫基本操作語法歸納總結

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

關系型數(shù)據(jù)庫:以表作為實體,以主鍵和外鍵關系作為聯(lián)系的一種數(shù)據(jù)結構。

主鍵:在關系型數(shù)據(jù)庫中,用一個唯一的標識符來標志每一行,這個標識符就是主鍵。主鍵有兩個特點:非空和不能重復。

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

表之間的三種基本關系模型:

      ① 一對多關系: 一條主表記錄對應多條從表記錄,一條從表記錄對應一條主表記錄。

      ② 一對一關系: 一條主表記錄對應一條從表記錄,一條從表記錄對應一條主表記錄。

      ③ 多對多關系: 一條主表記錄對應多條從表記錄,一條從表記錄對應多條主表記錄。

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

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

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

      ① 微軟的MS SQL Server

      ② 甲骨文的Oracle

      ③ IBM公司的DB2

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

SQL:

     SQL是結構化查詢語言,是一種用于管理關系型數(shù)據(jù)庫,并與數(shù)據(jù)庫中的數(shù)據(jù)進行通訊的計算機語言。

SQL語句:

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

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

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

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

SELECT DISTINCT sex FROM t_student;

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

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

③ 數(shù)據(jù)操作語言(DML): 用于修改數(shù)據(jù)庫中的數(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ù)控制語言(DCL):控制數(shù)據(jù)庫訪問權限

-- 給用戶授予訪問權限的GRANT語句

 -- 取消用戶訪問權限的REVOKE語句

 外鍵約束:

       外鍵:是指從表的某列與主鍵的某列存在依附關系。

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

        注意:沒有建立外鍵約束不等于沒有外鍵。

主鍵約束:

        主鍵是表中的一到多個列,主鍵列不能為空,也不能重復,一個表中只能由一個主鍵。

聚合函數(shù):

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

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

       SUM:獲取單個列的和計量。

       AVG:計算某個列的平均值。

       MAX:計算某個列的最大值。

       MIN:計算某個列的最小值。

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

      第一步:執(zhí)行FROM

       第二步:where條件過濾

       第三步:GROUP BY分組

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

       第五步:HAVING條件過濾

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

聯(lián)接:

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

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

       外連接:可以查詢一個表中所有的記錄,無論該記錄是否有關聯(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
 );
 
 -- 添加外鍵約束,讓主鍵和外鍵一一對應,防止垃圾數(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),
  ('大運',1000,2),('夏力',600,2),('捷安特',1200,3),
  ('摩拜',200,3),('寶馬',2000,3),('奔馳',600,3);
 
 -- 查詢所有自行車,并顯示該自行車的主人姓名
 SELECT b.*,m.manName FROM t_bike b JOIN t_man m ON m.id=b.manId;
 
 -- 查詢李四所有的自行車(內(nèi)連接:顯示兩個表中有聯(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='李四';
 
 -- 顯示所有用戶的自行車信息,外連接不能用,加where的形式來寫
 -- 外連接:RIGHT 右外連接,包含右邊表中所有的信息,left 左外連接,包含左邊表中所有的信息。 
 SELECT m.*,b.bikeType,b.money FROM t_bike b RIGHT JOIN t_man m ON b.manId=m.id;
 
 -- 顯示所有用戶自行車的數(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;

希望本篇文章對您有所幫助

相關文章

  • 深入解析Java接口(interface)的使用

    深入解析Java接口(interface)的使用

    這篇文章主要介紹了深入解析Java接口(interface)的使用,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • springboot配置flyway(入門級別教程)

    springboot配置flyway(入門級別教程)

    本文介紹了springboot配置flyway,主要介紹基于SpringBoot集成flyway來管理數(shù)據(jù)庫的變更,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Mybatis ResultType如何處理返回類型

    Mybatis ResultType如何處理返回類型

    這篇文章主要介紹了Mybatis ResultType如何處理返回類型方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot整合Redisson實現(xiàn)分布式鎖

    SpringBoot整合Redisson實現(xiàn)分布式鎖

    本文主要介紹了SpringBoot整合Redisson實現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SpringBoot 使用 @Value 注解讀取配置文件給靜態(tài)變量賦值

    SpringBoot 使用 @Value 注解讀取配置文件給靜態(tài)變量賦值

    這篇文章主要介紹了SpringBoot 使用 @Value 注解讀取配置文件給靜態(tài)變量賦值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 10個Java解決內(nèi)存溢出OOM的方法詳解

    10個Java解決內(nèi)存溢出OOM的方法詳解

    在Java開發(fā)過程中,有效的內(nèi)存管理是保證應用程序穩(wěn)定性和性能的關鍵,不正確的內(nèi)存使用可能導致內(nèi)存泄露甚至是致命的OutOfMemoryError(OOM),下面我們就來學習一下有哪些解決辦法吧
    2024-01-01
  • Java強制類型轉換原理詳解(父類轉子類、子類轉父類)

    Java強制類型轉換原理詳解(父類轉子類、子類轉父類)

    這篇文章主要給大家介紹了關于Java強制類型轉換原理(父類轉子類、子類轉父類)的相關資料,所謂的強制類型轉換,其實是自動類型轉換的逆過程,在數(shù)據(jù)類型兼容的情況下,將容量大的數(shù)據(jù)類型轉換為容量小的數(shù)據(jù)類型,需要的朋友可以參考下
    2023-12-12
  • SpringBoot3.2.2整合MyBatis Plus3.5.5的詳細過程

    SpringBoot3.2.2整合MyBatis Plus3.5.5的詳細過程

    這篇文章給大家介紹了SpringBoot3.2.2整合MyBatis Plus3.5.5的詳細過程,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Java String類字符串的理解與認知

    Java String類字符串的理解與認知

    String字符串和char字符不同,char使用單引號,只能表示一個字符,字符串就是一段文本。String是個類。這個類使用final修飾,所以這個類是不可以繼承擴充和修改它的方法的
    2021-10-10
  • Java多線程之線程的創(chuàng)建

    Java多線程之線程的創(chuàng)建

    這篇文章主要介紹了Java多線程之線程的創(chuàng)建,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評論