赞
踩
数据查询语言(Data Query Language):查询(SELECT)。
语法:
SELECT
查询列表
FROM
表名;
注意:
SELECT last_name FROM employees;
SELECT last_name,salary,email FROM employees;
SELECT * FROM employees;
SELECT 100;
SELECT 'john';
SELECT 100%98;
SELECT VERSION();
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
SELECT last_name 姓,first_name 名 FROM employees;
SELECT salary AS 'out put' FROM employees;
案例:查询员工表中涉及到的所有的部门编号。
SELECT DISTINCT department_id FROM employees;
MySQL中+只能当做算数运算符。比如’123’+90会解析成123+90,‘john’+90会解析成0+90,null+10会解析成null。
案例:查询员工名和姓连接成一个字段,并显示为姓名。
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
语法:
SELECT
查询列表
FROM
表名
WHERE
筛选条件;
条件运算符:> < = != <> >= <=
案例1:查询工资>12000的员工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id<>90;
逻辑运算符:&& || ! AND OR NOT
案例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
NOT(department_id<90 AND department_id>110) OR salary>15000;
通配符:
案例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 '_\_%';
案例4:查询员工名中第一个字符为$的员工名。
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_$%' ESCAPE '$';
注意:
案例1:查询员工编号在100到1200之间的员工信息。
SELECT
*
FROM
employees
WHERE
employees_id BETWEEN 100 AND 120;
判断某字段的值是否 属于IN列表中的某一项
特点:
案例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN('IT_PROT','AD_VP','AD_PRES');
注意:
案例1:查询没有奖金的员工名和奖金率。
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
<=>既能判断NULL值,又能判断普通数值。
案例1:查询没有奖金的员工名和奖金率。
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL;
案例2:查询工资为12000的员工信息。
SELECT
last_name,
salary
FROM
employees
WHERE
salary <=> 12000;
注意:
语法:
SELECT
查询列表
FROM
表
WHERE
筛选条件
ORDER BY
排序条件 [ASC|DESC]
案例1:查询员工信息,要求工资从高到低排序。
SELECT
*
FROM
employees
ORDER BY
salary DESC;
案例2:查询部门编号>=90的员工信息,按入职时间的先后排序
SELECT
*
FROM
employees
WHERE
department_id>=90
ORDER BY
hiredate ASC;
案例3:按年薪的高低显示员工的信息和年薪(按表达式排序)
SELECT
*,
salary*12*(1+IFNULL(commission_pct,0))
FROM
employees
ORDER BY
salary*12*(1+IFNULL(commission_pct,0)) DESC;
案例4:按年薪的高低显示员工的信息和年薪(按别名排序)
SELECT
*,
salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM
employees
ORDER BY
年薪 DESC;
案例5:按姓名的长度显示员工的姓名和工资(按函数排序)
SELECT
LENGTH(last_name),
last_name,
salary
FROM
employees
ORDER BY
LENGTH(last_name) DESC;
案例6:查询员工信息,要求先按工资升序,再按员工编号降序(多字段排序)
SELECT
*
FROM
employees
ORDER BY
salary ASC,
employee_id DESC;
类似于Java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。
好处:
调用:
SELECT
函数名([实参列表])
FROM
表名;
获取参数值的字节个数。
在utf8中一个汉字占3个字节,在gb2312中一个汉字占两个字节。
拼接字符串。
SELECT
CONCAT(last_name,'_',first_name) 姓名
FROM
employees;
案例1:将姓变大写、名变小写,然后拼接。
SELECT
CONCAT(UPPER(last_name),LOWER(first_name)) 姓名
FROM
employees;
截取子串
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。