mysql2

-- UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 (修改表中数据)

-- UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2 WHERE 列名称 = 某值  (修改表中数据)

-- SELECT * from dept(查询dept表)

UPDATE dept SET loc='shenyang' WHERE deptno=80

UPDATE dept SET deptno=88 WHERE deptno=60

-- 基本查询select语句

SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。

SELECT 列名称 FROM 表名称

SELECT * from emp

SELECT ename,job,mgr,sal from emp

SELECT *FROM  emp

-- 查询员工的编号、员工姓名、年薪(sal表示月薪)

SELECT empno,ename,sal*12 from emp

-- 可以将列起一个别名 AS

SELECT empno AS 员工的编号,ename AS 员工的姓名,sal*12 AS 年薪 from emp

--  SELECT empno ,ename ,sal*12 AS(AS可省略) income from emp

SELECT empno ,ename ,sal*12 AS income from emp

SELECT d.deptno,d.dname from dept d

--  查询员工的编号、姓名、月收入(月薪+奖金)

--  注意:当数据运算中有空值的时候,最后的结果都为NULL

--  在mysql系统中会提供一个函数 ifnull(exp1(空值的列),exp2(更改的值)) 将exp1包含的空值替换为exp2的值

--  在Oracel中可以使用NVL(exp1,exp2)

SELECT * from emp

--  注意:当数据运算中有空值的时候,最后的结果都为NULL(comm有的为空)

SELECT empno,ename,sal+comm from emp

SELECT empno,ename,sal+IFNULL(comm,0) income from emp

-- 去掉重复的数据(记录)

--  语法:SELECT DISTINCT 列名称 FROM 表名称

select*from emp

select DISTINCT deptno from emp

-- 条件查询的语法:

-- select...from...where 查询的条件

-- ELECT 列名称 FROM 表名称 WHERE 列 运算符 值

-- 运算符: =  <>/!=(不等于)  >  <  >=  <=

SELECT *from emp WHERE empno(列名)!=1001

SELECT *from emp WHERE sal>=1001

-- 注意:在mysql中 ename='TOM'不计大小写  如果在oracle数据库中严格区分大小写的

-- BINARY 数据严格区分大小写

SELECT *from emp WHERE ename!='TOM'

SELECT *from emp WHERE job!='zz'

-- BINARY 数据严格区分大小写

SELECT *from emp WHERE  BINARY ename='TOM'

-- 日期类型的比较

-- hireadate=NOW() 入职日期是今天

-- hireadate!=NOW() 入职日期是不是今天

-- hireadate

-- hireadate>=NOW() 入职日期是在今天之后,包含今天

select *from emp WHERE hiredate!='1994-07-05'

select *from emp WHERE hiredate='1994-07-05'

select *from emp WHERE hiredate>='1994-07-05'

-- 逻辑关系运算符

-- AND(与) 和 OR(或) 可在 WHERE 子语句中把两个或多个条件结合起来。

-- AND的运算规则: 只有在X和Y同时为真的时候,最近的结果才为真

-- OR的运算规则:  只有要一个为值,最终的结果为真

-- !(非):取反  x=true  !=false

-- X    AND  Y    结果

-- true      true  true    x=10  y  10  (x>0) and (y>0)

-- true      false  false

-- false      false  false

-- false      false  false

-- X    OR  Y    结果

-- true      true  true   

-- true      false  true    x=10  y  10  (x>0) and (y<0)

-- false      true  true

-- false      false  false

-- 查询在10号部门工作,并且月薪不低于2500的员工信息

-- 分析:1.要查询那些信息(列)

--      2.查询条件 WHERE(查询)

select * FROM emp WHERE deptno=10 AND sal>=2500

-- 查询在10号部门工作,并且月薪且职位为程序员不低于2500的员工信息

SELECT * FROM emp where job = 'PROGRAMER'AND deptno = 10 AND sal >= 2500

-- 查询在10号部门工作或20号部门工作的员工信息

select * from  emp where deptno=10 or 20

-- AND和OR的优先级  AND>OR

SELECT *from emp where (deptno=30 or sal<2500) and deptno=10

-- 特殊的比较运算符

-- BETWEEN 操作符在 where 子句中使用 ,作用是选取介于两个值之间的数据范围

X BETWEEN A AND B

-- 表示 x 在【A,B】相当于X>=A AND X<=B

-- 查询月薪在[2000,2500]区间的员工的信息

select*from emp where sal between 2000 and 2500

-- 查询在20号部门入职日期在1994年的员工的信息

select*from emp where hiredate  between '1994-01-01' and '1994-12-31' and deptno=20

-- 模糊查询Like

-- SQL 通配符 %替代一个或多个字符 _仅代替一个字符

-- 语法:

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

-- 查询结果没有符合条件的数据 ename like 'A' 相当于 ename ='A'

select* from emp where ename LIKE 'A'

-- ename中包含有A字母

select* from emp where ename LIKE '%A%'

select* from emp where ename LIKE '_om%'  _代表一个字符

select* from emp where ename LIKE '__ex'  __2 个下划线带表2个字符

-- IN 操作符

-- IN 操作符允许我们在 where子句中规定多个值

-- 语法:

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

-- 查询在10号本门或20号部门工作,并且职位是CLERK的员工的信息

-- 查询在10号本门或20号部门工作,并且职位是CLERK的员工的信息

select *from emp where deptno in(10,20) and job='CLERK'

select*from emp where ename in('TOM','JACK') and job='CLERK'

-- 专门对空值null进行筛选

-- 查询所有的奖金(comm)是null的员工信息 (空值)

select * from emp where comm is NULL

-- 特殊运算符 not(取反)

-- 查询所有的奖金(comm)不是null的员工信息

select * from emp where comm is not NULL

-- 查询月薪不在[2000,2500]区间的员工的信息

select*from emp where sal NOT between 2000 and 2500

-- ename中不包含有A字母

select* from emp where ename not LIKE '%A%'

-- 查询在10号本门或20号部门工作,并且职位不是CLERK的员工的信息

select *from emp where deptno not in(10,20) and job='CLERK'

-- ORDER BY 语句

-- ORDER BY 语句用于根据指定的列对结果集进行排序

-- 排序的规则

-- 1.升序(由小到大) ASC

-- 数值 0 1 2 3.......

-- 文本 A B C D.......

-- 时间 1972-01-01......1978-05-22

-- 2.降序(由大到小) DESC

-- 语法的规则: SELECT ....FROM....WHERE....ORDER BY

-- 查询所有的信息,按照月薪(asl)升序排序

SELECT *FROM emp ORDER BY sal DESC

-- 也可以按照多个列来排序

-- ORDER BY 列1 排序方式, 列2, 排序方式 ......列N 排序方式

-- 在列1排序的基础上,进行对列2的排序

-- 查询所有的员工信息,按照部门的编号来升序排序,按照月薪来降序排序

select * from emp order by deptno asc,sal desc

-- 查询20号部门员工的姓名、月薪、奖金、月收入(月薪+奖金),按照月收入进行降序排序

select ename,sal,comm,sal+IFNULL(comm,0) income from emp where deptno =20 order by income DESC

-- SQL语句的编写顺序  SELECT....FROM.....WHERE.....ORDER BY

-- SQL语句的执行顺序  from....where....select...order by

SELECT * from emp ;

SELECT * from dept;

select e.empno,e.name,d.dname from emp e,dept d

你可能感兴趣的:(mysql2)