一、查询格式
MySQL从数据表中查询数据的基本语句是SELECT语句,语法如下:
红色圈起来的是主语句,下面的为子语句。
需要注意各句子的位置,如果位置不对,数据库会执行不了命令而报错。
二、基础查询
语法1:SELECT * from 表名; (显示整个表)
语法2:select 字段名1,字段名2,字段名3,... from 表名;
(1)查询tbl_bookinfo表的所有图书信息:
select * from tbl_bookinfo;
运行结果如下:
已显示tbl_bookinfo表的全部信息
(2)只查询tbl_bookinfo表中的bookid,author,bookname部分图书信息:
SELECT bookid,author,bookname FROM tbl_bookinfo;
运行结果如下:
只显示bookid,author,bookname的信息。
三、改变列标题的显示(改别名)
语法:字段名 as 标题名 或 字段名 标题名
(1)将tbl_bookinfo表中的bookid改为索取号,ISBN改为标准编号,bookname改为书名:
SELECT bookid AS 索取号,isbn AS 标准编号,bookname AS 书名 FROM tbl_bookinfo;
运行结果如下:
列标题已经改为索取号、标准编号以及书名。
(2)或者
SELECT bookid 索取号,isbn 标准编号,bookname 书名 FROM tbl_bookinfo;
是一样的。
四、条件查询
1、比较条件的使用:
(1)查询tbl_bookinfo表中出版社为清华大学出版社的书名,作者,页数:
SELECT bookname,author,pagecount,publisher FROM tbl_bookinfo WHERE publisher='清华大学出版社';
运行结果如下:
只显示了出版社是清华大学出版社的书的书名、作者和页数,还显示了出版社。
2、比较条件的组合使用:
(1)查询不是清华大学出版社的出版的图书:
SELECT * FROM tbl_bookinfo WHERE NOT publisher='清华大学出版社';
运行结果如下:
显示了不是清华大学出版社的图书信息。
(2)查询漓江出版社或者重庆大学出版社的图书信息:
SELECT * FROM tbl_bookinfo WHERE publisher='漓江出版社' OR publisher='重庆大学出版社';
运行结果如下:
(3)查询页数在200-400之间同时又是清华大学出版社的图书:
SELECT * FROM tbl_bookinfo WHERE pagecount>=200 AND pagecount<=400 AND publisher='清华大学出版社';
运行结果如下:
已显示出页数在200-400之间同时又是清华大学出版社的图书信息。
3、BETWEEN关键字
运算符 | 事例 |
BETWEEN...AND... | 在指定的闭区间范围内 |
NOTBETWEE...AND... | 不在指定的闭区间范围内 |
一般用于数值和日期型数据
注意:between...and... 是包含边界的
(1)从tbl_bookinfo表中检索出1990年出版的图书信息:
SELECT * FROM tbl_bookinfo WHERE publishdate BETWEEN '1990-01-01' AND '1990-12-31';
运行结果如下:
已检索出检索出1990年出版的图书信息。
注意:关于查找年月日的信息时需要在日期上加英文''单引号。
4. IN()关键字
函数名 | 描述 |
IN() | 在给定的集合内 |
NOT IN() | 不在给定的集合内 |
(1)从tbl_bookinfo表中检索出索取号为‘TB11/46’,‘TG/71’,‘TG38-62/12’的图书信息:
SELECT * FROM tbl_bookinfo WHERE bookid IN('TB11/46','TG/71','TG38-62/12');
运行结果如下:
已查询到题目给定的范围。
注意:在MySQL中所有的代码都要使用在英文状态下的字母和符号。
5、LIKE关键字
运算符 | 示例 |
LIKE '匹配模式' | 获取匹配到的数据(用于模糊匹配) |
NOT LIKE '匹配模式' | 获取匹配不到的数据 |
在LIKE关键字中常用的通配符有:
%----------------------代表任意字符
_(下划线)--------代表一个任意字符
(1)从tbl_user表在检索出姓“李”的读者信息:
SELECT * FROM tbl_user WHERE username LIKE '李%';
注意:字段名是写在LIKE关键字的前面哦。
运行结果如下:
已检索到姓李的同学的信息。
(2)从tbl_user表中检索出名字第二个字是“国”或者“云”的同学的信息:
SELECT * FROM tbl_user WHERE username LIKE '_国%' OR username LIKE '_云%';
注意:在增加了一个新条件的时候要重新输入字段名,不可省略。
运行结果如下:
检索到了名字第二个字是“国”或者“云”的同学的信息。
(3)从tbl_user表中检索出名字中不包含“明”字的学生信息:
SELECT * FROM tbl_user WHERE username NOT LIKE '%明%';
运行结果如下:
检索到了名字中不包含“明”字的同学。
6、IS NULL关键字
运算符 | 示例 |
IS NULL | 比较一个数据是否为NULL |
IS NOT NULL | 比较一个数据是否不为NULL |
(1)从tbl_user表中检索出Ema为空的读者信息:
SELECT * FROM tbl_user WHERE Email IS NULL;
运行结果如下:
检索到了Email为NULL的同学的信息。