MySQL学习(4)︱数据库的查询
在SQL中,使用select语句来查询数据。不同的关系数据库,select语法会有细微差别,在MySQL官网可以查询到支持的select语法。
- SQL语法:
SELECT column_name1, column_name2//选择查询什么字段FROM table_name//从哪张表查询[WHERE wher_condition]//查询条件[GROUP BY {col_name | expr | position}, ...[WITH ROLLUP]]//分组[HAVING where_condition]//分组后做条件筛选[ORDER BY {col_name | expr| position} [ASC | DESC], ...[WITH ROLLUP]]//排序[LIMIT { [offset,] row_count | row_count OFFSET offset}]//选取的数据范围
简单查询
- 连接数据库并查询所有的数据库
SHOW DATABASES;
效果图:
- 进入student数据库(需提前创建好)并查询其拥有的数据表
USE student;SHOW TABLES;
效果图:
- 查询person数据表的所有记录
SELECT * FROM person;
效果图:
- 按姓名、身份证号字段查询
SELECT name, id_number FROM person;
效果图:
- 按姓名、身份证号查询id=1的记录
SELECT name, id_number FROM person WHERE id=1;
效果图:
条件查询
在SQL中,insert、update、delete和select后面都可以带有where子句,用于增删改查指定条件的记录。
单条件查询
- SQL语句中使用where子句语法:
SELECT 字段名 FROM 表名 WHERE 字段名 运算符 值;
- 运算符表:
多条件查询
- and、or运算符语法:
SELECT 字段名 FROM 表名 WHERE 条件1 AND 条件2 OR 条件3;
- 运算符表:
应用举例
- 进入student数据库并创建employee数据表
USE student;CREATE TABLE employee( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) COMMENT '姓名', sex VARCHAR(1) COMMENT '性别', salary INT COMMENT '薪资(元)');
效果图:
- 插入若干条记录
INSERT INTO employee(name, sex, salary) VALUES('张三', '男', 5500);INSERT INTO employee(name, sex, salary) VALUES('李洁', '女', 4500);INSERT INTO employee(name, sex, salary) VALUES('李小梅', '女', 4200);INSERT INTO employee(name, sex, salary) VALUES('欧阳辉', '男', 7500);INSERT INTO employee(name, sex, salary) VALUES('李芳', '女', 8500);INSERT INTO employee(name, sex, salary) VALUES('张江', '男', 6800);INSERT INTO employee(name, sex, salary) VALUES('李四', '男', 12000);INSERT INTO employee(name, sex, salary) VALUES('王五', '男', 3500);INSERT INTO employee(name, sex, salary) VALUES('马小龙', '男', 6000);INSERT INTO employee(name, sex, salary) VALUES('龙五', '男', 8000);INSERT INTO employee(name, sex, salary) VALUES('冯小芳', '女', 10000);INSERT INTO employee(name, sex, salary) VALUES('马小花', '女', 4000);
效果图:
- 查看employee数据表
SELECT * FROM employee;
效果图:
- 查询性别为男的记录
SELECT * FROM employee;
效果图:
- 查询薪资大于10000和大于等于10000的记录
SELECT * FROM employee WHERE salary > 10000;SELECT * FROM employee WHERE salary >= 10000;
效果图:
- 查询薪资介于10000和12000之间的记录
SELECT * FROM employee WHERE salary BETWEEN 10000 AND 12000;
效果图:
- 查询性别为男且薪资大于10000的记录
SELECT * FROM employee WHERE sex='男' AND salary > 10000;
效果图:
- 查询性别为男或薪资大于10000的记录
SELECT * FROM employee WHERE sex='男' ORsalary > 10000;
效果图:
- 查询性别为男且薪资小于等于4000或薪资大于等于10000的记录(错误方法)
SELECT * FROM employee WHERE sex='男' AND salary <= 4000 OR salary >= 10000;
效果图:
- 查询性别为男且薪资小于等于4000或薪资大于等于10000的记录(正确方法)
SELECT * FROM employee WHERE sex='男' AND (salary <= 4000 OR salary >= 10000);
效果图:
由此可见,当存在多项条件时,为避免混淆应加入小括号来区分优先级。
注:本文是博主MySQL学习的总结,不支持任何商用,转载请注明出处!如果你也对MySQL学习有一定的兴趣和理解,欢迎随时找博主交流~
作者:Mr_BigG
来源链接:https://blog.csdn.net/Mr_BigG/article/details/114777289
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。