SQL语法体系学习笔记

SQL语法之基础查询(进阶1)and条件查询(进阶2)

SQL语法之排序查询(进阶3)and常见函数(进阶4)

SQL语法之分组函数,分组查询(进阶5)and连接查询(sql92语法进阶6)

文章目录

  • SQL语法体系学习笔记
    • SQL语法之基础查询(进阶1)and条件查询(进阶2)
    • SQL语法之排序查询(进阶3)and常见函数(进阶4)
    • SQL语法之分组函数,分组查询(进阶5)and连接查询(sql92语法进阶6)
  • 进阶1:
    • 基础查询
      • 语法:
      • 特点:
      • 举例:
        • 1. 查询表中的单个字段
        • 2. 查询表中的多个字段
        • 3. 查询表中的所有字段
        • 4. SQL里面不区分字符和字符串
        • 5. 查询表达式
        • 6. 查询函数
    • 起别名:
      • 方式一:使用AS
      • 方式二:使用空格
        • 注意
    • 去重:
    • +号作用:
      • java中的+号:
      • MYSQL中的+号:
        • 情况1
        • 情况2
        • 情况3
      • 拼接
  • 进阶查询1数据库初始化代码:
  • 进阶2:
    • 条件查询
      • 语法:
        • 1.按条件表达式查询
        • 2.按逻辑表达式筛选
        • 3.模糊查询
      • 举例
        • 1.按条件表达式查询
          • 案例1:查询工资`>12000`的员工信息
          • 案例2: 查询部门编号不等于90号的员工名和部门编号
        • 2.按逻辑表达式筛选
          • 案例一:查询工资z在10000到20000之间的员工名,工资以及奖金
          • 案例二:查询部门编号不是90到110之间,或者工资高于15000的员工信息
        • 3.模糊查询
          • like
            • 案例1:查询员工命中包含字符a的员工信息
            • 案例2:查询员工名中第三个字符为e,第五个字符为a 的员工名和工资
            • 案例3:查询员工名中第二个字符为_的员工名
          • 关键字`escape`
          • between and
            • 注意点
            • 实例:查询员工编号在100~110之间的员工信息,
          • in
            • 作用
            • 意义
            • 实例:查询员工的工种编号是IT_PROG,AD_VP,AD_PRE中的一个员工名和工种编号
          • is null
            • 注意:
            • 案例一:查询没有奖金的员工名和奖金率
          • 安全等于<=>
            • 作用
            • 案例一:查询没有奖金的员工名和奖金率
            • 案例二:查询工资为12000的员工信息
  • 章节测试题
    • 第一题
    • 第二题
    • 第三题(经典面试题)

进阶1:

基础查询

语法:

select 查询列表 from 表名;

特点:

  1. 查询的列表可以使:表中的字段,常量值,表达式,函数
  2. 查询的结果是一个虚拟的表格

举例:

1. 查询表中的单个字段

select last_name from employees;

2. 查询表中的多个字段

SELECT last_name,salary,email FROM employees;

3. 查询表中的所有字段

select * from  employee



提醒一下,这里是着重号,并非单引号,用于区分是字段还是关键字,有着重号的话代表是我们所写的字段,也就是键盘esc下方这个按键

4. SQL里面不区分字符和字符串

SELECT 100;
SELECT 'join';


5. 查询表达式

select 100%98;

6. 查询函数

select version();

起别名:

方式一:使用AS

SELECT 100%98 AS 结果;

select last_name AS 姓,first_name AS 名 FROM employees;


(这里的last_name和first_name是原来的列名)

方式二:使用空格

select last_name 姓,first_name 名 FROM employees;

注意

如果别名中有特殊符号的(例如 空格 或者 #号),这个时候需要把别名加上 “ ”或者 ’ ’

错误示范:

SELECT last_name 小 彪 彪,first_name 名 FROM employees;

SELECT last_name '小 彪 彪',first_name 名 FROM employees;

去重:

在我们所需查找的列名前面加个distinct即可

SELECT  department_id FROM employees;

select distinct department_id from employees;

+号作用:

java中的+号:

  1. 运算符,两个操作数都为数值型
  2. 连接符,只要有一个操作数为字符串即可

MYSQL中的+号:

  1. 仅仅只只有一个功能:运算符

情况1

两个操作数都为数值型,则作加法运算

SELECT 90+20;

情况2

只要其中一方为字符型时,试图将字符型数值转换成数值型,如果转换成功,则继续做加法运算,如果转换失败,则将字符型数值转换成0

SELECT '123'+90;

select 'jhon'+90;

情况3

只要其中一方为null,则结果肯定为null

SELECT NULL+10;

拼接

mysql中,字符的拼接并非用+号,而使用concat函数

SELECT CONCAT('a','b','c') AS 结果;

进阶查询1数据库初始化代码:

DROP TABLE IF EXISTS `employees`;CREATE TABLE `employees`  (`employee_id` INT(6) ,`first_name` VARCHAR(20) ,`last_name` VARCHAR(25) ,`email` VARCHAR(25) ,`phone_number` VARCHAR(20) ,`job_id` VARCHAR(10) ,`salary` DOUBLE(10, 2) ,`commission_pct` DOUBLE(4,2) ,`manager_id` INT(6) ,`department_id` INT(4) ,`hiredate` DATETIME
);INSERT INTO `employees` VALUES (100, 'Steven', 'K_ing', 'SKING', '515.123.4567', 'AD_PRES', 24000.00, NULL, NULL, 90, '1992-04-03 00:00:00');
INSERT INTO `employees` VALUES (101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', 'AD_VP', 17000.00, NULL, 100, 90, '1992-04-03 00:00:00');
INSERT INTO `employees` VALUES (102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', 'AD_VP', 17000.00, NULL, 100, 90, '1992-04-03 00:00:00');
INSERT INTO `employees` VALUES (103, 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', 'IT_PROG', 9000.00, NULL, 102, 60, '1992-04-03 00:00:00');
INSERT INTO `employees` VALUES (104, 'Bruce', 'Ernst', 'BERNST', '590.423.4568', 'IT_PROG', 6000.00, NULL, 103, 60, '1992-04-03 00:00:00');
INSERT INTO `employees` VALUES (105, 'David', 'Austin', 'DAUSTIN', '590.423.4569', 'IT_PROG', 4800.00, NULL, 103, 60, '1998-03-03 00:00:00');
INSERT INTO `employees` VALUES (106, 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', 'IT_PROG', 4800.00, NULL, 103, 60, '1998-03-03 00:00:00');
INSERT INTO `employees` VALUES (107, 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', 'IT_PROG', 4200.00, NULL, 103, 60, '1998-03-03 00:00:00');
INSERT INTO `employees` VALUES (108, 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', 'FI_MGR', 12000.00, NULL, 101, 100, '1998-03-03 00:00:00');
INSERT INTO `employees` VALUES (109, 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', 'FI_ACCOUNT', 9000.00, NULL, 108, 100, '1998-03-03 00:00:00');
INSERT INTO `employees` VALUES (110, 'John', 'Chen', 'JCHEN', '515.124.4269', 'FI_ACCOUNT', 8200.00, NULL, 108, 100, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (111, 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', 'FI_ACCOUNT', 7700.00, NULL, 108, 100, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (112, 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', 'FI_ACCOUNT', 7800.00, NULL, 108, 100, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (113, 'Luis', 'Popp', 'LPOPP', '515.124.4567', 'FI_ACCOUNT', 6900.00, NULL, 108, 100, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (114, 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', 'PU_MAN', 11000.00, NULL, 100, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (115, 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', 'PU_CLERK', 3100.00, NULL, 114, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (116, 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', 'PU_CLERK', 2900.00, NULL, 114, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (117, 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', 'PU_CLERK', 2800.00, NULL, 114, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (118, 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', 'PU_CLERK', 2600.00, NULL, 114, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (119, 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', 'PU_CLERK', 2500.00, NULL, 114, 30, '2000-09-09 00:00:00');
INSERT INTO `employees` VALUES (120, 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', 'ST_MAN', 8000.00, NULL, 100, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (121, 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', 'ST_MAN', 8200.00, NULL, 100, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (122, 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', 'ST_MAN', 7900.00, NULL, 100, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (123, 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', 'ST_MAN', 6500.00, NULL, 100, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (124, 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', 'ST_MAN', 5800.00, NULL, 100, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (125, 'Julia', 'Nayer', 'JNAYER', '650.124.1214', 'ST_CLERK', 3200.00, NULL, 120, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (126, 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', 'ST_CLERK', 2700.00, NULL, 120, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (127, 'James', 'Landry', 'JLANDRY', '650.124.1334', 'ST_CLERK', 2400.00, NULL, 120, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (128, 'Steven', 'Markle', 'SMARKLE', '650.124.1434', 'ST_CLERK', 2200.00, NULL, 120, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (129, 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', 'ST_CLERK', 3300.00, NULL, 121, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (130, 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', 'ST_CLERK', 2800.00, NULL, 121, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (131, 'James', 'Marlow', 'JAMRLOW', '650.124.7234', 'ST_CLERK', 2500.00, NULL, 121, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (132, 'TJ', 'Olson', 'TJOLSON', '650.124.8234', 'ST_CLERK', 2100.00, NULL, 121, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (133, 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', 'ST_CLERK', 3300.00, NULL, 122, 50, '2004-02-06 00:00:00');
INSERT INTO `employees` VALUES (134, 'Michael', 'Rogers', 'MROGERS', '650.127.1834', 'ST_CLERK', 2900.00, NULL, 122, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (135, 'Ki', 'Gee', 'KGEE', '650.127.1734', 'ST_CLERK', 2400.00, NULL, 122, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (136, 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', 'ST_CLERK', 2200.00, NULL, 122, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (137, 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', 'ST_CLERK', 3600.00, NULL, 123, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (138, 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', 'ST_CLERK', 3200.00, NULL, 123, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (139, 'John', 'Seo', 'JSEO', '650.121.2019', 'ST_CLERK', 2700.00, NULL, 123, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (140, 'Joshua', 'Patel', 'JPATEL', '650.121.1834', 'ST_CLERK', 2500.00, NULL, 123, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (141, 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', 'ST_CLERK', 3500.00, NULL, 124, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (142, 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', 'ST_CLERK', 3100.00, NULL, 124, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (143, 'Randall', 'Matos', 'RMATOS', '650.121.2874', 'ST_CLERK', 2600.00, NULL, 124, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (144, 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', 'ST_CLERK', 2500.00, NULL, 124, 50, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (145, 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', 'SA_MAN', 14000.00, 0.40, 100, 80, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (146, 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', 'SA_MAN', 13500.00, 0.30, 100, 80, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (147, 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', 'SA_MAN', 12000.00, 0.30, 100, 80, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (148, 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', 'SA_MAN', 11000.00, 0.30, 100, 80, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (149, 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', 'SA_MAN', 10500.00, 0.20, 100, 80, '2002-12-23 00:00:00');
INSERT INTO `employees` VALUES (150, 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', 'SA_REP', 10000.00, 0.30, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (151, 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', 'SA_REP', 9500.00, 0.25, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (152, 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', 'SA_REP', 9000.00, 0.25, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (153, 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', 'SA_REP', 8000.00, 0.20, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (154, 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', 'SA_REP', 7500.00, 0.20, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (155, 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', 'SA_REP', 7000.00, 0.15, 145, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (156, 'Janette', 'K_ing', 'JKING', '011.44.1345.429268', 'SA_REP', 10000.00, 0.35, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (157, 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', 'SA_REP', 9500.00, 0.35, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (158, 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', 'SA_REP', 9000.00, 0.35, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (159, 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', 'SA_REP', 8000.00, 0.30, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (160, 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', 'SA_REP', 7500.00, 0.30, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (161, 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', 'SA_REP', 7000.00, 0.25, 146, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (162, 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', 'SA_REP', 10500.00, 0.25, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (163, 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', 'SA_REP', 9500.00, 0.15, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (164, 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', 'SA_REP', 7200.00, 0.10, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (165, 'David', 'Lee', 'DLEE', '011.44.1346.529268', 'SA_REP', 6800.00, 0.10, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', 'SA_REP', 6400.00, 0.10, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (167, 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', 'SA_REP', 6200.00, 0.10, 147, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (168, 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', 'SA_REP', 11500.00, 0.25, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (169, 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', 'SA_REP', 10000.00, 0.20, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (170, 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', 'SA_REP', 9600.00, 0.20, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (171, 'William', 'Smith', 'WSMITH', '011.44.1343.629268', 'SA_REP', 7400.00, 0.15, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (172, 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', 'SA_REP', 7300.00, 0.15, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (173, 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', 'SA_REP', 6100.00, 0.10, 148, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', 'SA_REP', 11000.00, 0.30, 149, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (175, 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', 'SA_REP', 8800.00, 0.25, 149, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (176, 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', 'SA_REP', 8600.00, 0.20, 149, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (177, 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', 'SA_REP', 8400.00, 0.20, 149, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (178, 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', 'SA_REP', 7000.00, 0.15, 149, NULL, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (179, 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', 'SA_REP', 6200.00, 0.10, 149, 80, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (180, 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', 'SH_CLERK', 3200.00, NULL, 120, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (181, 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', 'SH_CLERK', 3100.00, NULL, 120, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (182, 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', 'SH_CLERK', 2500.00, NULL, 120, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (183, 'Girard', 'Geoni', 'GGEONI', '650.507.9879', 'SH_CLERK', 2800.00, NULL, 120, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (184, 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', 'SH_CLERK', 4200.00, NULL, 121, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (185, 'Alexis', 'Bull', 'ABULL', '650.509.2876', 'SH_CLERK', 4100.00, NULL, 121, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (186, 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', 'SH_CLERK', 3400.00, NULL, 121, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (187, 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', 'SH_CLERK', 3000.00, NULL, 121, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (188, 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', 'SH_CLERK', 3800.00, NULL, 122, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (189, 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', 'SH_CLERK', 3600.00, NULL, 122, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (190, 'Timothy', 'Gates', 'TGATES', '650.505.3876', 'SH_CLERK', 2900.00, NULL, 122, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (191, 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', 'SH_CLERK', 2500.00, NULL, 122, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (192, 'Sarah', 'Bell', 'SBELL', '650.501.1876', 'SH_CLERK', 4000.00, NULL, 123, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (193, 'Britney', 'Everett', 'BEVERETT', '650.501.2876', 'SH_CLERK', 3900.00, NULL, 123, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (194, 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', 'SH_CLERK', 3200.00, NULL, 123, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (195, 'Vance', 'Jones', 'VJONES', '650.501.4876', 'SH_CLERK', 2800.00, NULL, 123, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (196, 'Alana', 'Walsh', 'AWALSH', '650.507.9811', 'SH_CLERK', 3100.00, NULL, 124, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (197, 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', 'SH_CLERK', 3000.00, NULL, 124, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (198, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', 'SH_CLERK', 2600.00, NULL, 124, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (199, 'Douglas', 'Grant', 'DGRANT', '650.507.9844', 'SH_CLERK', 2600.00, NULL, 124, 50, '2014-03-05 00:00:00');
INSERT INTO `employees` VALUES (200, 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', 'AD_ASST', 4400.00, NULL, 101, 10, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (201, 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', 'MK_MAN', 13000.00, NULL, 100, 20, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (202, 'Pat', 'Fay', 'PFAY', '603.123.6666', 'MK_REP', 6000.00, NULL, 201, 20, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (203, 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', 'HR_REP', 6500.00, NULL, 101, 40, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (204, 'Hermann', 'Baer', 'HBAER', '515.123.8888', 'PR_REP', 10000.00, NULL, 101, 70, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (205, 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', 'AC_MGR', 12000.00, NULL, 101, 110, '2016-03-03 00:00:00');
INSERT INTO `employees` VALUES (206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', 'AC_ACCOUNT', 8300.00, NULL, 205, 110, '2016-03-03 00:00:00');

进阶2:

条件查询

语法:

 select   查询列表   from   表名   where  筛选条件

1.按条件表达式查询

条件运算符:

> < =(注意mysql中的等于是= 这个,而不是==) != 或者<> >= <=

2.按逻辑表达式筛选

&&       ||      !
and     or      not
&& and 两个条件都为true,结果为true,反之为false
||   or  只要有一个条件为true,结果为true,反之为false
!  not 如果连接的条件本身为false,结果为true,反之为false

3.模糊查询

like
between and
in
is null

举例

1.按条件表达式查询

案例1:查询工资>12000的员工信息
 select * from employees where salary>12000;

案例2: 查询部门编号不等于90号的员工名和部门编号
select  last_name ,department_id from employees  where  department_id<>90;

2.按逻辑表达式筛选

案例一:查询工资z在10000到20000之间的员工名,工资以及奖金
 SELECT  last_name,salary,commission_pct  FROM employees WHERE salary >= 10000 AND salary <=20000;

案例二:查询部门编号不是90到110之间,或者工资高于15000的员工信息
select * from employees where department_id<90  or department_id>110 or salary>15000;
select * from employees where not(department_id>=90  and department_id<=110) or salary>15000;


3.模糊查询

like

一般和通配符搭配使用,

通配符
%任意多个字符,包含0个字符
_任意单个字符

案例1:查询员工命中包含字符a的员工信息
select * from employees where last_name like '%a%';

案例2:查询员工名中第三个字符为e,第五个字符为a 的员工名和工资
select  last_name,salary from employees where last_name like '__e_a%';

案例3:查询员工名中第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';


(\是转义符号,默认的)

关键字escape

如果要标识某个符号是转义符,可以用关键字escape

select last_name from employees where last_name like '_$_%' escape '$';

between and
注意点
  1. 使用between and 可以提高语句的简洁度
  2. 包含临界值
  3. 两个临界值不要调换顺序,它直接等价于( employee_id>=100 and employee_id<=120,如果临界值调换顺序后,就变成了 employee_id>=120 and employee_id<=100)
实例:查询员工编号在100~110之间的员工信息,

不使用between and:

select * from employees where employee_id>=100 and employee_id<=120;

使用between and:

select * from employees where employee_id between 100 and 120;

in
作用

用于判断某字段的值是否属于in列表中的某一项

意义
  1. 使用in提高语句(相对于or)简洁度
  2. in列表的值类型必须一致或兼容
  3. 列表中不支持写通配符
实例:查询员工的工种编号是IT_PROG,AD_VP,AD_PRE中的一个员工名和工种编号

未使用in:

select last_name,job_id from employees where job_id='IT_PROT' or job_id='AD_VP' or JOB_ID='AD_PRES';


使用in:

select last_name,job_id from employees where job_id in('IT_PROT','AD_VP' ,'AD_PRES');


错误写法:

select last_name,job_id from employees where job_id in('IT_PROT','AD_%');

is null
注意:
  1. is不能和其它使用进行判断
  2. =或者<>不能用于判断null值
  3. is null 或is not null 可以判断null值
案例一:查询没有奖金的员工名和奖金率

错误写法:(=号不能判断null):

SELECT last_name,commission_pct FROM employees WHERE commission_pct=NULL;

正确写法:

SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;


相反写法:

select last_name,commission_pct from employees where commission_pct is not null;

安全等于<=>
作用

is null:仅仅可以判断null值,建议使用
<=>:既可以判断null值,又可以判断普通的数值可读性较低。

select last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) AS 年薪 from employees;

案例一:查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees where commission_pct <=>null;

案例二:查询工资为12000的员工信息
select last_name,salary from employees where salary <=>12000;

章节测试题

第一题

查询没有奖金,且工资小于18000的salary,last_name

select salary,last_name from employees where commission_pct is null and salary<18000;

第二题

查询employees表中,job_id不为’IT’或者工资为12000的员工信息

select * from employees where job_id <>'IT' or salary=12000;
select * from employees where not(job_id ='IT') or salary=12000;



注意:
(不能用 job_id is not ‘IT’(is not 只能和null连用))

第三题(经典面试题)

试问:select * from employees ;select * from employees where commission_pct like '%%' and last_name like '%%'结果是否一样?并说明原因

select * from employees ;

SELECT * FROM employees WHERE commission_pct LIKE '%%' AND last_name LIKE '%%';


不一样!
如果判断的字段有null值,那么就不一样

如果把and换成or那么就可以了,因为一行中,不可能全都为null

 select * from employees where commission_pct like '%%' or last_name like '%%';

SQL语法之基础查询(进阶1)and条件查询(进阶2)相关推荐

  1. SEC6 - MySQL 查询语句--------------进阶2:条件查询

    # 进阶2:条件查询 /* 语法:select 查询列表 from 表名 where 筛选条件; 分类:一.按照条件表达式筛选条件运算符:> < = !=(等价于<>) > ...

  2. 李玉婷MYSQL进阶02:条件查询

    李玉婷MYSQL进阶02:条件查询 语法结构: select: 查询列表 from:表名 where: 筛选条件 分类: 一.条件表达式 示例:salary>10000 条件运算符:> & ...

  3. springboot封装统一查询对象进行多条件查询案例(mybatis和mybatis-plus+反射两种版本)

    文章目录 mybatis版本: 通用查询接口 封装辅助查询类: 通用controller: 自定义注解 controller service mapper测试 mybatis-plus实现版本 ent ...

  4. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  5. SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

    文章目录 一.简单连接查询 二.多表连接查询 三.INNER JOIN 内连接查询 一.简单连接查询 1.直接连接:无连接规则连接两表,得到的是两个表的笛卡尔积. 连接后的行数=表1行数*表2行数 连 ...

  6. 写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)

    复杂的条件 在 SQL 的条件查询中,不只有 where.or where 这些基本的子句,还有 where in.where exists.where between 等复杂一些的子句.而且即使是 ...

  7. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

  8. asp.net mysql 查询_asp.net 多条件查询数据库

    ASP.NET3.5--第一章ASP.NET介绍 第一章  ASP.NET介绍 当微软创建.NET,它不仅仅梦想未来--它还担忧当代web开发技术的困惑和限制.在你开始ASP.NET3.5以前,本书帮 ...

  9. 【转载】VLOOKUP函数多条件查询 VLOOKUP三个条件查询

    对于使用Excel的上班族来说,经常需要对数据进行查询调用,VLOOKUP是使用率较高的查询函数之一,单条件查询比较简单,直接套用该函数的语法即可,如果是两个条件甚至三个条件应该怎样使用该函数呢? 工 ...

最新文章

  1. 讯飞智慧餐厅(安徽赛区)比赛通知
  2. 解决 Illegal DefaultValue null for parameter type integer 异常
  3. Eclipse Code Review(代码审查)工具介绍
  4. 【 Grey Hack 】万金油脚本:原地提权工具
  5. [css] 说说你对hasLayout的理解,触发hasLayout的方式有哪些?
  6. collections系列
  7. .和- 区别(C++)
  8. Reflector 3在录制中如何添加自己的声音
  9. linux基础之软件包管理
  10. 第38条:检查参数的有效性
  11. C#反射(Reflection)对类的属性get或set值
  12. 工控自动化 c语言编程,三菱PLC编程软件FXGP-WIN-C编程介绍
  13. 2019最新大数据分析智能BI Tableau教程视频(18章节)
  14. ubuntu20.04 安装Dukto
  15. python爬虫——爬取汽车之家新闻
  16. 如何找到属于自己高效学习方法?
  17. PAT 乙级1068 万绿丛中一点红(20 分)
  18. 无向有权图的邻接矩阵实现(C++)
  19. 夏季必不能少六道凉拌菜
  20. 展锐android r kernel 快速编译

热门文章

  1. Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
  2. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)
  3. Ubuntu之bashrc:成功解决Ubuntu系统内出现的conda:未找到命令
  4. DL之PSPNet:PSPNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  5. EL之GB(GBM):利用GB对回归(性别属性编码+调2参)问题(整数值年龄预测)建模
  6. ML之SVM:利用Js语言设计SVM算法(SMO算法+线性核/高斯核)
  7. 成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)
  9. OS_CORE.C(8)
  10. 爬虫-windows下安装Scrapy及scrapy模块介绍