1. 程式人生 > 其它 >雜記四:scala 柯理化和隱式轉換

雜記四:scala 柯理化和隱式轉換

技術標籤:mysql

MySQL

MySQL資料庫

資料庫(DataBase):資料庫是按照資料結構來組織、儲存和管理資料的倉庫。資料庫管理系統(Database Management SystemDBMS):是專門用於管理資料庫的計算機系統軟體。資料庫管理系統能夠為資料庫提供資料的定義、建立、維護、查詢和統計等操作功能,並完成對資料完整性、安全性進行控制的功能。

資料庫操作

資料庫初始資料:
在這裡插入圖片描述

insect into 表名 set 列名1=資料1,列名2=資料2…

INSERT INTO novel SET bookname='吞噬星空',auther='我吃西紅柿',price='34'
INSERT INTO novel SET bookname='星辰變',auther='我吃西紅柿',price='49'
INSERT INTO novel SET bookname='武動乾坤',auther='天蠶土豆',price='21'

在這裡插入圖片描述
注意 :可以隨意加資料,並不是有幾列就要加幾個的資料,如果該列資料沒有加,會顯示NULL

INSERT INTO novel SET bookname='武動乾坤',auther='天蠶土豆'

在這裡插入圖片描述

delete from 表名 where 條件(比如將id為5的行刪除)

DELETE FROM novel WHERE id=5
DELETE FROM novel WHERE price='66'

可以看到id=5和price=66的行被刪除
在這裡插入圖片描述

update 表名 set 列名1=資料1,列名2=資料2… where 條件(比如id=1)

UPDATE novel SET bookname='絕世唐門',price='111' WHERE auther='唐家三少'
UPDATE novel SET bookname='我不知道' WHERE auther='天蠶土豆'

可以看到如果有多行符合條件的資料,會全部更改.因此如果只改一行的資料,條件要寫唯一

在這裡插入圖片描述

查詢操作是我們在專案中最常用到的操作

一、普通查詢:

初始資料:
在這裡插入圖片描述
1、 查詢所有的資料:
select * from 表名;

SELECT * FROM fruit

在這裡插入圖片描述

2、 查詢時合併列:
查詢每個水果的price和weight的總價

SELECT id,fruit,(price*weight) AS 'total' FROM fruit

注意:合併列只能合併數值型別的欄位,as是給它起的別名
在這裡插入圖片描述

3、 查詢時去除重複資料:
DISTINCT

SELECT DISTINCT fruit FROM fruit

在這裡插入圖片描述

– 示例: 查詢學生所在的地區
SELECT DISTINCT address FROM student;
– 另一種語法
SELECT DISTINCT(address) FROM student;

二、條件查詢: select 列名 from 表名 where 條件

where後面的條件可以用>、<、>=、<=、!=等多種比較運算子,多個條件之間可 以用or、and等邏輯運算子

比如查詢price大於等於7的所有水果

SELECT * FROM fruit WHERE price>=7

在這裡插入圖片描述
比如查詢weight小於5的水果

SELECT * FROM fruit WHERE weight<5

在這裡插入圖片描述

三、排序:

select * from 表名 [where 條件] [ order by field1 [desc/asc],field2 [desc/asc]…];

  • 1.desc 降序排列,asc 升序排列
  • 2.order by 後面可以跟多個不同的排序欄位,每個排序欄位都可以有不同的排序順序。
  • 3.如果排序欄位的值一樣,則相同的欄位按照第二個排序欄位進行排序。
  • 4.如果只有一個排序欄位,則欄位相同的記錄將會無序排列。

比如按照price降序查詢所有水果

SELECT * FROM fruit ORDER BY price DESC 

在這裡插入圖片描述

四、限制:

select … from 表名 [limit 起始偏移量,行數];

例如:取出價格前四名的水果(可以省略起始偏移量,此時預設為0)

SELECT * FROM fruit ORDER BY price DESC LIMIT 0, 4

在這裡插入圖片描述

五、聚合:

select 欄位 fun_name from 表名 [ where 條件 ] [ groupbyfield1,field2… ] [with rollup] [having 條件];

  • 1.fun_name 表示要做的聚合操作,也就是說聚合函式,常用的有 : sum(求和)、count(*)
    (記錄數)、max(最大值)、min(最小值)。
  • 2.group by關鍵字 表示要進行分類聚合的欄位。比如要按照部門分類統計員工數量,部門就應
    該寫在group by 後面。
  • 3.with rollup 是可選語法,表明是否對分類聚合後的結果進行再彙總
  • 4.having 關鍵字表示對分類後的結果再進行條件過濾。
    例如: 公司員工表A如下 (編號,姓,名,薪水)

(1) 統計水果種類

SELECT COUNT(1) FROM fruit

在這裡插入圖片描述
(2) 統計各種水果的個數

SELECT fruit,COUNT(1) FROM fruit GROUP BY fruit

在這裡插入圖片描述

(3) 統計各種水果的個數及水果種類數

SELECT fruit,COUNT(1) FROM fruit GROUP BY fruit WITH ROLLUP 

在這裡插入圖片描述

(4)統計種類數大於等於2的水果

SELECT fruit,COUNT(1) FROM fruit GROUP BY fruit HAVING COUNT(1)>=2

在這裡插入圖片描述(5)統計最低價格,最高價格

SELECT MIN(price),MAX(price) FROM fruit

在這裡插入圖片描述

六、多表連線查詢:

表連線分為內連線和外連線。 他們之間最主要的區別:內連線僅選出兩張表中互相匹配的記錄,外連線會選出其他不匹配的記錄。

比如這是兩張表book和novel
在這裡插入圖片描述在這裡插入圖片描述

1、內連線

 SELECT book.name,novel.bookname FROM book,novel WHERE book.name=novel.bookname

在這裡插入圖片描述

2、外連線 分為左連線和右連線

  • 左連線:包含左邊表中所有的記錄,右邊表中沒有匹配的記錄顯示為NULL。
  • 右連線:包含右邊表中所有的記錄,左邊表中沒有匹配的記錄顯示為NULL。

(1)外連線(左連線):

SELECT book.name,novel.bookname FROM book LEFT JOIN novel ON book.name=novel.bookname

在這裡插入圖片描述
(2)外連線(右連線):

SELECT book.name,novel.bookname FROM book RIGHT JOIN novel ON book.name=novel.bookname

在這裡插入圖片描述