數(shù)據(jù)庫(kù)
字段屬性
-
字符串
char 定長(zhǎng) varchar 不定長(zhǎng),默認(rèn)值為255
-
數(shù)值
int 整數(shù) float 浮點(diǎn)數(shù),對(duì)精確度要求低的 decimal 浮點(diǎn)數(shù),對(duì)精確度要求高的,適用于貨幣之類(lèi)的
-
text
用于較大的文本
-
日期相關(guān)
datetime 年月日 時(shí)分秒 date 年月日 time 時(shí)分秒
字段約束
null \ not null 限定是否為空
default 設(shè)置默認(rèn)值,若是字符串,應(yīng)加引號(hào)
primary key 主鍵 一張表只能一個(gè),一般用于id,自動(dòng)生成
auto_increment 自增長(zhǎng)
unique key 這個(gè)字段不能重復(fù) 值是唯一的
comment 注釋
查詢語(yǔ)句
1. select * from mytable -->查詢mytable中所有的數(shù)據(jù)
2. select id,name,sex from mytable --> 查詢mytable中的 id,name,sex
3. select * from mytable where id >= 20 --> 帶條件查詢,從mytable中查詢 id>=20的所有數(shù)據(jù)
4. select * from mytable where id<30 and sex ='女' --> 多條件查詢,從mytable中查詢id<30 并且 sex是'女'的所有數(shù)據(jù)
增加語(yǔ)句
insert into mytable values(null, 值1,值2...)
刪除語(yǔ)句
delete from mytable where id= 20;-->在mytable中 刪除id=20的數(shù)據(jù)
修改語(yǔ)句
update mytable set name='魯小小',age=44 where id= 5; -->把mytable中的id=5 的數(shù)據(jù)修改 name = '魯小小' age=44
函數(shù)
-
count() 統(tǒng)計(jì)
select count(*) from mytable;--> 統(tǒng)計(jì)mytable中的條數(shù),無(wú)法對(duì)null值進(jìn)行計(jì)算
-
min()/max()
select min(age) from mytable; select max(name) from mytable;//遇到字符,是根據(jù)字符的編碼值來(lái)比較大小的
-
avg() 平均值
如果avg() 括號(hào)里是字符串,則返回0
排序
-
升序 select * form 名 order by 值 asc
select * from mytable order by id desc --> 在mytable中根據(jù)id 降序排序
-
降序 select * form 名 order by 值 desc
select * from mytable order by id asc --> 在mytable中根據(jù)id 升序排序 select * from mytable order by id asc,age asc --> 在mytable中根據(jù)id 升序 ,age升序排序
復(fù)雜查詢
-
limit :獲取制定范圍的數(shù)據(jù)
limit n; --> 獲取前n條 limit n,m; --> n是偏移,從0開(kāi)始;m是數(shù)量 eg: limit 2,4; --> 從第三行開(kāi)始,取4行 分頁(yè)的公式: select * from mytable limit ($nowpage - 1)*$pagesize, $pagesize;
多表查詢
-
內(nèi)聯(lián)查詢
select * from A join B on A.cid = B.id; select * from A inner join B on A.cid = B.id;
-
左聯(lián)結(jié)
select * from A left join B on A.cid = B.id;
-
右聯(lián)結(jié)
select * from A right join B on A.cid = B.id;