在SQLyog中导入sql表:
在root@localhost上右击--执行sql脚本--选择目标sql--执行--完成。
1、查询表中的字段:
select 查询列表 from 表名; 类似于 System.out.println( 打印的东西 );
特点:查询的结果是一个虚拟的表格。
2、查询常量值、表达式、函数:
3、起别名:
#7-1、起别名
SELECT 100%98 AS 结果;
SELECT `last_name` AS 姓,`first_name` AS 名 FROM employees;
#7-2、起别名方式二(省略AS)
SELECT `last_name` 姓,`first_name` 名 FROM employees;
(1)、如果别名有特殊标记、空格或符号等等,需要把别名加双引号(" ")或者单引号,建议最好加双引号:
SELECT salary AS "out put" FROM employees;
4、去重:DISTINCT
5、” + “号的作用:
MySQL中的“ + ”号仅仅只有一个作用:运算符。
两个操作数都为数值型,则作加法运算。 其中一方为数值型,试图将字符型数值转化成数值型, 如果转换成功,则继续做加法运算;如果转换失败,则将字符型数值变成0。 只要其中一方为null,则结果肯定为null。
MySQL中的“ + ”号仅仅只有一个作用:运算符
select 100+90; 两个操作数都为数值型,则作加法运算。
select '123'+90; 其中一方为数值型,试图将字符型数值转化成数值型
如果转换成功,则继续做加法运算
select 'join'+90; 如果转换失败,则将字符型数值变成0
select null+90; 只要其中一方为null,则结果肯定为null
6、concat函数:
案例要求:查询员工名与姓连接成一个字段,并显示为 姓名
SELECT CONCAT(last_name,first_name) AS 姓名
FROM employees;
1. 下面的语句是否可以执行成功
select last_name , job_id ,
salary as sal from employees;
2. 下面的语句是否可以执行成功
select * from employees;
3. 找出下面语句中的错误
select employee_id , last_name, salary * 12 “ANNUAL SALARY” from employees;
4. 显示表 departments 的结构,并查询其中的全部数据
DESC departments;
select * from departments;
5. 显示出表 employees 中的全部 job_id(不能重复用distinct关键字)
select DISTINCT job_id from employees ;
6. 显示出表 employees 的全部列,各个列之间用逗号连接,列头显示成 OUT_PUT (用到IFNULL函数--如果第一个数是null,则把它的值算为第二个数)。
语法:
select
查询列表 第三步
from
表名 第一步
where
筛选条件; 第二步
分类:
一、按条件表达式筛选:
条件运算符:> < = != <> >= <=
二、按逻辑表达式筛选:
逻辑运算符:
&& || !
and or not
三、模糊查询:
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、逻辑表达式筛选:
#案例1:查询工资在10000和20000之间的员工名、工资以及奖金
SELECT
last_name,salary,commission_pct
FROM
employees
WHERE
salary>=10000 AND salary<=20000;
#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工的信息
SELECT
*
FROM
employees
WHERE
#department_id<90 or department_id>110 or salary>15000;
NOT(department_id>=90 AND department_id<=110) OR salary>15000;
3、模糊查询:
like
between and
in
is null ; is not null
(1)、like
特点:
①、一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符,就一个
#案例1:查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%';
#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%';
可以使用任何字符(a,b,c,d......)对后边的字符进行转义操作,但必须用ESCAPE关键字对自己写的转义字符进行说明。
#案例3:查询员工名中第二个字符为_的员工名(需要加转义字符)
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';
#可以使用任何字符对后边的字符进行转义操作,但必须用ESCAPE关键字对自己写的转义字符进行说明。
(2)、between and
①、使用between and可以提高语句的简洁度
②、包含临界值
、两个临界值不要调换顺序
#案例1:查询员工编号在100到200之间的员工的信息
SELECT
*
FROM
employees
WHERE
`employee_id` BETWEEN 100 AND 200;
(3)、in关键字:
(4)、is null关键字:
案例1、查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct
FROM `employees`
WHERE commission_pct IS NULL;
(5)、安全等于(判断的是等于):<=>
案例1:查询没有奖金的员工名和奖金率
SELECT `last_name`,`commission_pct`
FROM `employees`
WHERE `commission_pct` <=> NULL;
案例2:查询工资为12000的员工信息
SELECT `last_name`,`commission_pct`
FROM `employees`
WHERE `salary` <=> 12000;