日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库——(DB、DBMS、SQL)

發(fā)布時間:2023/12/8 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库——(DB、DBMS、SQL) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫。它的存儲空間很大,可以存放百萬條、千萬條、上億條數(shù)據(jù)。但是數(shù)據(jù)庫并不是隨意地將數(shù)據(jù)進行存放,是有一定的規(guī)則的,否則查詢的效率會很低。當今世界是一個充滿著數(shù)據(jù)的互聯(lián)網(wǎng)世界,充斥著大量的數(shù)據(jù)。即這個互聯(lián)網(wǎng)世界就是數(shù)據(jù)世界。數(shù)據(jù)的來源有很多,比如出行記錄、消費記錄、瀏覽的網(wǎng)頁、發(fā)送的消息等等。除了文本類型的數(shù)據(jù),圖像、音樂、聲音都是數(shù)據(jù)。

數(shù)據(jù)庫常見概念

DB

概念:
數(shù)據(jù)庫,保存一組有組織的數(shù)據(jù)容器。
優(yōu)點:

  • 實現(xiàn)數(shù)據(jù)持久化。
  • 使用完整的管理系統(tǒng)統(tǒng)一管理,易于查詢。

特點:

  • 將數(shù)據(jù)放到表中,表再放到庫中。
  • 一個數(shù)據(jù)庫可以有多個表,每個表都有一個名字,用來標識自己;表名具有唯一性。
  • 表具有一些特性,這些特性定義了數(shù)據(jù)在表中如何存儲,類似 java 中“類”的設計
  • 表由列組成,我們也稱為‘字段’。所以表都是由一個或者多個列組成的,每一列類似于 java 中的“屬性”
  • 表中的數(shù)據(jù)是按行存儲的,每一行類似于 java 中的“對象”。

DBMS

概念:
數(shù)據(jù)庫管理系統(tǒng),又稱數(shù)據(jù)庫軟件(產(chǎn)品),用于管理DB中的數(shù)據(jù)
常見的數(shù)據(jù)管理系統(tǒng):mysql、oracle、db2、sqlserver

SQL

概念:
結(jié)構化查詢語言,用于和DBMS通信的語言,不是某個數(shù)據(jù)庫軟件特有的,而是所有的主流數(shù)據(jù)庫軟件通用的語言

連接查詢

按年份分類:
sql92:

  • 等值連接
  • 非等值連接
  • 自連接

sql99:

  • 內(nèi)連接
    - 等值連接
    - 非等值連接
    - 自連接
  • 外連接
    -左外連接
    -右外連接
  • 交叉連接

子查詢

含義:嵌套在其他語句內(nèi)部的select語句稱為子查詢或內(nèi)查詢

外面的語句可以是:insert、update、delete、select等,一般select作為外面語句較多
外面如果為select語句,則此語句稱為外查詢或主查詢

分類
按出現(xiàn)的位置分類:

  • select后面:僅僅支持標量子查詢
  • from后面:表子查詢
  • where 或 having 后面:標量子查詢、列子查詢、行子查詢
  • exists后面:標量子查詢、列子查詢、行子查詢、表子查詢

按結(jié)果集分類:

  • 標量子查詢(單行子查詢):結(jié)果集為一行一列
  • 列子查詢(多行子查詢):結(jié)果集為多行一列
  • 行子查詢:結(jié)果集為多行多列
  • 表子查詢:結(jié)果集為多行多列(任意)

案例

這是力扣中的數(shù)據(jù)庫中的一道例題
Employee 表包含所有員工信息,每個員工有其對應的 Id, salary 和 department Id。

Department 表包含公司所有部門的信息。

編寫一個 SQL 查詢,找出每個部門工資最高的員工。對于上述表,您的 SQL 查詢應返回以下行(行的順序無關緊要)。

解題思路:
①求出每個部門對應的最高工資和部門編號

select max(Salary),DepartmentIdfrom Employee group by DepartmentId

②內(nèi)連接兩表并進行篩選

# 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 );

運行結(jié)果如下:

總結(jié)

以上是生活随笔為你收集整理的数据库——(DB、DBMS、SQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。