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;