第一节 SQL模块学习
- 1.1知识铺垫
- 1.1.1. [Linux基础](https://blog.csdn.net/weixin_46760148/article/details/113795176)
- 1.1.2.[Linux服务](https://blog.csdn.net/weixin_46760148/article/details/113799037)
- 1.1.3.[Shell编程](https://blog.csdn.net/weixin_46760148/article/details/113902302)
- 1.1.4.[Ansible自动化](https://blog.csdn.net/weixin_46760148/article/details/113906723)
- 1.1.5[.docker虚拟化](https://blog.csdn.net/weixin_46760148/category_10820922.html)
- 1.1.6 Oracle单实例安装
- 1.2SQL语句前期学习准备
1.1知识铺垫
1.1.1. Linux基础
----》操作系统的学习
文件管理/权限管理/用户管理/软件管理/软件管理/磁盘管理/网络管理
1.1.2.Linux服务
----》互联网架构中常见服务的应用及特点
http(apache)/ftp/ntp/dhcp/dns
1.1.3.Shell编程
-----》Linux操作系统中自动化的基础(perl编程,python编程)
1.1.4.Ansible自动化
----》企业级自动化运维平台
1)成熟的互联网架构中,往往自动化分为三层(系统准备,系统配置,联动层)
—》应用自动化的时候
a)-----》cobbler(批量安装操作系统,无人值守自动化安装操作)
Cobbler在机房使用
b)----》puppet+func(ssl旧的)----ansible/saltstack(python二次开发的需要开发成本)(批量管理服务器/服务新的)
系统运维人员+python开发人员做
c)----》zabbix(企业级监控工具,开源)/lepus(监控工具没有更新)—用于系统监控
系统运维人员
以上这些都是市场中比较流行的自动化工具,在当前的自动化运维场景中,使用较多
MySQL数据库应用场景在互联网公司,这些公司没有特别强大的开发团队。也没有强大的自动化运维团队----》MySQL DBA有时需要兼职做一些和自动化相关的使其。也可能本身公司就没有自动化,DBA可能需要引入自动化,部署自动化平台。
Oracle数据库应用场景在银行,金融领域,政府,这些公司/机构都有成型的自动化运维平台-------》Oracle DBA 在这些工作场景中工作,管理好数据库软件,学习如何使用这些场景的自动化工具。
自动化运维都在MySQL DBA中,Oracle DBA不涉及
1.1.5.docker虚拟化
----》开发运维方法的新技术,开发----》测试----》部署
1.1.6 Oracle单实例安装
Oracle单实例安装—》Oracle 10g 11g database 安装升级(小版本升级,跨版本升级),建库方式
1.2SQL语句前期学习准备
Sql语句----》数据库中使用的一种语言
标准SQL 模块
-----SQL语句----结构化查询语句
DQL—数据查询语言
DML—数据操纵语言
DDL----数据定义语言
DCL----数据控制语言
Select insert update delete drop truncate create alter grant revoke
标准sql模块的语句没有讲
1.要向学习sql—》就要搭建数据库—》使用dbca建库----》需要有database软件
2.Database软件安装—》三种建库方式----》fsdb/rawdb/asmdb—》没有数据是空的
3.学习SQL语句,需要用到Oracle数据库中的示例数据库,示例数据库中有数据表,供我们学习SQL使用。这些数据表中数据都是比较有特点的,借助这些数据表,我们可以完整的体验SQL的各种语法和应用。
4.学习之前准备干净的Linux操作系统,安装11.2.04数据库软件
注意示例数据库必须在装软件之前就创建示例数据库----》在安装选择的时候选择装软件并创建数据库,方便我们学习使用SQL
5. 在学习管理Oracle数据库时用到:Sys用户(超级管理员) System用户(普通管理员)
6. 在学习SQL语句时会用
scott用户----》创建密码tiger(默认),scott用户是示例数据库用户,是学习SQL时用到的用户。Scott用户默认是锁定的,
另一个用户为Sh用户----》大数据用户,默认是锁定的。
7.学习注意事项:
1)需要安装软件时创建实例数据库
2)安装完软件后需解锁scott用户及sh用户
1.2.1安装11.2.04数据库软件前期准备
1.前期安装操作
1)给rhel6操作系统添加三块硬盘
给虚拟机添加三块5G大小的硬盘----使用fdisk -l或者lsblk -l查看
3个硬盘对应3种建库方式----
Sdb硬盘 sdc硬盘 sdd硬盘
Fs建库 raw建库 asm(Automatic storage management)建库
2.使用root用户做如下操作
1配置ip地址+xshell远程连接
在全新的rhel6里修改配置文件,配置ip,进行xshell远程连接,----在仅主机模式下
使用xshell连接—
如果在Linux中配置完IP地址后无法连接xshell,查看电脑的虚拟网卡vmnet1是否客户虚拟机里的操作系统的IP是同一个网段的,并启用。
2关闭Linux中的软件
1.关闭防火墙机制+设置为开机关闭
1)Rhel6—》iptables /ip6tables rhel7—》firewalld
2)Rhel6语法:service 服务名 动作
Service IP tables/ip6tables stop —关闭防火墙
Chkconfig iptables/ip6tables off ----设置开机关闭
3)rhel7语法:systemctl 动作 服务名
systemctl stop firewalld----关闭防火墙
systemctl disable firewalld ----设置开机关闭
2.关闭安全增强机制—selinux
Setenforce 0----临时设置 修改配置文件是永久生效
3.关闭图形化网络管理工具
3配置yum软件仓库
配置yum软考仓库的目的是为了安装Oracle数据库软件的依赖包
1.将/dev/sr0挂载到/mnt下-------关机后要重新执行挂载操作
2.到/etc/yum.repos.d下,删除所有文件,并编辑rhel.repo文件
3.生成yum软件仓库
4配置主机名+映射关系
在Oracle数据库服务器中对应的操作系统的主机名不要使用大写字母
1.使用hostname +主机名 临时修改主机名
2.编辑vim/etc/sysconfig/network —这是永久生效—修改主机名
在rhel7中的命令是:
Hostname 主机名 ----临时生效
hostnamectl set-hostname 主机名-----永久生效主机
4.配置映射关系—编辑/etc/hosts文件
5.安装11g的依赖包
命令:yum -y install binutils-* compat-libstdc+±* compat-libstdc+±.i686 elfutils-libelf elfutils-libelf-devel* gcc-* gcc-c+±* glibc-* glibc-.i686 glibc-common glibc-devel* glibc-devel*.i686 glibc-headers* ksh* libaio* libaio*.i686 libaio* libaio*.i686 libgcc* libgcc*.i686 libstdc++* libstdc++.i686 libstdc+±devel make* sysstat* unixODBC* unixODBC*.i686 unixODBC-devel* unixODBC-devel*
6.创建用户和用户组
因为使用示例数据库----》不使用asm(Automatic storage management)建库,因此不用创建grid用户,和安装grid软件
[root@oracle ~]# groupadd -g 1000 oinstall
[root@oracle ~]# useradd -u 1000 -g oinstall oracle
[root@oracle ~]# id oracle
7.创建Oracle用户的安装路径
1)命令:[root@oracle ~]# mkdir -p /u01/app/oracle
给此路径赋予修改属组和属主
[root@oracle ~]# chown -R oracle:oinstall /u01/app/oracle
修改权限775 chmod 775 /u01/app/oracle
2)命令:mkdir -p /u01/app/oracle/product/11.2/db_1
给此路径赋予修改属组和属主
修改权限775
[root@oracle ~]# chown -R oracle:oinstall /u01/app/oracle/product/11.2/db_1
[root@oracle ~]# chmod 775 /u01/app/oracle/product/11.2/db_1
8创建分区—创建文件系统—挂载
1)在root用户下查看sdb硬盘
命令—fdisk -l
2).root用户下创建文件系统
命令 mkfs.ext4 /dev/sdb----->y
3).进行挂载操作
创建文件系统的sdb硬盘与 目录/oradata进行挂载
/oradata用于存放数据库文件的路径
意味着oradata里存放的数据实际是存放在/dev/sdb里了
关机后要重新挂载
4)修改/oradata权限
-----让Oracle用户管理方便
[root@oracle ~]# chown -R oracle:oinstall /oradata/
[root@oracle ~]# chmod 775 /oradata/
9.创建清单目录
命令:
[root@oracle ~]# mkdir -p /u01/app/oraInventory
[root@oracle ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@oracle ~]# chmod 775 /u01/app/oraInventory
10g 默认保存在$ORACLE_BASE(/u01/app/oracle)/oraInventory
11g 默认保存在 /u01/app/oraInventory
修改清单目录的属主和属组----》gird:oinstall
命令:[root@oracle ~]# chown -R oracle:oinstall /u01/app/oraInventory
根据用户装软件的不同更改属主用户,即可
3.使用oracle用户执行操作
1)编辑配置文件 vim ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=
O
R
A
C
L
E
B
A
S
E
/
p
r
o
d
u
c
t
/
11.2
/
d
b
1
e
x
p
o
r
t
P
A
T
H
=
ORACLE_BASE/product/11.2/db_1 export PATH=
ORACLEBASE/product/11.2/db1exportPATH=ORACLE_HOME/bin:$PATH
因为是示例数据库就只有一个数据库,因此实例也就一个
在配置文件中添加----》export ORACLE_SID=sqltest
写或不写都可以
2).执行source ~/.bash_profile
1.2.2后期安装1—batabase软件
Oracle 11g中每个版本对应7个压缩包
1包+2包=database软件包,3包是grid软件包
4到7都是Oracle客户端,Oracle的模板,Oracle的卸载方案等。
1.在root用户的/tmp目录下上传1+2
2.解压2个安装包
3.查看解压后的安装包
4.在Oracle用户下执行命令
提前配置调用图形化界面的变量
先切换到命令目录下:在执行此命令 ./runInstaller
1)进入图形化界面
A不选择mos和email
B.跳过软件安装
C选择创建并配置一个数据库----示例数据库
D.选择server 类
E.创建单实例节点
F.高级安装方式
G.选择语言—英语
H.选择企业版编辑
J.oracle_base和oracle_home环境变量
K.清单目录
C到J是配置数据库的操作
从这步开始创建数据库
L.创建哪种类型的数据库
M.创建数据库名+实例名
N,选择字符集+示例对象-----第二个和第四个
选择带有示例对象的创建数据库,数据库里会有数据,不是空的
O.不使用oem—对勾去不掉
P.使用fs模式建库
Q.不启用自动备份
R.设置密码—一样
习惯上给sys用户创建的初始密码是create_install_oracle
System用户创建的初始密码为:admin
S.都是oinstall组
T.检查软件
报错----需要执行脚本
在root用户下执行脚本----完成后点击ok
U.安装完成
W.解锁用户scott用户和sh用户+密码123456
安装完成----进度条读完后不要点击ok,要进行解锁用户和给密码
X.执行脚本
在root用户下执行脚本
总结:老师做的前期准备
.
5.查看完成安装并建库的信息
[oracle@oracle ~]$ cat /etc/oratab
6.登录数据库操作
1)使用sys用户可以免密登录—exit
使用sys用户本地连接数据库实例(sys用户本地登陆免密)
使用sys用户登录必须添加 as sysdba
如果不添加就会报如下错误:
2)使用scott用户进行本地连接
使用scott用户本地连接数据库实例
Scott用户的密码是在(password management)解锁并设定
1.2.3.Oracle数据库实例中支持的命令
1).查看数据库登录用户----show user命令
A命令格式:show user
B功能描述:在连接数据库的前提下使用此命令,可以查看当前数据库的登录用户是谁
C.练习
2).切换数据库登录用户----conn命令
A命令格式:conn 用户名/密码 -----conn(connect连接)
B功能描述:当前实例下切换用户
C.练习 -----》conn system/oracle system是用户名密码为oracle
练习2:使用sys用户切换时,需要添加as sysdba
为什么会有不同的用户----因为不同的用户管理的数据是不一样的
3)数据库清屏命令----clear scr
A命令格式:clear scr -----scr(screen清屏)
B功能描述:当前实例清屏
C.练习
4)在数据库里执行操作系统中的命令----》host命令
A命令格式:host Linux命令
B功能描述:在数据库(sql)里执行操作系统中的命令
常用命令:host date+“%F %T”-----查看操作时间
Host 命令----》在sql当中执行操作系统命令
C.练习
5)在数据库里执行编辑命令----》edit命令
A命令格式:edit+文件名 ------其实编辑.sql文件,而.sql是默认添加的
常用格式:host+ vim + .sql文件 -----》配合使用
B功能描述:在当前用户的当前目录编辑以.sql结尾的文件
C.命令特点:
a)连接数据库后,Sql中的edit实际上是调用系统中的文本编辑器打开/创建以及编辑文件
b)本身edit命令主要用于在sql当中创建并编辑文件用于编写sql脚本(将sql语句写入文件)
c)edit工具编辑文件使用很麻烦,不方便修改文件。
d)通常使用 host vim sql脚本名,调用系统中的vim来编辑文件。
总结:通过sql中的edit/host命令+系统上的文本编辑器vim/vi,我们都能创建sql脚本
D.练习1:编辑yyn.sql文件以wq保存退出
练习2:编辑hhp.sql文件以q退出
练习3:使用系统命令vim编辑yyn.sql文件
6)在数据库里执行文件/脚本命令----@命令
A.使用@命令表示执行
@sql脚本路径----》执行sql脚本,达到批量执行sql语句的目的
此处指定的脚本类路径时,可以是相对路径或者是绝对路径,相对路径是相对于连接sql之前操作系统的当前所在路径。
B.语法格式: @ +(绝对路径/相对路径)文件名/sql脚本
@与脚本之前不加空格
C.练习1----执行hhp.sql文件
先编辑hhp.sql文件内容
7)在数据库里调整行的大小命令----set linesize
A命令格式:set linesize +字符个数
B功能描述:修改单行的显示内容,长度最多为300个字符,仅在当前窗口生效
当字段多时,就会出现折行现象,我们可以调整linesize控制每行显示的字符
D.练习1:将行长度设置为300
8)在数据库里调整页显示的行数的命令----set pagesize
A命令格式:set pagesize +行个数
B功能描述:设置单页显示行内容,仅在当前窗口生效
当行记录比较多时,就会出现分页的现象,默认每页显示的内容时有限的,我们需要通过调整pagesize,控制每页的显示行数
D.练习1:最多显示1000行数据
9)在数据库里定义列的长度命令----col
A命令格式:col +列名(字段名/表头)for a长度 ------col(column)
B功能描述:设置列名的显示长度,仅在当前窗口生效
D.练习1:给name列表字符长度为10
10)在数据库里查看当前实例的参数----show parameter
A命令格式:show parameter
B功能描述:查看当前的实例的参数
D.练习1:
练习2:SQL> show parameters ‘%mem%’; -----》模糊查询