oracle基础学习
- ed :打开文件编辑sql。
- exec dbms_xdb_config.sethttpport(5501); 修改dbms的连接端口
- show con_name; 显示当前连接名称
- show pdbs; 显示当前有的pdbs容器
- select name from V$database; 显示当前连接的数据库
- select instance_name from instance; 显示当前的实例名
- alter session set container = orclpdb; 修改当前的容器
数据库操作
//创建一个用户名为c##huqi密码为TIGER的新用户,
create user c##huqi identified by TIGER account unlock;
//给该用户赋权
Grant DBA to c##huqi;
Grant sysoper to c##huqi;
表操作
创建表
create user c##huqi identified by TIGER account unlock;
Grant DBA to c##huqi;
Grant sysoper to c##huqi;
Create table menber (
mid number(5),
name varchar2(50) default '不详',
age number(3),
birthday date default SYSDATE,
note clob -- clob用于存放海量文字
);
向表中插入数据
Create table menber (
mid number(5),
name varchar2(50) default '不详',
age number(3),
birthday date default SYSDATE,
note clob -- clob用于存放海量文字
);
插入所有字段的对应数据
insert into menber values(1,'张三',22,SYSDate,NULL);
插入对应字段的对应数据
insert into menber(mid,age) values(2,22);
拷贝插入:创建一个新表,并且将A表的结构、数据拷贝给新表,如果想仅仅是结构,加where 1=2;
create table newMenber as (select * from menber)
拷贝插入:将B表的数据查询后拷贝给A表
insert into menber (select * from newMenber);
显示当前连接的名称
show con_name
表重命名 旧名 to 新名
rename menber to newMenber;
删除表结构,并且自动删除数据,属于DDL
drop table menber;
删除(截断)表数据,因不做日志记录,所以效率高于delete,但删除后不能恢复,也属于DDL
truncate table menber;
删除表数据,效率低于truncate,属于DML
delete from menber;
修改表结构
增加字段
alter table menber add (sex varchar(4) default '男' );
修改字段
alter table menber modify(sex varchar2(4) default '女');
删除某字段
alter table menber drop column sex;
添加备注
给表添加备注
comment on table menber is '这是给表加的一个备注';
给表中字段增加备注
comment on column menber.sex is '这是给表的性别字段加的一个备注';
约束
修改表,增加约束(不推荐)
alter table menber modify (mid number(20) unique);
alter table menber modify (name varchar2(50) not null);
insert into menber
alter table menber add primary key(mid,name);
修改表,增加约束(推荐)
alter table mytest2 add constraint pk_ID primary key(T_ID);
创建表时创建约束方法
create table mytest(
t_id number(2) primary key,
name varchar2(20) not null
);
comment on table mytest is '这是我一个测试';
comment on column mytest.t_id is '这是一个主键';
推荐创建约束方式,便于删除
create table mytest2(
t_id number(2),
name varchar2(20),
age number(3),
CONSTRAINT uk_age UNIQUE (age),
constraint pk_id primary key (t_id,name)
);
查看所有表的约束
select constraint_name,constraint_type,table_name from user_constraints;
查看mytest2的表的约束,注意 需要区分大小写(最开始我就是小写没有查出数据)
select constraint_name,constraint_type,table_name from user_constraints where table_name = 'MYTEST2';
删除约束
alter table mytest2 drop constraint PK_ID