在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学习有一定的兴趣和理解,欢迎随时找博主交流~