PHP開(kāi)發(fā)基礎(chǔ)教程之?dāng)?shù)據(jù)庫(kù)增刪改查
插入記錄
插入記錄有兩種個(gè)基本語(yǔ)法
插入基本語(yǔ)法一
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | insert into 表 values(值1,值2,值n); |
示例 | insert into user values(2,'小明','男') |
示例說(shuō)明 | 向user表中插入值id為2,姓名為小明,性別為男 |
插入基本語(yǔ)法二
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | insert into 表(字段1,字段2,字段n) values(值1,值2,值n); |
示例 | insert into user(id,username,sex) values(213,'小方',1); |
示例說(shuō)明 | 向user表中插入id為213,username為小方,性別為1 |
說(shuō)明
基本語(yǔ)法1和基本語(yǔ)法2的區(qū)別是:
基本語(yǔ)法1的插入語(yǔ)句,表中有多少個(gè)字段就必須要插入多少個(gè)值。一個(gè)不能多,一個(gè)也不能少。若有默認(rèn)值,不想傳,可以寫(xiě)上null。
基本語(yǔ)法2中,除非有必填字段必須要寫(xiě)入值外。如果有默認(rèn)值的不想寫(xiě)可以忽略不寫(xiě)。mysql會(huì)自動(dòng)補(bǔ)主默認(rèn)值。
基本語(yǔ)法2中,以u(píng)ser(id,username,sex)字段順序?yàn)橹档捻樞颉?/p>
假設(shè)有一張表為user表,我們對(duì)字段、字段說(shuō)明、類型和字段選填和必須狀態(tài)進(jìn)行說(shuō)明,表結(jié)構(gòu)如下:
字段 | id | username | email | password | sex |
中文說(shuō)明 | 編號(hào) | 用戶名 | 郵箱 | 密碼 | 性別 |
類型說(shuō)明 | int | varchar(50) | varchar(60) | varchar(32) | tinyint |
默認(rèn)值說(shuō)明 | 自增 | 必填 | 選填字段,默認(rèn)值為123@php.com | 選填字段 | 必填字段 |
按照基本語(yǔ)法一寫(xiě)上表中的插入語(yǔ)句:
insert into user values(null,'小明','xiaoming@php.com',null ,1);
注意
可以不指定字段名稱,但是 values 后面的順序應(yīng)該和表字段的排序一致。
有默認(rèn)值的字段可以不寫(xiě),則為默認(rèn)值。
如果有默認(rèn)值或者可空字段不想傳入具體值,可寫(xiě)入null。
數(shù)據(jù)格式必須要與表規(guī)定的數(shù)據(jù)格式一致。
按照基本語(yǔ)法二寫(xiě)上表中的插入語(yǔ)句:
insert into user(username,sex) values('小明',1);
注意
ID為自增的自段可以不用傳入值,每插入一次這個(gè)字段的值會(huì)自動(dòng)向上加1。
有默認(rèn)值和可為空的字段可不傳
以表user(username,sex)的插入順序?yàn)闇?zhǔn)
基本語(yǔ)法二為更常用的用法
基本語(yǔ)法變形:一次插入多條記錄
insert into user(username,password,sex) values('黃曉明', 'abcdef', 1), ( 'angelababy', 'bcdeef', 0), ( '陳赫', '123456', 1), ('王寶強(qiáng)', '987654', 1);
查詢記錄
在講解查詢前,我為大家準(zhǔn)備了一個(gè)數(shù)據(jù)表。這個(gè)表中存放著銀行的余額和用戶的基本信息。
我們定義了一個(gè)表結(jié)構(gòu),表名為php。
創(chuàng)建表的語(yǔ)句如下:
CREATE TABLE money ( id INT NOT NULL AUTO_INCREMENT , username VARCHAR(50) NOT NULL , balance FLOAT NOT NULL , province VARCHAR(20) NOT NULL , age TINYINT UNSIGNED NOT NULL , sex TINYINT NOT NULL , PRIMARY KEY (id(10)) ) ENGINE = InnoDB CHARACTER SET utf8;
表結(jié)構(gòu)和數(shù)據(jù)展示如下:
id | username | balance | province | age | sex |
1 | 小明 | 1500 | 安徽 | 30 | 1 |
2 | 小方 | 532 | 山東 | 18 | 1 |
3 | 小紅 | 543 | 浙江 | 14 | 0 |
4 | 小白 | 8764 | 北京 | 27 | 1 |
注:
balance 是指余額
province 是指省份
基礎(chǔ)查詢
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | select * from 表; |
示例 | select * from php; |
|
示例說(shuō)明 查詢php表中所有字段中的所有結(jié)果
注:”*” 是一種正則表達(dá)式的寫(xiě)法,表示匹配所有,上面的查詢語(yǔ)句和下面的是等價(jià):
指定字段查詢
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | select 字段 from 表; |
示例 | select id,username, balance from php; |
示例說(shuō)明 | 查詢money表中id,username, balance字段中的所有結(jié)果 |
條件查詢 where
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | select 字段 from 表 where where條件; |
示例 | select * from php where age = 30; |
示例說(shuō)明 | 查詢php表中年齡為30的所有結(jié)果 |
where后可接的條件
比較運(yùn)算符 結(jié)果集中將符合條件的記錄列出來(lái)。上面的例子中,where 后面的田間是一個(gè)字段的 ‘=’。
除此之外,還可以使用>、<、>=、<=、!=等比較運(yùn)算符;
符號(hào) | 說(shuō)明 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
= | 等于 |
邏輯運(yùn)算符
多個(gè)條件還可以使用 or 、 and 等邏輯運(yùn)算符進(jìn)行多條件聯(lián)合查詢
符號(hào) | 說(shuō)明 |
or | 或者 |
and | 并且 |
我們來(lái)看一下多個(gè)條件的例子:
類型 | 詳細(xì)內(nèi)容 |
示例 | select * from php where id <10 and province='安徽'; |
說(shuō)明 | 查詢所有字段 要求id小于10 并且province='安徽' |
結(jié)果集排序
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | select 字段 from 表 order by 字段 排序關(guān)鍵詞 |
示例 | select id,username, balance from php order by balance desc; |
示例說(shuō)明 | 查詢php表中的id,username,balance字段,按照余額進(jìn)行降序排序 |
排序用到的關(guān)鍵詞:
關(guān)鍵詞 | 說(shuō)明 |
asc | 升序排列,從小到大(默認(rèn)) |
desc | 降序排列,從大到小 |
在 select 出來(lái)之后的結(jié)果集中排序使用 order by ,其中 desc 和 asc 是排序順序中的關(guān)鍵字。desc 表示按照字段進(jìn)行降序排列,asc 表示升序排列,如果不寫(xiě)關(guān)鍵字默認(rèn)升序排列。
更新記錄
更新數(shù)據(jù)我們已經(jīng)說(shuō)過(guò)。需要修改內(nèi)容,修改銀行卡余額,修改裝備信息的時(shí)候都需要使用到update,修改語(yǔ)句。
修改(也叫更新)語(yǔ)句的基本語(yǔ)語(yǔ)法如下:
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | update 表名 set 字段1=值1,字段2=值2,字段n=值n where 條件 |
示例 | update php set balance=balance-500 where id =1; |
示例說(shuō)明 | 修改php表,將balance余額減500。要求user id為15 |
原先記錄為
執(zhí)行SQL語(yǔ)句 update php set balance=balance-500 where id =1;
刪除記錄
類別 | 詳細(xì)解示 |
基本語(yǔ)法 | delete from 表 [where 條件]; |
示例 | delete from php where id =1; |
示例說(shuō)明 | 刪除掉用戶表中id等于1的那條數(shù)據(jù) |
刪除掉id=1的那一行,刪除之前表內(nèi)容:
執(zhí)行SQL語(yǔ)句 delete from php where id =1;