Centos7+oracle11g配置,外加sql学习

Centos7+oracle11g配置,外加sql学习


(一) oracle+centos7环境配置:

  1. 创建用户组oinstall
  2. 创建用户组dba
    在这里插入图片描述
  3. 创建oracle用户,并加入到oinstall和dba用户组
    在这里插入图片描述
  4. 设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆,并查看新建的oracle用户

在这里插入图片描述
5. 创建oracle数据库安装目录
在这里插入图片描述
6. 设置目录所有者为oinstall用户组的oracle用户
在这里插入图片描述
7. 修改OS系统标识(oracle默认不支持CentOS系统安装,但是centos其实就是redhat)
在这里插入图片描述
在这里插入图片描述
8. 安装oracle数据库所需要的软件包
在这里插入图片描述
9. 查看防火墙状态
在这里插入图片描述
10. 关闭防火墙,再次查看

在这里插入图片描述11. 禁止使用防火墙,重启也是禁止
在这里插入图片描述
12. 关闭selinux,将selinux改为disabled
在这里插入图片描述
13. 修改内核参数,优化运行效果

在这里插入图片描述
14. 配置用户的环境变量
在这里插入图片描述
15. 使用户的环境变量配置立即生效
在这里插入图片描述
16. 移动到含有oracle压缩包的目录下,并使用unzip解压
在这里插入图片描述
17. 进入解压后的database文件目录下,运行runInstaller
在这里插入图片描述
18. 进入图形化界面安装步骤,oracle安装完成
在这里插入图片描述
(二) oracle与sql

  1. 开启lsnrctl
    在这里插入图片描述
  2. 运行sqlplus
    在这里插入图片描述
  3. 使用sys超级账户连接oracle
    在这里插入图片描述
  4. 查看当前数据库文件名
    在这里插入图片描述
  5. 创建临时表空间table_test
    在这里插入图片描述
  6. 去目录下查看,发现刚刚创建的数据库文件
    在这里插入图片描述
  7. 创建新用户user1,密码123,临时表空间指定table_test,永久性表空间指定data
    在这里插入图片描述
  8. 给user1新增权限,这样就可以使用user1进行oracle登陆
    在这里插入图片描述
  9. 新建student表,id为int型,
    age为number(3)也就是3为的int型,
    sex为指定6位字符长度的字符且不是male就是female
    cno 为varchar(4)也就是4位的字符类型,区别于char,varchar可以不定长
    created_time为默认的系统时间
    在这里插入图片描述
  10. 查看刚刚创建的表的结构
    在这里插入图片描述
  11. 向student表中插入数据
    在这里插入图片描述
  12. 全表查询student

在这里插入图片描述
13. 使用update更新语句,想更新marry的sex,第一次想变成unkown,被告知错误,看来更新数据也要遵循建表时的规则,第二次服从规则,更新成功
在这里插入图片描述
14. 带条件的查询
在这里插入图片描述
15. 使用and/or合并条件查询
在这里插入图片描述
16. 使用order by对查询结果排序
在这里插入图片描述
17. 使用union联合查询
在这里插入图片描述
18. 使用avg、count、sum等聚合函数查询

在这里插入图片描述
(三) 学习sql时的笔记
连接oracle:
第一种方法:
lnsrctl start
sqlplus /nolog
conn /as sysdba --以最高权限登陆
startup
第二种方法:
lnsrctl start
sqlplus 用户名/密码 --直接进入

**** 当使用第二种方法时,在用户名和密码都输入正确的情况下无法登陆,且弹出lack create session privilege,尝试添加权限解决 ****
**** grant create session,resource to user2 --用户名 ****
**** sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限****
**** system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限 ********

创建临时表空间:
create temporary tablespace test --表空间名称
tempfile ‘oracle/oracledata/tenp001.dbf’ --文件路径
size 1024m --初始大小
autoextend on next 32m --每次自动扩展大小
maxsize 2048m; --最大多少(可设置为UNLIMITED,则最大为32g)
创建永久性表空间:
create tablespace TEST
datafile ‘/oracle/*******’
size 32m
autoexten on next 32m
maxsize 2048m;


为表空间添加数据文件:
alter tablespace TEST add datafile ‘/xx/xx/xx’
size 50m
autoextend on next 5m
maxsize 100m;
** 当表空间对应的数据文件已经增长到上限值(自己设置的上限值,或者32g),此时则需要为该表空间新增一个数据文件 **


对已存在的数据文件属性进行修改:
alter database datafile ‘/****/’
resize 100m; --重新调整大小


用户创建:
create user username – 用户名
identified by password – 密码
default tablespace TEST – 指定永久性表空间
temporary tablespace test – 指定临时的表空间
profile default; – 默认的profile

**** 可以不指定表空间,系统会将该用户之后创建的数据放在默认表空间里,可能有默认表空间溢满的危险 ****
**** 当决定要指定的表空间时,临时表空间和永久表空间要同时指定 ****


用户授权:
把角色授予用户,该用户也将拥有该角色的权限
grant connect to username; --连接数据库
grant resource to username; --创建数据库实体(表,过程等)
grant dba to username; --创建数据库结构
针对表空间使用
grant unlimited tablespace to username; --用户可以再其他表空间随意建表,且无限额
系统权限
grant create cluster to username;
grant create procedure to username;
grant create synonym to username;
grant create trigger to username;
grant create view to username;
grant create JOB to username;
grant drop any table to username;
对象权限
grant delete any table to username;
grant update any table to username;
grant insert any table to username;
grant select any table to username;


查询已建立的表:
select * from user_tables; --查自己的表;
select * from all_tables; --查自己有权限的表;
select * from dba_tables; --查系统里所有的表(需要dba权限)


查询列名:
Select column_name,data_type,data_length from user_tab_columns [where table_name=‘表名’];

**** column_name:列名;data_type:列的数据类型;data_length:列的长度; ****
只能使用单引号,表名要大写


查询表名:
select table_name,tablespace_name,temporary from user_tables[where table_name=‘表名’];

table_name:表名;tablespace_name:存储表名的表空间;temporary:是否是临时表;
只能使用单引号,表名要大写


查询表空间对应数据文件的路径:
select * from dba_data_files;


修改列属性:
alter table 表名 modify 列名 varchar(50); --varchar(50)是修改后的属性


新增数据:
insert into 表名 (column1,column2,column3,······)values(data1,data2,data3,·······);

**** 插入多条数据 ****
insert into 表名 (column1,column2,column3,······) select 另一个表名;

**** 想插入多条数据必须使用select语句,从另一个表里检索数据 ****
**** insert into指定的列名可以与select子句指定的列名不同,但是数据类型必须兼容,且满足约束 ****


更新语句:
update 表名 set 列名1 = 新数据 [where column1=data1];


联合查询语句:
select 列名1,列名2 from 表名1 [where column1=data1] union [all] select 列名1,列名2 from 表名2

**** eg:select id from student where age > 19 union select id from test; ****
**** union查询的列名数量必须与前面对应,数据类型也要兼容 ****
**** union all与union的区别在于union会合并重复的行,而union all不会 ****

发布了21 篇原创文章 · 获赞 14 · 访问量 4075

猜你喜欢

转载自blog.csdn.net/m0_38103658/article/details/98854481