php 總結(9) mysql 字段 編碼 相關

1.修改字符串字符集
     編輯mysql配置文件 my.ini

  [client]

   default-character-set = utf8 

[wampmysqld]

character-set-server = utf8 //設置默認新建數據庫編碼爲utf8

collation-server = utf8_general_ci //更改現有數據庫編碼

2.表字段類型
數值:
int
float

不用加圓括號

字符串:
char (255) 最大長度255
varchar(255): 最大長度65535
text 65535字節 不能加圓括號

3.數據表操作
1.sql條件
 a.數學運算符
+-*/ /   %

b.邏輯運算符
&& ||  and  or

 
c.比較運算符

=, != ,>=,  <=, > , <,  <>

d.語句

DELETE from  user where id in (1,2,3)

id 在1 或者2 或者3

DELETE from  user where id>=3 and  id<=5;
DELETE from  user where id  between 3 and 5;

select distinct username from user 查詢唯一的username

select * from user where username like '%linux%   用戶名含有linux

 


 

 


排序order by
select * from user order by id asc 默認升序
select * from user order by id desc 默認降序
select * from user where age is null 年齡非空

SELECT * from patient_13 WHERE age > 20 order by age asc

 

mysql 關鍵字

使用limit 限定輸出個數
limit 7,3 【從7開始 截取三條】

隨機數rand()
SELECT * FROM `user` order by rand() limit 3 隨機打亂 提前前三條

隨機數concat()
SELECT concat(name,'-',sex) from user 把數據庫name和sex 連接起來


統計個數 count()
SELECT count(*) FROM `user` WHERE id>3 查看數據庫條數

求和sum()
select sum(id)from user

平均數avg()
select avg(id) from user

 最大值  最小值
select max(id) from user
select min(age)from user

輸出結果
 print_r($arrs[0]['avg(password)']);


嵌套查詢

查找本月的數量

 $r=mysql_query("SELECT author, count(author) from patient_18 WHERE jiedai !='' && addtime >1551370929 group by author order by count(author) desc ");

 

$max=mysql_query("SELECT * from patient_13 WHERE age in (SELECT max(age) from patient_13)");
$_arrmax=mysql_fetch_assoc($max);
echo "<pre>";
print_r($_arrmax);

 分組聚合

select * from user group by class_id (按照班級分組)
select class_id from user group by class_id
select class_id,count(id) from user grou by class_id 統計班級人數

按年齡分組 並且統計出 相同年齡的人數
$r=mysql_query("SELECT age, count(id) from patient_13 group by age");
$num=@mysql_num_rows($r);

$_arr=mysql_fetch_assoc($r);

打印出人數
echo "<li>{$_arr['count(age)']}</li>";

echo "<li>{$_arr['age']}</li>";

查找相同年齡的人數

mysql_query("SELECT age , count(age) from patient_18 WHERE  age > 20 && age < 40 group by age order by count(age)desc"); 

 跨表查詢
$r=mysql_query("SELECT patient_13 .name, patient_15 .name FROM patient_13 , patient_15 WHERE patient_13 .name = patient_15 .name");

 多表查詢(查兩個表 後面是兩個表的條件)
select * from user,class where user.class_id=class.id
只展示用戶名字和班級
select user.username,class.classname from user,class where user.class_id=class.id

一對多 在多的那裏留ID

 

select(select count(*) from user where score>=60)yes,(select count(*) from user where score<=60)no;

select a,b;

select sum(if(score>=60,1,0) ) 及格, sum (if(score<60,1,0)) 不及格 from user;

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章