数据库——(DB、DBMS、SQL)
前言
數據庫是存放數據的倉庫。它的存儲空間很大,可以存放百萬條、千萬條、上億條數據。但是數據庫并不是隨意地將數據進行存放,是有一定的規則的,否則查詢的效率會很低。當今世界是一個充滿著數據的互聯網世界,充斥著大量的數據。即這個互聯網世界就是數據世界。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。
數據庫常見概念
DB
概念:
數據庫,保存一組有組織的數據容器。
優點:
- 實現數據持久化。
- 使用完整的管理系統統一管理,易于查詢。
特點:
- 將數據放到表中,表再放到庫中。
- 一個數據庫可以有多個表,每個表都有一個名字,用來標識自己;表名具有唯一性。
- 表具有一些特性,這些特性定義了數據在表中如何存儲,類似 java 中“類”的設計
- 表由列組成,我們也稱為‘字段’。所以表都是由一個或者多個列組成的,每一列類似于 java 中的“屬性”
- 表中的數據是按行存儲的,每一行類似于 java 中的“對象”。
DBMS
概念:
數據庫管理系統,又稱數據庫軟件(產品),用于管理DB中的數據
常見的數據管理系統:mysql、oracle、db2、sqlserver
SQL
概念:
結構化查詢語言,用于和DBMS通信的語言,不是某個數據庫軟件特有的,而是所有的主流數據庫軟件通用的語言
連接查詢
按年份分類:
sql92:
- 等值連接
- 非等值連接
- 自連接
sql99:
- 內連接
- 等值連接
- 非等值連接
- 自連接 - 外連接
-左外連接
-右外連接 - 交叉連接
子查詢
含義:嵌套在其他語句內部的select語句稱為子查詢或內查詢
外面的語句可以是:insert、update、delete、select等,一般select作為外面語句較多
外面如果為select語句,則此語句稱為外查詢或主查詢
分類
按出現的位置分類:
- select后面:僅僅支持標量子查詢
- from后面:表子查詢
- where 或 having 后面:標量子查詢、列子查詢、行子查詢
- exists后面:標量子查詢、列子查詢、行子查詢、表子查詢
按結果集分類:
- 標量子查詢(單行子查詢):結果集為一行一列
- 列子查詢(多行子查詢):結果集為多行一列
- 行子查詢:結果集為多行多列
- 表子查詢:結果集為多行多列(任意)
案例
這是力扣中的數據庫中的一道例題
Employee 表包含所有員工信息,每個員工有其對應的 Id, salary 和 department Id。
Department 表包含公司所有部門的信息。
編寫一個 SQL 查詢,找出每個部門工資最高的員工。對于上述表,您的 SQL 查詢應返回以下行(行的順序無關緊要)。
解題思路:
①求出每個部門對應的最高工資和部門編號
②內連接兩表并進行篩選
# Write your MySQL query statement below select d.Name Department,e.Name Employee,e.Salary Salary from Employee e, Department d where e.DepartmentId=d.Id and (e.Salary,e.DepartmentId) IN (select max(Salary),DepartmentIdfrom Employee group by DepartmentId );運行結果如下:
總結
以上是生活随笔為你收集整理的数据库——(DB、DBMS、SQL)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU Employment Plann
- 下一篇: 10月重磅程序员新书上架7本,每一本都很