[root@db1 ~]# mkdir /myload
[root@db1 ~]# vim /etc/my.cnf
[mysqld]
secure_file_priv="/myload"[root@db1 ~]# chown mysql /myload///必須要保證mysql用戶對這個目錄有讀寫的權限[root@db1 ~]# ls -ld /myload/[root@db1 ~]# systemctl restart mysqld
mysql>createdatabase db3 ;
mysql>createtable db3.user(-> name char(30), password char(1), uid int, gid int,->commentvarchar(150), homedir char(80), shell char(60)->);
mysql>desc db3.user;
mysql> system cp /etc/passwd /myload///system調用系統命令
mysql> system ls /myload/
passwd
mysql>loaddatainfile"/myload/passwd"->intotable db3.user->fieldsterminatedby":"//定義分隔符,必須要和passwd文件的分隔符一致->linesterminatedby"\n";//換行符
1、數值比較
字段必須是數值類型
類型
比較
例子
=
相等
id = 3
>
大於
uid > 3
>=
大於或等於
uid >= 3
<
小於
uid < 3
<=
小於等於
uid <= 3
!=
不相等
uid != 3
示例
mysql>select*from db3.userwhere id <=5;
mysql>select name , uid , gid from db3.userwhere uid != gid ;
2、字符比較
必須是字符類型
類型
比較
例子
=
相等
name = “root”
!=
不相等
name != “root”
is null
空
shell is null
is not null
非空
shell is not null
示例
mysql>select name from db3.userwhere name ="mysql";
mysql>select name , shell from db3.userwhere shell !="/bin/bash";
mysql>select name , uid , shell from db3.userwhere shell isnotnull;
mysql>select name , uid , shell from db3.userwhere shell isnull;
3、邏輯匹配
多個判斷條件時使用
類型
用途
格式
or
邏輯或
條件1 or 條件2 or 條件3
and
邏輯與
條件1 and 條件2 and 條件3
! 或 not
邏輯非
示例
mysql>select name , uid from db3.userwhere name ="sync"or name ="apache"or uid=3;
mysql>select*from db3.userwhere id >=10and id <=20;
mysql>select name , uid from db3.userwhere name ="sync"|| name ="apache"|| uid=3;
mysql>select*from db3.userwhere id >=10&& id <=20;
mysql>select name , uid from db3.userwhere uid =1or uid =0and name ="root";//與 或 同時存在,與優先
mysql>select name , uid from db3.userwhere( uid =1or uid =0)and name ="root";//加括號可以提高優先級
4、範圍匹配
匹配範圍內的任意一個值即可
類型
比較
in (值列表)
在…裏…
not in (值列表)
不在…裏…
between 數字 and 數字
在…之間…
示例
mysql>select name , uid , gid from db3.userwhere uid between10and40;
mysql>select name , uid from db3.userwhere uid in(3,6,9,11);
mysql>select name from db3.userwhere name in("root","sync","daemon","bin");
mysql>select shell from db3.userwhere shell notin("/bin/bash","/sbin/nologin");
二、高級匹配條件
1、模糊查詢
用法
where 字段名 like ‘通配符’
_ 表示一個字符
% 表示0~n個字符
示例
mysql>select name from db3.userwhere name like'___';//匹配三個字符
mysql>select name from db3.userwhere name like'____';//匹配四個字符
mysql>select name from db3.userwhere name like'%a%';//匹配帶有a前後有任意字符
mysql>select name from db3.userwhere name like'a%';//匹配a後帶有任意字符
2、正則表達式
用法
where 字段名 regexp ‘正則表達式’
正則元字符 ^ $ . [] * |
示例
mysql>select name , uid from db3.userwhere name regexp'^r|t$';//查找以r開頭和以t結尾
3、四則運算
字段必須是數值類型
加減乘除"+ - * /"、取餘"%"、提高優先級"()"
示例
mysql>update db3.userset uid=uid+1where id <=5;
mysql>update db3.userset uid=uid-1where id <=5;
mysql>altertable db3.useradd age tinyintunsignednotnulldefault19after name ;
mysql>select name ,2020- age s_year from db3.userwhere name ="root";
mysql>select name ,2020- age s_year from db3.user;
mysql>select name,uid,gid ,(uid+gid)/2 pjf from db3.userwhere name="games";
mysql>select*from db3.userwhere id %2=0;
mysql>select name , uid from db3.userwhere uid %2!=0;
三、操作查詢結果
把查找出來的數據,再處理一下
1、聚集函數
MySQL內置數據統計函數
avg(字段名) //統計字段平均值
sum(字段名) //統計字段之和
min(字段名) //統計字段最小值
max(字段名) //統計字段最大值
count(字段名) //統計字段值個數
mysql>selectmax(uid)from db3.user;//查詢uid最大的行
mysql>selectmax(uid)from db3.userwhere id <=10;//查詢uid<=10的並且是最大的
mysql>selectmin(uid)from db3.userwhere id <=10;//查詢uid<=10的並且是最小的
mysql>selectavg(uid)from db3.user;//uid的平均值
mysql>selectcount(name)from db3.userwhere shell!="/bin/bash";//查詢/bin/bash解釋器的有多少個
mysql>selectcount(*)from db3.user;//查詢總共多少行
mysql>selectmin(uid),max(gid)from db3.user;//查詢最小uid和最大gid
mysql>selectmin(uid) zx ,max(gid) zd from db3.user;//給提取出來的結果起名字,臨時顯示
2、查詢結果排序
用法
SQL查詢 order by 字段名 [asc|desc];
asc 升序
desc 降序
示例
mysql>select name , uid from db3.userwhere uid >=10and uid <=800orderby uid asc;
mysql>select name , uid from db3.userwhere uid >=10and uid <=800orderby uid desc;
3、查詢結果分組
用法
SQL查詢 group by 字段名;
示例
mysql>select shell from db3.userwhere uid >=10groupby shell;
mysql>select shell from db3.usergroupby shell;
distinct 去重顯示 (去掉字段的重複值 輸出查詢結果)
mysql>select shell from db3.user;
mysql>selectdistinct shell from db3.user;
4、查詢結果過濾
having用法
SQL查詢 having 條件表達式;
示例
mysql>select name from db3.userwhere shell !="/bin/bash"having name in("sync","games");
5、限制查詢結果顯示行數
用法
SQL查詢 limit 數字; //顯示查詢結果前過少條記錄
SQL查詢 limit 數字1,數字2; //顯示指定範圍內的查詢記錄
數字1 起始行 (0表示第一行)
數字2 總行數
示例:指定字段的前1、3、5行
mysql>select name , uid , gid from db3.userwhere shell !="/bin/bash"limit1;
mysql>select name , uid , gid from db3.userwhere shell !="/bin/bash"limit3;
mysql>select name , uid , gid from db3.userwhere shell !="/bin/bash"limit5;
示例:範圍查詢,指定字段
mysql>select id ,name , uid , gid from db3.userlimit2,5;//查詢第二行的後五行,不包括前兩行
mysql>select id ,name , uid , gid from db3.userlimit3,3;//查詢第三行的後三行,不包括前三行
示例:全表範圍查詢
select*from db3.userwhere id <=10limit5,2;//查詢第五行的後兩行,不包括第五行