sql常用语句:
1、显示时间(在sql当中执行操作系统的命令):
SQL> host date +"%F %T"
2021-04-07 08:34:14
2、在sql中调用linux系统文件语法:
SQL> host vim zhangsan.sql
select * from scott.emp;
3、在sql中执行linux系统中的脚本:
备注:@sql基本路径,执行sql脚本达到批量执行sql语句的目的。
SQL> @zhangsan.sql
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
数据库分类:
1、关系型数据库:
oracle、mysql、sql server、pgsql
2、非关系型数据库:
redis(内存型数据库)、mogodb(文档型数据库)。注意非关系型数据库不遵循SQL标准。
一、sql语法:
1、在sql标准中,将sql语句分为三类:
DML(Data Manipulate Language 数据操作语言):
DDL(Data Definition Language 数据定义语言):
DCL(Data Control Language 数据控制语言):
1.1、DML数据操作语言:指代我们对数据库中数据的具体操作。增删改查(insert、delete、update、select)
1.2、DDL数据定义语言:指代我们对数据库中表、表空间等对象的操作。创建、修改、删除(create、alter、drop)
1.3、DCL数据控制语言:指代我们在数据库中对用户授权的相关操作(权限相关)。授权、回收权限(grant、revoke)
2、sql学习(scott用户):
image.pngimage.png
2.1、简单查询:我们针对一张数据表的查询操作称之为简单查询。
image.png备注:固定的语法全部大写,可变的内容全部小写,更容易排查问题。
语法:(执行顺序)
2.select(*|列名 [别名]|计算过程)
1.from (table_name);
范例1:查看emp表中的所有数据:
select * from emp;
范例2:查看公司所有雇员姓名,雇员编号及薪资。
1、确定数据来源--->emp数据表
2、确定需要的字段--->ename、empno、sal
select ename,empno,sal from emp;
范例3:查看公司所有员工姓名,部门编号,年薪(年薪构成为15薪,每个月有200车补,100餐补、35话补)
1、确定数据表:emp
2、确定字段:ename、deptno、sal15+(200+100+35)12
select ename,deptno,sal*15+(200+100+35)*12 from emp;
2.2、常量:我们会在使用select子句时,也可以查询常量:定义的常量字段需要用单引号标记起来,目的是与表中的字段做区分。
SQL> select 'name',ename from emp;
'NAM ENAME
---- ----------
name SMITH
name ALLEN
name WARD
name JONES
name MARTIN
name BLAKE
name CLARK
name SCOTT
name KING
name TURNER
name ADAMS
name JAMES
name FORD
name MILLER
14 rows selected.
2.3、字符串拼接:可以将多个字段拼接为1个字段.使用||这个符号进行字符串的拼接。
select ename,job from emp;
SQL> select 'Name is ' ||ename||',Work is ' || job from emp;
'NAMEIS'||ENAME||',WORKIS'||JOB
------------------------------------
Name is SMITH,Work is CLERK
Name is ALLEN,Work is SALESMAN
Name is WARD,Work is SALESMAN
Name is JONES,Work is MANAGER
Name is MARTIN,Work is SALESMAN
Name is BLAKE,Work is MANAGER
Name is CLARK,Work is MANAGER
Name is SCOTT,Work is ANALYST
Name is KING,Work is PRESIDENT
Name is TURNER,Work is SALESMAN
Name is ADAMS,Work is CLERK
3.1、限定查询:
语法:(执行顺序)
3 select(*|列名 [别名]|计算过程)
1 from (数据表)
2 where (限定条件)
备注:where 条件(AND|OR|NOT)--->若存在多个判定条件,我们可以引入逻辑运算(与或非)
关系运算(如下提到的一些判断符,应该出现在where子句中):
,<,>=,<=,<>,!=
BETWENNT...AND
IN,NOT IN
LIKE
IS NULL,IS NOT NULL
范例1:查询出工资大于1000的所有雇员的信息:
1、确定数据表:emp
2、确定字段:*
3、确定已知的条件:sal >1000
select * from emp where sal>1000;
范例2:查询出工资在1000~1500(闭区间)之间的所有非销售人员的编号、姓名、职位、工资。
1、确定数据表:emp
2、确定字段:empno、ename、job、sal
3、确定已知的条件:sal >=1000、sal<=1500、job !='SALESMAN'
网友评论