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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

如何用mysql创建orders表_《MySQL必知必会》学习笔记

發布時間:2025/4/16 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用mysql创建orders表_《MySQL必知必会》学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本書所用的表:

68.png

67.png

66.png

65.png

64.png

63.png

第一章:了解SQL

數據庫:保存有組織的數據的容器(通常是一個文件或一組文件)。

數據庫軟件:DBMS(數據庫管理系統),如MySQL等。

表:某種特定類型數據的結構化清單。

表名:表名的唯一性取決于多個因素,如數據庫名和表名等的結合。

模式:關于數據庫和表的布局及特性的信息。

列:表中的一個字段。所有表都是由一個或多個列組成的。每個列都有相應的數據類型。

數據類型:所容許的數據的類型。限制可存儲在列中的數據種類。

行:表中的一個記錄。表中的數據是按行存儲的。

主鍵(primary key):一列(或一組列),其值能夠唯一區分表中的每個行。

SQL:結構化查詢語言(Structured Query Language),用來與數據庫通信。

第二章:MySQL簡介

MySQL是一種DBMS,即它是一種數據庫軟件。

DBMS可分為兩類:一類為基于共享文件系統的DBMS,另一類為基于客戶機-服務器的DBMS。MySQL、Oracle以及Microsoft SQL Server等數據庫是基于客戶機-服務器的數據庫。

客戶機是與用戶打交道的軟件,與數據文件打交道的只有服務器軟件??蛻魴C軟件通過網絡與服務器軟件交流。

第三章:使用MySQL

連接MySQL,需要以下信息:

1.主機名——如果連接到本地MySQL服務器,為localhost

2.端口(如果使用默認端口3306之外的端口)

3.一個合法的用戶名

4.用戶口令(如果需要)

選擇數據庫可使用use關鍵字,例如:use dbone;

了解數據庫和表:

1.show databases;返回可用數據庫的一個列表

2.show tables;返回一個數據庫內的表的列表

3.show columns from customers;顯示表的列的信息

4.show status;用于顯示廣泛的服務器狀態信息

5.show create database;顯示創建特定數據庫的MySQL語句

6.show create table;顯示創建特定表的MySQL語句

7.show grants;顯示授予用戶的安全權限

8.show errors;和show warnings;顯示服務器錯誤或警告信息

第四章:檢索數據

本章介紹如何使用select語句從表中檢索一個或多個數據列

檢索單個列:select cust_address from customers;

檢索多個列:select cust_address,cust_city,cust_zip from customers;

檢索所有列:select * from customers;

檢索不同的行: select distinct cust_country from customers; distinct關鍵字指示MySQL只返回不同的值。

限制結果:select cust_address from customers limit 5;

select cust_address from customers limit 2,3;

5.png

6.png

7.png

8.png

9.png

10.png

第五章:排序檢索數據

本章講授如何使用select語句的order by子句

排序數據:select cust_zip from customers order by cust_zip;

按多個列排序:select cust_id,cust_zip,cust_contact from customers order by cust_zip,cust_contact;

指定排序方向:select cust_id,cust_zip,cust_contact from customers order by cust_zip desc,cust_contact;倒序 desc關鍵字只應用到直接位于其前面的列名。

13.png

12.png

11.png

第六章:過濾數據

本章使用where子句指定索引條件

where子句操作符

說明

=

等于

<>

不等于

!=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

between

在指定的兩個值之間

17.png

16.png

14.png

第七章:數據過濾

本章講授如何組合where子句,使用and,or,not,in操作符

and:用在where子句中的關鍵字,用來指示檢索滿足所有給定條件的行。

or: where子句中使用的關鍵字,用來表示檢索匹配任一給定條件的行。

where子句中使用圓括號分組操作符

in:where子句中用來指定要匹配值的清單的關鍵字,功能與or相當。

not:where子句中用來否定后跟條件的關鍵字。

23.png

22.png

21.png

20.png

19.png

18.png

第八章:用通配符進行過濾

本章介紹什么是通配符,如何使用通配符,如何使用like操作符。

通配符:用來匹配值的一部分的特殊字符

搜索模式:由字面值、通配符或兩者組合構成的搜索條件

百分號(%) 通配符:表示任何字符出現任意次數。

下劃線(_) 通配符:下劃線的用途與%一樣,但下劃線只匹配單個字符而不是多個字符

使用通配符的技巧:

1.不要過度使用通配符。

2.在確實需要使用通配符,除非絕對有必要,否則不要把他們用在搜索模式的開始處。

3.仔細注意通配符的位置。

27.png

26.png

25.png

24.png

第九章:用正則表達式進行搜索

本章將學習如何在MySQL where子句內使用正則表達式來控制數據過濾。

正則表達式是用來匹配文本的特殊的串(字符集合)。

MySQL僅支持多數正則表達式實現的一個很小的自己。MySQL中的正則表達式匹配不分區大小寫,regexp后所跟的東西作為正則表達式處理。

like匹配整個列,regexp在列值內進行匹配

基本字符匹配

or匹配:使用|

匹配幾個字符之一:[]

匹配范圍:[0-9] [a-z]

匹配特殊字符:\. \\

匹配字符類

匹配多個實例

定位符

字符類

說明

[:alnum:]

任意字母和數字(同[a-zA-Z0-9])

[:alpha:]

任意字符(同[a-zA-Z])

[:blank:]

空格和制表(同[\t])

[:cntrl:]

ASCII控制字符(ASCII 0到31和127)

[:digit:]

任意數字(同[0-9])

[:graph:]

與[:print:]相同,但不包括空格

[:lower:]

任意小寫字母(同[a-z])

[:print:]

任意可打印字符

[:punct:]

既不在[:alnum:]又不在[:cntrl:]中的任意字符

[:space:]

包括空格在內的任意空白字符(同[\f\n\r\t\v])

[:upper:]

任意大寫字母(同[A-z])

[:xdigit:]

任意十六進制數字(同[a-fA-f0-9])

重復元字符

說明

*

0個或多個匹配

+

一個或多個匹配(等于{1,})

0個或1個匹配(等于{0,1})

{n}

指定數目的匹配

{n,}

不少于指定數目的匹配

{n,m}

匹配數目的范圍(m不超過255)

定位元字符

說明

^

文本的開始

$

文本的結尾

[[:<:>

詞的開始

[[:>:]]

詞的結尾

37.png

36.png

35.png

34.png

33.png

32.png

30.png

29.png

28.png

第十章:創建計算字段

字段基本上與列的意思相同,經常互換使用,不過數據庫列一般稱為列,而術語字段通常用在計算字段的連接上。

拼接:將值聯結到一起構成單個值??墒褂肅oncat()函數來拼接兩個列。

別名:a as b

RTrim()函數:去除數據右側多余的空格

執行算術計算:+ - * /

38.png

39.png

40.png

第十一章:使用數據處理函數

本章介紹什么是函數,MySQL支持何種函數,以及如何使用這些函數。

SQL支持利用函數來處理數據。函數一般是在數據上執行的,它給數據的轉換和處理提供了方便。

大多數SQL實現支持以下類型的函數:

1.用于處理文本串(如刪除或填充值,轉換值為大寫或小寫)的文本函數。

2.用于在數值數據上進行算術操作(如返回絕對值,進行代數運算)的數值函數。

3.用于處理日期和時間值并從這些值中提取特定成分(例如,返回兩個日期之差,檢查日期有效性等)的日期和時間函數。

4.返回DBMS正使用的特殊信息(如返回用戶登錄信息,檢查版本細節)的系統函數。

常用的文本處理函數

說明

Left()

返回串左邊的字符

Length()

返回串的長度

Locate()

找出串的一個子串

Lower()

將串轉換為小寫

LTrim()

去掉串左邊的空格

Right()

返回串右邊的字符

RTrim()

去掉串右邊的空格

Soundex()

返回串的SOUNDEX值

SubString()

返回子串的字符

Upper()

將串轉換為大寫

常用日期和時間處理函數

說明

AddDate()

增加一個日期(天、周等)

AddTime()

增加一個時間(時、分等)

CurDate()

返回當前日期

CurTime()

返回當前時間

Date()

返回日期時間的日期部分

DateDiff()

計算兩個日期之差

Date_Add()

高度靈活的日期運算函數

Date_Format()

返回一個格式化的日期或時間串

Day()

返回一個日期的天數部分

DayOfWeek()

對于一個日期,返回對應的星期幾

Hour()

返回一個時間的小時部分

Minute()

返回一個時間的分鐘部分

Month()

返回一個日期的月數部分

Now()

返回當前日期和時間

Second()

返回一個時間的秒部分

Time()

返回一個日期時間的時間部分

Year()

返回一個日期的年份部分

常用數值處理函數

說明

Abs()

返回一個數的絕對值

Cos()

返回一個角度的余弦

Exp()

返回一個數的指數值

Mod()

返回除操作的余數

Pi()

返回圓周率

Rand()

返回一個隨機數

Sin()

返回一個角度的正弦

Sqrt()

返回一個數的平方根

Tan()

返回一個角度的正切

45.png

44.png

43.png

42.png

41.png

第十二章:匯總數據

本章介紹什么是SQL的聚集函數以及如何利用它們匯總表的數據。

聚集函數:運行在行組上,計算和返回單個值的函數。

SQL聚集函數

說明

AVG()

返回某列的平均值

COUNT()

返回某列的函數

MAX()

返回某列的最大值

MIN()

返回某列的最小值

SUM()

返回某列值之和

52.png

51.png

50.png

49.png

48.png

47.png

46.png

第十三章:分組數據

本章介紹如何分組數據,以便能匯總表內容的子集,這涉及兩個新select語句子句,分別是group by子句和having子句

分組允許把數據分為多個邏輯組,以便能對每個組進行聚集計算。

分組是在select語句的group by子句中建立的,group by子句指示MySQL分組數據,然后對每個組而不是整個結果集進行聚集。

在具體使用group by子句前,需要知道一些重要的規定。

1.group by子句可以包含任意數目的列。這使得能對分組進行嵌套,為數據分組提供更細致的控制。

2.如果在group by子句中嵌套了分組,數據將在最后規定的分組上進行匯總。換句話說,在建立分組時,指定的所有列都一起計算。

3.group by子句中列出的每個列都必須是檢索列或有效的表達式。如果在select中使用表達式,則必須在group by子句中指定相同的表達式。不能使用別名。

4.除聚集計算語句外,select語句中的每個列都必須在group by子句中給出。

5.如果分組列中具有null值,則null將作為一個分組返回。如果列中有多行null值,它們將分為一組。

6.group by子句必須出現在where子句之后,order by子句之前。

使用with rollup關鍵字,可以得到每個分組以及每個分組匯總級別的值。

使用having子句過濾分組。

where在數據分組前進行過濾,having在數據分組后進行過濾。

以下二者區別:

order by

group by

排序產生的輸出

分組行。但輸出可能不是分組的順序

任意列都可以使用

只可能使用選擇列或表達式列,而且必須使用每個選擇列表達式

不一定需要

如果與聚集函數一起使用列,則必須使用

select子句及其順序:

select子句

說明

是否必須使用

select

要返回的列或表達式

from

從中檢索數據的表

僅在從表選擇數據時使用

where

行級過濾

group by

分組說明

僅在按組計算聚集時使用

having

組級過濾

order by

輸出排序順序

limit

要檢索的行數

59.png

58.png

57.png

56.png

55.png

54.png

53.png

第十四章:使用子查詢

本章介紹什么是子查詢以及如何使用它們。

子查詢:即嵌套在其他查詢中的查詢。

利用子查詢進行過濾。

在where子句中使用子查詢,應該保證select語句具有與where子句中相同數目的列。通常,子查詢將返回單個列并且與單個列匹配,但如果需要也可以使用多個列。

作為計算字段使用子查詢。

相關子查詢:涉及外部查詢的子查詢。

子查詢最常見的使用是在where子句的in操作符中,以及用來填充計算列。

例子一:列出訂購物品tnt2的所有客戶:

1.檢索包含物品tnt2的所有訂單的編號

2.檢索具有前一步驟列出的訂單編號的所有客戶的ID。

3.檢索前一步驟返回的所有客戶ID的客戶信息。

例子二:顯示customers表中每個客戶的訂單總數。

1.從customers表中檢索客戶列表。

2.對于檢索出的每個客戶,統計其在orders表中的訂單數目。

61.png

62.png

第十五章:聯結表

本章介紹什么是聯結,為什么要使用聯結,如何編寫使用聯結的select語句。

關系表的設計就是要保證把信息分解成多個表,一類數據一個表。各表通過某些常用的值(即關系設計中的關系)互相關聯。

外鍵:外鍵為某個表中的一列,它包含另一個表的主鍵值,定義了兩個表之間的關系。

可伸縮性:能夠適應不斷增加的工作量而不失敗。設計良好的數據庫或應用程序稱之為可伸縮性好。

聯結是一種機制,用來在一條select語句中關聯表。

創建聯結:規定要聯結的所有表以及它們如何關聯即可。

完全限定列名:在引用的列可能出現二義性時,必須使用完全限定列名(用一個點分隔的表名和列名)。

笛卡爾積:由沒有聯結條件的表關系返回的結果為笛卡爾積。檢索出的行的數目將是第一個表中的行數乘以第二個表中的行數。

等值聯結:基于兩個表之間的相等測試,也稱為內部聯結。

72.png

71.png

70.png

69.png

第十六章:創建高級聯結

本章講解另外一些聯結類型,介紹如何對被聯結的表使用表別名和聚集函數。

別名除了用于列名和計算字段外,SQL還允許給表名起別名。理由:

1.縮短SQL語句。

2.允許在單條select語句中多次使用相同的表。

表別名不僅能用于where子句,它還可以用于select的列表、order by子句以及語句的其他部分。

自聯結:自聯結通常作為外部語句用來替代從相同表中檢索數據時使用的子查詢語句。

自然聯結:只能選擇那些唯一的列。通過對表使用通配符(select *),對所有其他表的列使用明確的子集來完成。

外部聯結:聯結包含了那些在相關表中沒有關聯行的行。包括左外聯結和右外聯結。它們之間的唯一差別是所關聯的表的順序不同。

使用帶聚集函數的聯結。

關于聯結及其使用的某些要點:

1.注意所使用的聯結類型。一般我們使用內部聯結,但使用外部聯結也是有效的。

2.保證使用正確的聯結條件,否則將返回不正確的數據。

3.應該總是提供聯結條件,否則會得出笛卡爾積。

4.在一個聯結中可以包含多個表,甚至對于每個聯結可以采用不同的聯結類型。雖然這樣做是合法的,一般也很有用,但應該在一起測試它們前,分別測試每個聯結。這將使故障排除更為簡單。

77.png

76.png

75.png

74.png

73.png

第十七章:組合查詢

本章講述如何利用union操作符將多條select語句組合成一個結果集。

MySQL也允許執行多個查詢,并將結果作為單個查詢結果集返回。這些組合查詢稱為并(union)或復合查詢。

有兩種基本情況,其中需要使用組合查詢:

1.在單個查詢中從不同的表返回類似結構的數據

2.對單個表執行多個查詢,按單個查詢返回數據。

使用union可極大地簡化復雜的where子句,簡化從多個表中檢索數據的工作。

union規則:

1.union必須由兩條或兩條以上的select語句組成,語句之間用關鍵字union分隔。

2.union中的每個查詢必須包含相同的列、表達式或聚集函數。

3.列數據類型必須兼容:類型不必完全相同,但必須是DBMS可以隱含地轉換的類型

使用union all,MySQL不取消重復的行。

80.png

79.png

78.png

第十八章:全文本搜索

第十九章:插入數據

第二十章:更新和刪除數據

第二十一章:創建和操縱表

第二十二章:使用視圖

第二十三章:使用存儲過程

第二十四章:使用游標

第二十五章:使用觸發器

第二十六章:管理事務處理

第二十七章:全球化和本地化

第二十八章:安全管理

第二十九章:數據庫維護

第三十章:改善性能

總結

以上是生活随笔為你收集整理的如何用mysql创建orders表_《MySQL必知必会》学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。