结构化数据操作语言-------SQL语言
概念:
结构化语句
作用:
用来操作数据
用来管理用户
用来管理事务
分类:
DQL,DML,DDL,DCL,TCL
使用:
通过使用SQL语句进行数据库中的数据管理
数据的存储:
增加
增加一条数据
增加一张表
删除
删除数据
删除表
修改
修改数据
修改表信息
数据的读取:
单表查询
多表查询
子查询
通过使用SQL语句管理用户
创建用户
修改用户
删除用户
通过使用SQL语句管理事务
-------------------------------------------------------------------------SQL查询操作----------------------------------------------------------------------------
-- 查询表中的所有数据
select * from emp;
----------------------------------------------------------------------------------------------
--查询表中指定字段的值 select 字段1,字段2....from 表名
select empno from emp;
select empno,ename from emp;
--给查询表中的字段使用别名
-- 在的字段名后 字段名+as+别名
-- 注意:as关键字可以不写,别名中没有特殊字符,双引号可以不写
select empno 员工编号,ename"员工姓名",job as 工作,marno as "领导编号" from emp;
----------------------------------------------------------------------------------------------
-- 连接符 : 字段名||'字符'||字段名......from 表名
-- ||为sql语句的字符连接符,使用在select和from之间
-- 字符链接的格式为 字段名||'字符'||字段名
-- 注意:一个拼接好的连接在结果中作为一个新的字段显示,可以使用别名来优化显示效果
select empno||'的姓名是:'||ename as 信息 from emp;
----------------------------------------------------------------------------------------------
-- 去除重复
-- select distinct 字段名1,字段名2....from 表名
-- 注意:去除重复的规则是按照行进行去除的,多行数据相同取其一
select distinct job from emp;
----------------------------------------------------------------------------------------------
-- 排序
-- 单字段排序
-- 使用order by关键字
-- select 字段名,字段名(*) from 表名 order by 字段名 asc 升序排序
-- select 字段名,字段名(*) from 表名 order by 字段名 desc 降序排序
select * from emp order by empno desc
select empno,ename,job from emp order by empno asc;
-- 多字段排序(先按照第一个字段的顺序进行排序,如果相同按照第二个字段名排序)
-- select * from 表名 order by 字段名1,字段名2;
select * from emp order by empno,ename;
--------------------------------------------------------------------------------------------
-- 字段的逻辑运算
-- 字段名的数字类型的可以进行数值操作
-- 两个字段可以拼接到一起,显示出来一个给用户
select empno,ename,job,sal*2 from emp;
select empno,ename,job,sal*2 from emp;
--------------------------------------------------------------------------SQL的条件查询-----------------------------------------------------------------------------
--使用where子句查询筛选
select 字段名1,字段名2,...from 表名 where 筛选条件
--单筛选条件
---使用运算符进行筛选 =,>,>=,<,<=,<>单个条件中
---注意:如果条件中的值为字符,必须使用单引号括起来
--- 查询所有员工的工资信息
select empno,ename,sal+comm as 薪资 from emp;
--- 查询SMITH的个人信息
select * from emp where ename='SMITH';
--- 查询SMITH的薪资信息,逻辑运算符=
select empno,ename,sal,sal+comm from emp where ename='SMITH';
--- 查询工资大于1000的员工信息,逻辑运算符>
select * from emp where sal>'2000';
--- 查询工资不等于3000的员工信息
select * from emp where sal <>30000 order by sal;
---多条件查询(关键字:and,or,like,is,null,is not null,in between and)
---查询工资在2000-3000的员工信息
---使用and关键字,多条件成立的筛选使用and关键字
select * from emp where sal>=2000 and sal <= 3000;
--- 使用between and关键字,进行条件链接,包含两头的关键字
select * from emp where sal between 2000 and 3000;
--- 查询工作为SALESMAN,ANALYST,MANAGER的员工信息
---使用or关键字,进行或条件查询
select * from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER' order by job;
---使用in关键字,进行或条件的筛选
select * from emp where job in ('SALESMAN','ANALYST','MANAGER');
--- 查询姓名中包含s的,以s开头的,以s结尾的,第二个字符为A的
---%表示任意多个的任意字符
select * from 表名 where 字段名 like '%字符%';查询包含指定字符的数据
select * from emp where ename like '%S%';
---select * from 表名 where ename like 'S%' ---以S开头
select * from emp where ename like 'S%';
--- select * from 表名 where ename like '%S' ---以S结尾
select * from emp where ename like '%S';
--- select * from 表名 where ename like '_字符%' ---查询指定位置的指定数据 _表示任意数据
select * from emp where ename like '_A%';
--- select * from 表名 where 字段名 like '%字符2字符1% escape '字符2'
----escape将指定的字符编程转义字符
---转义字符可以将特殊字符转义程普通字符
select * from emp where ename like '%/_%' escape '/';