數據庫 之 數據查詢(DQL語句)
DQL:Data Query Language,數據查詢語言
SELECT
.SELECT col1,col2,... FROMtbl_name[WHERE clause]
[ORDER BY ‘col_name‘[DESC]] [LIMIT [m,]n];
Limit m,n跳過m個,要n個
如以下語句跳過2個,取接下來的三個數值
MariaDB [sunny]> select* from fenshu order by englishlimit2,3;
+----+------+--------+-------+---------+
| id | name | gender |math| english |
+----+------+--------+-------+---------+
| 22 | cd| m|99 |89.00 |
| 10 | tom| NULL| 60.05 |90.00 |
| 16 | lin| NULL| 60.05 |90.00 |
以下語句表示將表fenshu中english這一列分數大於88的id,name,english這三列篩選出來
select id,name,englishfrom fenshu where english > 88;
.字段表示法:
*:所有字段
as:字段別名,col1 ASalias1
親自as這個關鍵字可以不寫,如name姓名
例子如下
select id as學號,name as姓名,english
as英語from fenshu where english > 88;
也可以給表起別名,一般用於多表查
%是通配符,表示任意字符,下劃線通配符,表示支持單個字符
rlike表示支持正則表達式,如果不支持正則表達式,就不能用.*表示所有的值
例子
MariaDB [sunny]> select* from fenshu where name like "ti.*";
Empty set (0.00 sec)
MariaDB [sunny]> select* from fenshu where name rlike "ti.*";
+----+------+--------+------+---------+
| id | name | gender |math | english |
+----+------+--------+------+---------+
| 23 | tim| f|80 |78.00 |
| 26 | tiac | f|80 |78.00 |
+----+------+--------+------+---------+
2 rows in set (0.00 sec)
多表的連接
selectd.id,d.t4,s.math,s.english from datetb d,score s where d.id=s.id;
DQL語句
.WHERE clause:
操作符:
>, <, >=, <=,==, !=
==判斷相等,用兩個等號來表示
BETWEEN ... AND ...
LIKE:
%:任意長度的任意字符
_:任意單個字符;
RLIKE:正則表達式模式匹配
IS NULL,IS NOT NULL
IN(val1,val2,…)
select * from score t where t.english in(88,90,70) order by t.english desc;
條件邏輯操作:
and,or,not
示例
.DESC students;
.INSERT INTO students
VALUES(1,‘tom‘,‘m‘),(2,‘alice‘,‘f‘);
.INSERT INTOstudents(id,name) VALUES(3,‘jack‘),(4,‘allen‘);
.SELECT * FROM studentsWHERE id < 3;
.SELECT * FROM studentsWHERE gender=‘m‘;
.SELECT * FROM studentsWHERE gender IS NULL;
.SELECT * FROM studentsWHERE gender IS NOT NULL;
.SELECT * FROM studentsORDER BY name DESC LIMIT 2;
.SELECT * FROM studentsORDER BY name DESC LIMIT 1,2;
.SELECT * FROM studentsWHERE id >=2 and id <=4
.SELECT * FROM studentsWHERE BETWEEN 2 AND 4
.SELECT * FROM studentsWHERE name LIKE ‘t%’
.SELECT * FROM studentsWHERE name RLIKE ‘.*[lo].*‘;
.SELECT id stuid,name as stuname FROM students
本文出自 “陽光運維” 博客,請務必保留此出處http://ghbsunny.blog.51cto.com/7759574/1970192
數據庫 之 數據查詢(DQL語句)