MySQL单表查询看这一篇文章就够了

无条件简单查询方法虚拟数据准备
-- [创建表] --DROP TABLE IF EXISTS `company_staff`;CREATE TABLE `company_staff` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(125) NOT NULL,`age` tinyint(4) DEFAULT '0',`sex` enum('男','女','保密') NOT NULL DEFAULT '保密',`salary` decimal(10,3) NOT NULL DEFAULT '5000.000',`hire_date` date NOT NULL,`dept_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;-- [创建数据] ---- [软件开发部]--INSERT INTO `company_staff` VALUES ('1', 'Tom', '25', '男', '27000.000', '2019-04-21', '1');INSERT INTO `company_staff` VALUES ('2', 'Roudo', '27', '男', '38000.000', '2020-02-21', '1');INSERT INTO `company_staff` VALUES ('3', 'Aaron', '30', '男', '26500.000', '2017-03-11', '1');INSERT INTO `company_staff` VALUES ('4', 'Lance', '48', '男', '46680.000', '2003-05-20', '1');-- [国际事务]--INSERT INTO `company_staff` VALUES ('5', 'Leo', '23', '男', '13600.000', '2017-06-21', '2');INSERT INTO `company_staff` VALUES ('6', 'Lee', '24', '男', '12400.000', '2013-06-30', '2');INSERT INTO `company_staff` VALUES ('7', 'lvan', '26', '女', '12500.000', '2014-03-27', '2');INSERT INTO `company_staff` VALUES ('8', 'Jack', '29', '女', '22300.000', '2003-07-21', '2');-- [法律部] --INSERT INTO `company_staff` VALUES ('9', '张飞', '41', '女', '24000.000', '2003-05-21', '3');INSERT INTO `company_staff` VALUES ('10', '李逵', '42', '女', '34000.000', '2005-04-15', '3');INSERT INTO `company_staff` VALUES ('10', '罗翔', '45', '男', '54000.000', '2005-03-15', '3');-- [销售部] --INSERT INTO `company_staff` VALUES ('11', '孙权', '37', '女', '65000.000', '2000-06-21', '4');简单查询方法格式
#查询语法: select [distinct]*(所有)|字段名,...字段名 from 表名; #查询所有字段信息select * from company_staff; #查询指定字段信息select id,name from company_staff; #别名查询,使用的as关键字,as可以省略的select name,age as'年龄',salary '工资' from company_staff; #删除重复查询--[distinct]select distinct age from company_staff;

MySQL单表查询看这一篇文章就够了

文章插图
 
按条件查询方法条件查询:使用 WHERE 关键字 对简单查询的结果集 进行过滤
  1. 比较运算符: > < >= <= = <>(!=)
  2. null 关键字: is null , not null
  3. 逻辑运算符: 与 and 或 or (多个条件时,需要使用逻辑运算符进行连接)
#查询格式:select [distinct]*(所有)|字段名,...字段名 from 表名 [where 条件过滤]#比较运算符: > < >= <= = <>(!=)is null 是否为nullselect * from company_staff where age = 33;select * from company_staff where age < 23;select * from company_staff where age is null;select * from company_staff where age is not null;#逻辑运算符: 与 and 或 orselect * from company_staff where age = 23 and salary =29000;select * from company_staff where age = 35 or salary =29000;按照区间查询方法关键字 between 1 and 5 :表示 获得1 到 5 区间的内容
# 应用between...and进行区间 查询select * from company_staff where salary between 14000 and 23000;# PS: between...and 前后包含所指定的值等价于 select * from company_staff where salary >= 14000 and salary <= 23000;按照集合查询方法关键字: in, not null
#使用 in 集合(多个字段)查询select * from company_staff where age in(23,29,41);等价于: select * from company_staff whereage =23 or age = 29 or age =41;#使用 in 集合 排除指定值查询select * from company_staff where age not in(23,29,41);
MySQL单表查询看这一篇文章就够了

文章插图
 
应用模糊查询关键字 like , not like
%: 任意多个字符
_ : 只能是单个字符
#模糊查询like %:任意多个字符,_:单个字符#查询姓名以"L"字开头的select * from company_staff where name like 'L%';#查询姓名以"L"字结尾的select * from company_staff where name like '%L';#查询姓名中含有"L"字的select * from company_staff where name like '%L%';#查询 name 名称 是三个字符的人select * from company_staff where name like '___';#查询 name 名称 的第二个字符是 'o'的人select * from company_staff where name like '_o%';#排除名字带 a的人select * from company_staff where name not like 'a%'


推荐阅读