標籤:
今天我們學習了資料表的相關操作,以下是筆記。
一、資料操作語言 1.增添資料
在資料表中添加資料有多種的文法形式
形式1:insert [into] table_name [(欄位1,欄位2,欄位3......)] values (值1,值2,值3......),(......),(......)......;
形式2:replace [into] table_name [(欄位1,欄位2,欄位3......)] values (值1,值2,值3......),(......),(......)......;
形式3:insert [into] table_name [(欄位1,欄位2,欄位3......)] select 欄位1,欄位2,欄位3......from other_table_name;
形式4:insert [into] table_name set 欄位1 = 值,欄位2=值,......
說明:
在四中方法中,形式1是最常用的方法,其中它的值,可以是一個固定的值或者函數調用的結果,或者是變數,如果對應的欄位是字元或者時間類型,則直接使用單引號。形式1和形式2的用法大體是一致的,唯一的不同就是在插入的資料的主鍵或者唯一鍵有重複的時候,形式1會報錯,形式2會更改資料。形式3就是簡單的將其他表查詢到的資料添加到當前的表中,但必須要注意其欄位列表要一一對應。形式4的比較不常用。
方式2:
load data(載入資料)
文法形式:
load data infile“完整的資料檔案路徑” into table table_name;
2.刪除資料
刪除資料的文法形式:
delete from table_name [where] [order by] [limit];
說明:
刪除資料是以行為單位的;
要帶where條件,否則會刪除所有的資料;
order by 排序設定,通常與limit一同使用;
limit來限定要刪除幾行資料;
》》
3.修改資料
修改資料的文法:
update table_name set 欄位1=值,欄位2=值......[where] [order by] [limit];
說明:
修改時也與where同時用,否則修改全部資料;
值如果是字串或時間類型,加單引號;
4.查詢資料
因為查詢的內容比較多,所以查詢的相關知識我們單獨作為一章來記載。(下面一大章)
二、資料表查詢詳解 1.基本文法形式
查詢語句的基本文法形式:
select [all或distinct] 欄位或運算式列表 [from子句] [where子句] [group by子句] [having子句] [order by 子句] [limit子句]
下面咱們來詳細講解每個子句的含義及用法;
2.all和distinct
用於設定select出來的資料,是否消除重複行,可以不寫,,預設為all
all:表示不消除,即表示所有都顯示出來,是預設值;
distinct:消除;
3.欄位和運算式列表
欄位,就是自如來源於表的,在表剛建立的時候設定;
運算式就是類似與內容比如:1,1+2+3,或者now()等內建函式;
當然了我們每插尋出來的結果都可以用as進行別名設定;
4.from子句
from子句表示select 部分中取得資料的資料來源---其實就是去哪個表中拿資料,其後面通常是跟表名,也可以是其他一些資料來源(串連表);其中from前面跟的欄位必須是來源表中已有的欄位名;
5.where子句
說明:
where子句就是對from子句中的資料來源的資料進行條件式篩選,篩選的機制就是逐行進行判斷,其作用基本跟if語句一樣。where依賴於from語句。
where中通常使用各種運算子:
算數運算子:+ - * / %;
比較子:> < = >= <= <>(不等於) == !=(不等於)
邏輯運算子:and or not
特殊運算子:is between in like
is運算子:
有四種使用的情況:
XX is null:判斷某個欄位是“null”
XX is not null:判斷某個欄位是不空;
XX is true:判斷某個欄位是否為真;
XX is false:判斷某個欄位的值否為假 : 0,0.0,‘’,null
between運算子:
用於判斷某個欄位的資料值是否在某個給定的範圍,適用於數字類型。
用法: XX between 值1 and 值2;
其用法類似於 XX>=值1 and XX<=值2;
in運算子:
其表示欄位的值為所列出的這些值中的一個,就算滿足條件,這些值基本上都是無規律的。
文法:XX in (值1,值2,值3......)
like 運算子:對字串進行模糊查詢
其作用就是實現對字串的某種特徵資訊的模糊尋找,依賴於下面兩個特殊符號:
% :代表任何個數的任何字元;
_ :(下杠),代表一個任何字元;
其使用法:XX like “要尋找的內容”
6.group by子句
形式:
group by 欄位1 [desc|asc],欄位2[desc|asc]......
說明:
分組是對前述已經找出來的資料及已經經過where篩選過的資料進行某種標準進行分組;同時,該分組結果,可以同時指定“排序方式”,通常情況下分組只依據一個欄位,2個以上很少。
那麼什麼是分組呢? 就是將多行資料,以某種標準來進行分類;
特別注意的是:分組之後的結果只有一個一個的組了,其結果就是在select 語句中輸出的部分只應該出現組的資訊:
select 組資訊1,組資訊2,...from 資料來源 group by欄位;
在應用中,分組之後,通常有以下幾種可以用的組資訊(即可以出現在select中):
1.分組依據的本身資訊,其實就是該分組依據的欄位名;
2.每一組的數量資訊是用:count(*)獲得;
3.最大值:max(欄位名) 最小值:min(欄位名) 平均值:avg(欄位名) 總和:sum(欄位名)
7.having子句
having的作用和where的作用是一樣的,但是只是對分組的資料進行篩選。
8.order by子句
它用於將前面取得的資料以設定的標準來進行排序以輸出結果。
形式:
order by 欄位1 [asc|desc],欄位2[asc|desc]......
說明:
對前面的結果資料指定一個或多個欄位排序;
排序可以規定是正序還是倒敘;
多個欄位排序都是在前一個欄位 的基礎上。
9.limit子句
含義:
它用於將前面取出的資料按指定的行取出來:從第幾行開始取出多少行;
形式:
limit 起始行號,行數;
說明:
起始行號都是從零開始;
起始行號跟資料中的任何一個欄位沒有關係;
要取出的行號也是數字,應該大於0;
可以有簡略:limit 行數;表示從第零行開始;
三、對整個select語句的總結 1.雖然在形式上,select的很多句子都是可以省略的但是她們出現的順序是不能打亂的,必須按照順序寫出; 2.where依賴於from子句; 3.having依賴於group by 子句; 4.select 中的 欄位也是依賴於from子句; 5.上述各子句的內部執行過程也是依賴於from子句的;
php學習day11---資料庫(3)資料表的增刪改查