2. SQL语句学习

1.3 SQL语句学习

1.3.1SQL基本概念

1.SQL由来
1)早期数据库有70多种,但数据库中的管理方式各不相同。每种数据库都有自己独特的管理方式,这就导致切换数据库使用会产生极大的学习成本,在早期,很多程序开发时,是以多数据场景设计的,程序设计难度也比较高,
2)推出SQL(结构化查询语句)是上世纪70年代IBM推出一种数据库操作标准
IBM并没有去推行SQL的使用,在早期,只有很少的数据库厂商支持SQL标准,他们都有自己的数据库操作标准
3)Oracle很早就开始使用IBM研发的SQL标准。
2.数据库分类
1)关系型数据库
到目前为主,大家知道是数据库是(Oracle,MySQL , SQLServer,pgsql)都是支持SQL标准的。-----》都是rdbms(关系型数据库管理系统)----》关系型数据库
而SQL 是关系型数据库的操作标准
传统数据库Oracle,MySQL , SQLServer
2)非关系型数据库
redis(内存型数据库)和mogodb(文档型数据库),这些非关系数据库的使用场景是区分于我们常说的传统数据库的(Oracle/MySQL/SQL server),这些非关系型数据库并不遵循SQL标准。又称为nosql数据库,后来更名为newsql数据库
3)从现在到以后,关系数据库一定不会被取代

1.3.2.学习SQL的方向

  1. SQL通用语法以及Oracle的语法为重点
    11)我们将要学习的SQL标准是适用于关系型数据库(传统数据库)的,不同的传统数据库对应的SQL语法也会有不同。
    2).我们以SQL通用语法以及Oracle的语法为学习重点。
    2.在SQL标准中,将SQL操作分为三类
    DML------(Data Manipulation Language)数据操作语言
    DDL--------(Data Definition Language)数据定义语言
    DDL---------(Data Control Language)数据控制语言
    1)DML数据操作语言
    A.含义
    指代我们对数据库中数据的具体操作(增删改查)
    -----》(CRUD)C-create增,R-Read 查,U-Update 改,D-Delete 删
    B.DML的语法
    Insert 插入数据
    delete删除数据
    update更新数据
    select 查询数据
    2).DDL数据定义语言
    A.含义
    指代我们对数据库中表,表空间,索引等对象的操作,不会导致数据改变
    B.DDL的语法
    create 创建
    alter修改
    drop 删除
    C.例如
    a)create spfile from pfile----》编辑修改文件
    b)Alter database mount -----》启动数据库到mounted阶段
    c)Alter database open-----》启动数据库到opened阶段
    d)Alter system set memory_target=500M scope=spfile;
    3).DCL 数据控制语言
    A.含义
    指代我们在数据库中对用户授权的相关操作(权限相关)
    B.DCL的语法
    Grant
    Revoke
    3.总结
    1)上面提到的三类SQL语句,其中DML,DDL最重要,其中以DML为关键
    2) 在DML中,SELECT为重点,查询操作是我们学习SQL语句的重点,并且查询操作会直接影响数据库性能。
    3)提升数据库性能最直接的办法就是编写优秀的SQL语句
    4.补充知识点
    1)spfile与pfile的区别
    (1)pfile是文本文件,可以使用文本编辑器进行编辑,而spfile是二进制文件,不能使用任何编辑器进行修改,但是可以使用strings查看文件的内容
    (2)pfile里面是静态参数,不能在线修改,而spfile里面有动态参数,可以在线修改,而不用重启oracle;
    2)数据库启动分三个阶段
    A状态started
    ----数据库如果可以读到参数文件就到started阶段
    B状态mounted
    -----参数文件可以读到控制文件mounted阶段
    C状态open
    --------控制文件可以读到数据文件并且数据具有一致性open阶段
    3)startup启动过程(一步全启动)
    A. startup upgrade
    ----》升级的方式打开数据库----》走三步
    启动实例,进行挂载,打开数据库
    B. startup normal
    -----》正常方式打开数据库-----《走三步
    启动实例,进行挂载,打开数据库
    startup 等同于startup normal ----》normal可省略,默认是normal
    4)单步启动—对应三个阶段
    Startup nomount -----》启动数据库到started阶段-----》第一步
    Alter database mount -----》启动数据库到mounted阶段—》第二步
    Alter database open-----》启动数据库到opened阶段----》第三步
    Startup normal等同于 startup nomount +alter database mount+alter database open

1.3.3了解示例数据库中的数据表

当前我们学习SQL适用的是Oracle当中提供的scott用户,这个用户下存放了一些表,当中存放的一些数据,我们可以通过这些数据体验SQL的用法
1.认识scott用户的数据表
1)切换到scott用户下
在这里插入图片描述

2)查看所有表
A.语句格式:select * from tab;
B.功能描述:查看当前用户的能够使用的数据表
C.练习:
在这里插入图片描述

TNAME (表名) TABTYPE(表类型) CLUSTERID


BONUS(奖金表) TABLE
DEPT(部门表) TABLE
EMP(员工表) TABLE
SALGRADE(薪资表) TABLE
要使用的数据就存放在四张数据表中,现在大家可以将这里的数据表的结构想象成excel电子表格。

Bonus----》员工奖金表
Dept-----》部门信息表
Emp------》员工信息表
Salgrade—》薪资等级表

3)查看指定表数据
A.语句格式:select * from 表名;
上述四个数据表都可以通过select语句查看内容
B.功能描述:查看指定表的数据信息
C.练习1:查看emp表的数据
在这里插入图片描述

当字段多时,就会出现折行现象,我们可以调整linesize控制每行显示的字符
在这里插入图片描述

当行记录比较多时,就会出现分页的现象,默认每页显示的内容时有限的,我们需要通过调整pagesize,控制每页的显示行数
表由字段(表头)和行记录组成,当表的内容过多时,自动换到第二页显示pagesize
在这里插入图片描述在这里插入图片描述

练习2:查看dept表中的信息数据
在这里插入图片描述

练习:查看bonus和salgrade表
在这里插入图片描述

这四个表都可以通过以上的select语句查看内容
但是,我们需要使用四张数据表中的数据,,因此必须要记住四张表的结构
4)查看指定表的表结构
A.语句格式:desc 表名;
B.功能描述:查看指定表的表结构
C.练习1:查看emp表的数据结构
在这里插入图片描述

在desc的结果中,name表示字段名,null表示该字段是否可以为空,type表示字段中存放的数据类型。
Name Null? Type


EMPNO NOT NULL NUMBER(4)----》表示最多4位数字从0000到9999
ENAME VARCHAR2(10)----》可变的字符数长度为10
JOB VARCHAR2(9)-----》可变的字符长度为9
MGR NUMBER(4) ----》表示最多4位数字
HIREDATE DATE-----》表示日期–年月日 time—表示时间
SAL NUMBER(7,2) 表示最多7位,保留2位,从00000.00到99999.99
COMM NUMBER(7,2) 表示最多4为数字
DEPTNO NUMBER(2) 表示最多2为数字

1.3.4了解示例数据库中的数据表字段

以上的数据表中的字段信息都需要记住
1.Emp表:存放员工信息
在这里插入图片描述

Emp数据表存在如下的字段
EMPNO -------》employee number -----》员工编号
ENAME -------》employee name-----》员工信息
Job -------》工作—》clerk雇员,salesman销售员,manager经理,
analyst分析员,president总统
MGR -------》manager----》上司
HIREDA------》雇佣日期—》17-DEC-80----》表示1980年12月17日入职
SAL ------》salary-----》员工薪资
COMM -----》commission----》佣金,绩效
DEPTNO-----》department number-----》部门编号
2.dept表:存放员工部门信息
在这里插入图片描述

Dept数据表存在如下的字段
DEPTNO-----》department number -----》部门编号10到40
DNAME -----》department name------》部门名称 4个部门
Accounting 会计 research 研究,科研 sales销售 operations操作部
LOC ------》location-----》公司地址 4个
在这里插入图片描述

3.salgrade表:存放薪资等级信息
在这里插入图片描述

salgrade数据表存在如下的字段
GRADE-----》 等级
LOSAL-----》 最低薪资----》该等级工资下限
HISAL-----》 最高薪资----》该等级工资上限
在这里插入图片描述

4.bonus表:存放员工奖金信息的表
Bonus表当前只存在表结构无数据,-no rows selected
在这里插入图片描述

bonus数据表存在如下的字段
ENAME------》employee name----》员工信息
JOB -----》工作
SAL -----》salary-----》工资
COMM -----》commission-----》奖金
5.dual表:虚拟表—》不存在的
在这里插入图片描述

6.主要使用表:emp和dept
使用的时候,主要操作集中在emp和dept数据表上

--语 句 功 能   --数据操作   SELECT --从数据库表中检索数据行和列   INSERT --向数据库表添加新数据行   DELETE --从数据库表中删除数据行   UPDATE --更新数据库表中的数据   --数据定义   CREATE TABLE --创建一个数据库表   DROP TABLE --从数据库中删除表   ALTER TABLE --修改数据库表结构   CREATE VIEW --创建一个视图   DROP VIEW --从数据库中删除视图   CREATE INDEX --为数据库表创建一个索引   DROP INDEX --从数据库中删除索引   CREATE PROCEDURE --创建一个存储过程   DROP PROCEDURE --从数据库中删除存储过程   CREATE TRIGGER --创建一个触发器   DROP TRIGGER --从数据库中删除触发器   CREATE SCHEMA --向数据库添加一个新模式   DROP SCHEMA --从数据库中删除一个模式   CREATE DOMAIN --创建一个数据值域   ALTER DOMAIN --改变域定义   DROP DOMAIN --从数据库中删除一个域   --数据控制   GRANT --授予用户访问权限   DENY --拒绝用户访问   REVOKE --解除用户访问权限   --事务控制   COMMIT --结束当前事务   ROLLBACK --中止当前事务   SET TRANSACTION --定义当前事务数据访问特征   --程序化SQL   DECLARE --为查询设定游标   EXPLAN --为查询描述数据访问计划   OPEN --检索查询结果打开一个游标   FETCH --检索一行查询结果   CLOSE --关闭游标   PREPARE --为动态执行准备SQL 语句   EXECUTE --动态地执行SQL 语句   DESCRIBE --描述准备好的查询   ---局部变量   declare @id char(10)   --set @id = '10010001'   select @id = '10010001'   ---全局变量   ---必须以@@开头   --IF ELSE   declare @x int @y int @z int   select @x = 1 @y = 2 @z=3   if @x > @y   print 'x > y' --打印字符串'x > y'   else if @y > @z   print 'y > z'   else print 'z > y'   --CASE   use pangu   update employee   set e_wage =   case   when job_level = ’1’ then e_wage*1.08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值