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