給你總結好了一些mysql的常用sql語句

1、插入數據語句:INSERT INTO 數據表 (字段1,字段2) VALUES(`值1`,`值2`);

//獲取剛才插入的數據的ID

$sql = "insert into username(username,password)values('劉柱','liuzhu1')";

if(mysql_query($sql)){

echo "插入的ID為".mysql_insert_id();

}

2、查詢語句:SELECT * FROM 數據表;

//模糊查詢:%%,這個的意思是%name%包含name的,name%,以name開頭的

SELECT * FROM 80cms_user_id WHERE user_id LIKE '222.222.28.%';

$sql = "select * from ceshi where username like '小%' or username like '%1%'";

//條件查詢:where

SELECT * FROM 數據表 where id=1;等等條件

SELECT username from username WHERE userid in(3,2);

//取唯一值,把這個列所有相同的值全部幹掉只剩下一個人來顯示:distinct

$sql = "select distinct username from ceshi";//select distinct 字段 from 表

//取數據表中的空值:null 和not null

select * from ceshi where username is null;或者username is not null;

/連接符,把id和username這兩個值起來:select concat(id,username) from ceshi

//$sql = "select concat(id,'-',username) from ceshi";

//可以取出數據表中的兩個字段值,然後在合併一個字段值,然後起個別名在輸出

$sql = "select id,username,concat(id,'-',username) as idname from ceshi";

//隨機取出3個根據一個隨機數字的排序:order by

$sql = "select * from ceshi order by rand() limit 0,3";

按照多個字段:id desc,time desc;

//求一下數據庫中的值的和,你可以給這個和取一個別名,然後利於你使用數組來取這個值:count

select count(*) tot from ceshi;

//取出數據庫中username包含劉的這些值,然後取和

$sql = "select count(*) tot from ceshi where username like '%劉%'";

//取出數據庫中的和/最大值/最小值

$sql ="select sum(id) as sum from ceshi where username like '%劉柱%'";

$sql ="select max(id) as max from ceshi where username like '%劉柱%'";

$sql ="select min(id) as min from ceshi where username like '%劉柱%'";

獲取一個字段在這個表中的個數

//GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。

獲取一個人發帖的次數,進行分組歸類,如果分組之後還有order by的排序的話,那麼一定要寫在group by後面,這個優先級高,還有就是當你想再後面還有添加條件的時候,那麼就只能用having這個來連接,之後你還可以進行排序,還有一種情況就是說:where id=1 group by 這樣的形式也是一樣,group by這個是以誰為分組,那麼就會合並相同的數值

SELECT username,COUNT(userid) as tot from username GROUP BY username;

這句話的意思是說,將username相同的值合併求和,依據userid,也就是算算一個出現多少次

$sql = "select username,count(id) as tot from ceshi group by username having tot>5 order by asc";

$res = mysql_query($sql);

while($row = mysql_fetch_assoc($res)){

echo "username:".$row['username']."次數:".$row['tot']."
";

}

//多表查詢的總結from 表1,表2,表3,.....,還有你要寫清楚了你查的是那個表的字段,一定是【表.字段】

$sql = "select username.username,post.title,post.content from username,post where username.userid=post.userid";

//這個是多表查詢,然後分組進行求和GROUP BY username.userid,這個group by可以後面使用任意,除去post.id,,,用group by的時候,能用id就用id加索引的比較快,這個叫分組聚合函數,也就是說group by叫分組,那麼聚合呢就時你要加一個函數,比如說count等等,如果沒有聚合函數的話,那麼這個值將只出現一次,也就是把所有屬於它的數值取最新的值,給它,還有就是說,當你以哪個字段為分組的時候,那麼沒有聚合函數的話,這個值將只取最新的第一條數據

select username.username,count(username.userid) as tot from username,post where username.userid=post.userid GROUP BYusername.userid

//left join左連接,就是依據左邊的表,然後來搭配右面,以左面為準,就是想把完全顯示的東西,放在左邊

$sql = "select username.username,post.title,post.content from username left join post on username.userid=post.userid";

//right join右連接,就是以右面為準,就是把完全顯示的表放在右面

select username.username,post.title,post.content from username right join post on username.userid=post.userid;

//嵌套式的查詢:有個缺點就是where後面的字段的索引會失效,那麼速度將會降下來

$sql = "SELECT username from username WHERE userid in(SELECT userid FROM post)";

3、刪除語句:delete from 數據表 where id=1;

4、更新語句:update 表 set 字段值=新值,字段值=新值 where id=1 and name=1;

5、創建表的時候其中要注意的是:有一個int(3)這樣的以的修飾字段類型的值,那麼這個3代表的與長度無關,不夠3位時,前面加0,默認是不顯示的

6、char(n)

這個是你無論n是多少,都會佔用255個字節,但是你這個n是有限制的,也就是說你n寫多少,就是多少,不能大於n

varchar(n)

這個是你寫多少個字符就佔用多少個字符

text

這個是65535個字節

longtext

這個是42億字節

7、日期類型

date 月

time 時分秒

datetime 年月日時分秒

year 年

建議存int類型

8、字段屬性

1》unsigned

無符號,也就是,不會有負數的出現

2》zerofill

0填充,也就是int(3),這個你傳進去一個1,但是你規定的是3位,那麼就會001

3》auto_increment

id自增

4》null

5》not null

6》default

9、數據表字段加索引的一些問題。這個加了索引如果你搜索的時候,where id=1;或者name='liuhzu';這樣的話會加快檢索的速度,當然一個表中只能有一個主鍵索引,但是普通索引可以是多個,主鍵索引一般是id

10、mysql結構化查詢語句

結構化查詢語言sql包含

1、DDL //數據定義語言:create/drop/alter

2、DML //數據操作語言:insert/update/delete

3、DQL //數據查詢語言:select

4、DCL //數據控制語言:grant/commit/rollback

11、多表更新操作

update tb_express a,tb_plot b set a.plotname='',a.plotstatus=0,b.express_id=0 where a.express_id=$editPlotExpressid AND b.id=$editPlotplotid

12、根據id 查 name

select name from table where id in(1,2,3,4,4)

13、Mysql邏輯操作判斷

(1)select if(1<2,1,0);

返回的是1,這個就是判斷參數1的邏輯判斷是否正確,如果正確返回第一個參數,如果不正確返回0

(2)、ifnull的操作,如果為空就返回第二個參數,如果不為空就返回當前的參數值

(3)case when then...的操作


分享到:


相關文章: