龙空技术网

docker 安装 oracle11g (附oracle学习笔记01)

快乐的时光czs 254

前言:

现时咱们对“oraclemodifycolumn”大致比较讲究,我们都想要学习一些“oraclemodifycolumn”的相关资讯。那么小编也在网摘上搜集了一些对于“oraclemodifycolumn””的相关资讯,希望各位老铁们能喜欢,姐妹们快快来了解一下吧!

1、docker 安装oracle11g步骤:

1:引入oracle源	docker pull oracleinanutshell/oracle-xe-11g2:开始创建容器	docker run -h "oraclehost" --name "oracle" -d -p 9090:8080 -p 1521:1521 oracleinanutshell/oracle-xe-11g3: docker ps4:在终端中进入此容器	docker exec -it 94910105eb6f /bin/bash	5:使用普通身份登入	sqlplus system/oracle	6:创建用户并分配权限	6.1 查看用户		select username,password from dba_users;	6.2 创建用户:用户名为 oracle;密码为:oracle		create user oracle identified by oracle;	6.3 查看是否有此用户 oracle		select * from all_users;	6.4 给用户赋予connect 和 resource 角色(connect: 保证数据库可以链接;resource:该用户可以使用数据库的资源;create session:会话的权利)		grant connect,resource,create session to oracle;	6.5 创建表格添加,更改用户表空间配额		grant unlimited tablespace to oracle;	6.6 删除用户		drop user oracle;7:开启docker oracle服务	docker start oracle	

2、oracle学习笔记01

192.168.52.135三大部分	1.用户与表空间	2.表与约束	3.查询语句全局数据库名:orcl密码:root图形化管理工具 sql-plus两个用户都可以使用:sys/systemsys as sysdba 使用管理员的身份登录数据库sql-plus 	写sql语句必须要分号结尾  但是命令不需要加;方便的话,统一使用分号。	清屏:		若在dos的窗口下sql/plus就要用:host cls 或是clear screen	show linesize : 查看当前设置的sqlplus输出的最大行宽	set linesize : 设置sqlplus输出的最大行宽用户与表空间	用户		登录 sql-plus			系统用户:				四个系统用户:					sys,system 						权限 sys > system						sys登录必须使用 管理员 或者 系统操作人员权限 登录					sysman						操作系统管理器的人员,也是管理员级别的用户					scott password: tiger (default)						oracle 创始人的一员			使用系统用户登录:				使用system用户登录					[username/password][@server][as sysdba][sysoper]					---  system/root @orcl as sysdba					---  system/root #本地直接					---  connect/conn sys/root  #error ORA-28009: connection as SYS should be as SYSDBA or SYSOPER					---  connect/conn sys/root as sysdba					orcl就是自己设置的服务名		查看登录用户			--- show user; 查看当前用户			dba_users 数据字典 和普通的表类似			--- desc dba_users;  #查看数据字典属性信息		启用scott用户			默认被锁定了			需要解锁 使用该用户			alter user username account unlock;			修改登录后 需更新密码: root	表空间		表空间概述			理解表空间				数据库与表空间					表空间实际上是数据库的逻辑存储空间,表空间可以理解为在数据库当中开辟一个空间用来存放数据库对象。					一个数据库可以有多个表空间构成。					oracle很多优化都是与表空间实现的。				表空间与数据文件					表空间有一个或多个数据文件构成,大小可以由用户自己定义。					我们建的表,数据库当中对象都是存储在表空间的数据文件当中。			表空间的分类				永久表空间					数据库当中永久存储的数据,例如:数据库表,视图,存储过程等				临时表空间					存储数据库操作过程当中中间执行的过程,执行完毕自动会被释放掉				UNDO表空间					保存事务所修改的旧值,被修改之前的数据,实现回滚操作		查看用户的表空间			利用4个数据字典 				dba_tablespaces 系统管理员查看的				user_tablespaces 普通用户查看的				dba_users 系统管理员查看的 查看用户默认和临时表空间				user_users 普通用户查看的  查看用户默认和临时表空间			--- desc dba_tablespaces 			--- select TABLESPACE_NAME from dba_tablespaces; #6个系统默认的					SYSTEM  存放sys用户的表,视图,存储过程等数据库对象,系统表空间					SYSAUX  作为Example表空间的辅助表空间					UNDOTBS1 存储一些撤销信息的表空间  belong to UNDO表空间					TEMP 存储sql语句处理的表和索引信息的临时表空间					USERS 存储用户创建的数据库对象的永久表空间,和SYSTEM类似					EXAMPLE 用于安装oracle11g事例的表空间			--- select TABLESPACE_NAME from user_tablespaces; #6个系统默认的  					SYSTEM  存放sys用户的表,视图,存储过程等数据库对象,系统表空间					SYSAUX  作为Example表空间的辅助表空间					UNDOTBS1 存储一些撤销信息的表空间  belong to UNDO表空间					TEMP 存储sql语句处理的表和索引信息的临时表空间					USERS 存储用户创建的数据库对象的永久表空间,和SYSTEM类似					EXAMPLE 用于安装oracle11g事例的表空间			--- select DEFAULT_TABLESPACE from dba_users;     			--- select TEMPORARY_TABLESPACE from dba_users;   			#查询system用户的默认表空间			#查询system用户的临时表空间 临时表空间(默认是TEMP,可以自己创建)			--- select default_tablespace,temporary_tablespace from dba_users where username = 'SYSTEM'; (SYSTEM,TEMP)			--- select default_tablespace,temporary_tablespace from dba_users where username = 'SCOTT'; (USERS,TEMP)				设置用户的默认或临时表空间			alter user username 			default|temporary TABLESPACE tablespace_name;						--- alter user system default tablespace users; #将用户system的默认表空间修改为users		创建,修改,删除表空间			创建				create [temporary] tablespace tablespace_name 				tempfile|datafile 'xx.dbf' size xx    # datafile 就是表空间数据文件的名字  [tablespace,tempfile]匹配				--- create tablespace test1_ts datafile 'test1file.dbf' size 10m;				--- create temporary tablespace temptest1_ts tempfile 'tempfile.dbf' size 10m;				--- desc dba_data_files 查看永久表空间的文件信息				--- select file_name from dba_data_files where tablespace_name='TEST1_TS';						C:\APP\ZHENGSHENG.CHEN\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST1FILE.DBF			    --- desc dba_temp_files 查看临时表空间的文件信息				--- select file_name from dba_temp_files where tablespace_name='TEMPTEST1_TS';						C:\APP\ZHENGSHENG.CHEN\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE.DBF			修改(永久的)				修改表空间的状态					设置联机或脱机的状态						alter tablespace tablespace_name online|offline;						创建完表空间默认是联机状态						---  alter tablespace test1_ts offline						---  select status from dba_tablespaces where tablespace_name = 'TEST1_TS';						---  alter tablespace test1_ts online					设置只读或可读写状态(必须是联机状态)						alter tablespace tablespace_name read only|read write						默认表空间是 read write状态 						--- alter tablespace test1_ts read only;						--- select status from dba_tablespaces where tablespace_name = 'TEST1_TS'; #read only						--- alter tablespace test1_ts read write;						--- select status from dba_tablespaces where tablespace_name = 'TEST1_TS'; #online				修改数据文件					增加数据文件						alter tablespace tablespace_name						add datafile 'xx.dbf' size xx;						--- alter tablespace test1_ts add datafile 'test2_file.dbf' size 10m;						--- select file_name from dba_data_files where tablespace_name='TEST1_TS';							C:\APP\ZHENGSHENG.CHEN\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST1FILE.DBF							C:\APP\ZHENGSHENG.CHEN\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST2_FILE.DBF					删除数据文件						alter tablespace tablespace_name						drop datafile 'filename.dbf';					    不能删除表空间中第一个数据文件,如果要删除的话,我们需要把整个表空间删掉					    ---  alter tablespace test1_ts drop datafile 'test2_file.dbf';			删除表空间				drop tablespace tablespace_name [including contents](括号加上同时删除数据文件)				---  drop tablespace test1_ts including contents;表与约束	表存储在表空间当中		存储数据的基本存储单位		二维结构		行和列	数据类型		日期型			DATE(经常使用)				范围:公元前4712/1/1--公元9999/12/31				可以精确到秒			TIMESTAMP		字符型			固定长度				char(n) max(n) = 2000				nchar(n) 按照unicode max(n) == 1000 存储汉字比较多			可变长度				varchar2(n) max(n) = 4000				nvarchar2(n) 按照unicode max(n) == 2000 存储汉字比较多		数值型			number(p,s) p:有效数字 s:小数点后的位数 经常使用				number(5,2) 有效数字五位,小数两位			float(n) 存储二进制数,二进制数的位数[1,126],转换为十进制数需要乘以0.30103才可以得到		其他类型(大对象)			blob 最大存储4G的数据 二进制形式存放			clob 最大存储4G的数据 字符串形式存放	管理表		创建表			同一个用户下表名唯一			create table table_name(				column_name datatype,				...			)			demo:				创建用户信息表(所需字段 字段的类型)				编号 用户名 密码 邮箱 注册时间				create table userinfo(					id number(6,0),					username varchar2(20),					userpwd varchar2(20),					email varchar2(30),					regdate date				)				--- desc userinfo;		修改表(结构)			添加字段				alter table table_name				add column_name datatype;				--- alter table userinfo add remarks varchar2(500);			更改字段数据类型				alter table table_name 				modify column_name datatype;				--- alter table userinfo modify remarks varchar2(400);  #更改字段长度				--- alter table userinfo modify userpwd number(6,0);    #更改数据类型			删除字段				alter table table_name				drop column column_name;				--- alter table userinfo drop column remarks;			修改字段名				alter table table_name				rename column old_column to new_column				--- alter table userinfo rename column email to new_email;			修改表名				rename table_name to new_table_name				--- rename userinfo to user_info		删除表			truncate table table_name  #截断表,删除表中所有数据,速度比delete快			drop table table_name 删除表结构	操作表的数据		添加数据			insert 语句				insert into table_name(column1,column2,...)				values (value1,value2,...)			操作实例				向表中所有字段添加值					--- insert into userinfo values(1,'初中生','123','xxx@126.com',sysdate);				向表中指定字段添加值					--- insert into userinfo(id,username,userpwd) values(2,'yyy','123');				向表中添加默认值					create table user_info(				      id number(6,0),				      regdate date default sysdate				    );				    --- insert into user_info(id) values(1)				    --- alter table userinfo modify email default '无';				    --- insert into userinfo(id) values(3);				    --- insert into userinfo(id,email) values(4,'aaa')			复制表数据				在建表的时候复制					create table table_new 					as					select column1,...|* from table_old;					--- create table usercopy as select id,username,userpwd from userinfo;				在添加时复制					insert into table_new 					[(column1,...)]					select column1,...|* from table_old;					--- insert into usercopy select id,username,userpwd from userinfo;					--- insert into usercopy(id,username) select id,username from userinfo;		修改数据			update 语句			update table_name set column1=value1,... [where conditions]		删除数据			delete * from table_name [where conditions]	约束		约束作用			定义规则			确保完整性		非空约束			创建表时设置非空约束				create table table_name(					column_name datatype not null,					...				)			修改表时添加非空约束 (必须保证表属性中无空数据)				alter table table_name				modify column_name datatype not null;			修改表时去除非空约束				alter table table_name				modify column_name datatype null;		主键约束			非空 唯一			一张表只能设计一个主键约束			主键约束可以由多个字段构成(联合主键或复合主键)			1.在创建表时设置主键约束				单一主键					create table table_name(						column_name datatype primary key,						...					);				联合主键					create table userforce_pk(					  id number(6,0),					  username varchar2(20),					  userpwd varchar2(20),					  constraint pk_id_username primary key(id,username)					);				查找约束 字典:desc user_constraints				--- 			2.在修改表时添加主键约束				alter table table_name				add constraint constraint_name 				primary key(column_name1,..);				--- alter table userinfo add constraint pk_id primary key(id);			3.更改约束的名称				alter table table_name				rename constraint old_name to new_name								--- alter table userinfo rename constraint pk_id to id_pk;			4.删除主键约束				alter table table_name				disable|enable|drop constraint constraint_name;				drop primary key[CASCADE] #针对外键约束				--- alter table userinfo disable constraint id_pk;				--- 查看约束状态				--- select constraint_name,status from user_constraints where table_name = 'USERINFO';		外键约束			在创建表时设置外键约束				create table table1				(					column_name datatype REFERENCES table2(column_name),					...				);				# table1:从表  table2:主表				# 设置外键约束时,主表的字段必须是主键				# 主从表中相应的字段必须是同一个数据类型				# 从表中外键字段的值必须来自主表中的相应字段的值,或者为null值				--- create table C(id number(2,0) references A(id));								constraint constraint_name FOREIGN KEY(column_name) references table_name(column_name)[on delete cascade]				[on delete cascade] 级联删除 主表当中一条数据被删除之后,从表当中使用了这条数据的字段所在的行也会被删除				--- create table C(						id number(2,0),						constraint fk_id foreign key(id) references A(id)					);			在修改表时添加外键约束				add constraint constraint_name FOREIGN KEY(column_name) references table_name(column_name)[on delete cascade]				--- alter table E add constraint fk_id_e foreign key(id) references A(id);			删除外键约束				alter table table_name				disable|enable|drop constraint constraint_name;				--- alter table E disable constraint fk_id_e;				--- alter table E drop constraint fk_id_e;		唯一约束			保证字段值的唯一性			唯一约束 vs 主键约束				1.主键字段值必须是非空的				2.唯一约束允许有一个空值				3.主键在每张表只有一个,唯一约束可以有多个			在创建表时设置唯一约束				列级 vs 表级				create table table_name (					column_name datatype unique,					...				)				create table userinfo_A(  					id varchar2(10) primary key,  					username varchar2(20) unique, 					userpwd varchar2(20)  				);  				表级:  					constraint constraint_name unique(column_name)			在修改表时添加唯一约束				add constraint constraint_name unique(column_name)			删除唯一约束				alter table table_name				disable|enable|drop constraint constraint_name;		检查约束			create table table_name 			(				column_name datatype CHECK(expressions),				...			)			--- create table T_A (id number(2,0) check(id>10));			创建表时设置检查约束				constraint constraint_name check(expressions)			在修改表的时候添加检查约束				alter table table_name				add constraint constraint_name check(expressions);			删除检查约束				alter table table_name				disable|enable|drop constraint constraint_name;

标签: #oraclemodifycolumn