zoukankan      html  css  js  c++  java
  • oracle入门笔记

    进入oracle客户端:运行---->sqlplus    或者使用oracle自带的SQL plus软件.

    登陆oracle客户端: conn 用户名/密码;

    显示当前用户: show user;

    断开当前连接: disc;

    .select * from  user_role_privs; 查看当前用户的角色

    select name from v$database;  查看数据库

    Oracle中常用的数据类型:

    NUMBER[(precision [, scale])]   NUMBER(p,s)

    范围: 1 <= p <=38, -84 <= s <= 127

    保存数据范围:-1.0e-130 <= number value < 1.0e+126  

    保存在机器内部的范围: 1 ~ 22 bytes

    有效位:从左边第一个不为0的数算起的位数。

    s > 0

    精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。

    s < 0

    精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。

    s = 0 等价于NUMBER(p)

    此时NUMBER表示整数。

    字符串:char,定长,实际内容不足会自动填充.最多2000个字符 查询,存储效率高

    varchar2 不定长,所占内存根据内容决定,最多4000个字符

    表操作:

    查询当前用户创建的表:select table_name from user_tables;

    查询当前用户创建的视图:select view_name from user_views; 

    查询当前用户创建的视图和表:select * from tab ;

    查看表结构:desc 表名; 只能看到字段名或者字段名和类型.

    添加数据:insert into 表名 values(); 或者insert into 表名(字段名) values(值);

     注意:values的s不能省略.不能使用values(值1),(值2)这种方式.

    修改:update 表名 set 字段1=值 [,字段2=值..] where 条件;

    查询:select 查询列/* from 表名 where 条件;

    删除:delete from 表名 where 条件;

    说明:删除和修改,如果没有条件,操作的是所有的数据.

    创建表及约束:create table t1(id int primary key,name varchar(20) unique,age int check(age>18 and age<100),sex char(2) default '男',address varchar(40) not null);

    注意:oracle中"并且"不能使用&&,可以换成and. User是oracle的关键字,表名不能用user.

    在oracle中唯一约束,主键约束,外键约束,检查性约束(强制执行),非空约束,默认约束的效果和mysql相比,效果不变.

    |------删除约束:

    alter table 表名 drop constraint 约束名称; 可以根据外键匿名删除任何约束

    alter table 表名 drop primary key ; #删除主键约束

    alter table 表名 drop primary key cascade; #在两张表存在主从关系,带上 cascade,自动删除外键关系

    alter table 表名 drop unique (字段名); 删除唯一约束

    alter table 表名 modify 字段名 字段类型 null; # 删除非空约束,必须明显指出null

    alter table 表名 modify 字段名 字段类型 default null; #删除默认约束,必须明显指出默认值为null

    注意:删除外键不能使用mysql的"alter table 表名 drop foreign key 外键匿名;"

    |------添加约束:

    添加主键约束:alter table 表名modify id int primary key;  通过修改字段类型添加主键约束

                 Alter table 表名 add [constraint 约束匿名] primary key (字段名); 添加主键约束

    添加唯一约束:alter table表名 modify name varchar(20) unique; 修改字段类型,添加唯一约束

                 alter table 表名 add  [constraint 约束匿名]  unique  (字段名);unique后不能有key.

    添加外键约束: alter table 表名modify id int [constraint t1_t2]  references t2(num); 通过修改字段类型添加外键约束

    alter table 表名 add [constraint 外键匿名] foreign key (外键字段) references 被引用的表的表名(被引用的子段的字段名);

    添加非空约束: alter table 表名modify 字段名 字段类型 not null;

    注意:通过修改字段类型添加非空约束,如果删除非空约束,可以将"not null"换为"null". 若省去非空说明,则保持原来的约束.

    添加检查性约束: alter table 表名modify 字段名 字段类型check(条件); 通过修改字段类型添加检查性约束.

                   alter table 表名 add  [constraint 约束匿名] check(条件);

    总结:五中约束条件都可以通过修改字段类型的方式,进行添加.

    表结构操作:

    alter table 旧表名 rename  to 新表名; 或者   rename 表名 to 新名 /*修改表名*/

    alter table 表名 modify 字段名 数据类型 /*修改字段的数据类型*/

    alter table 表名 rename column 旧列名 to 新列名    /*修改字段名*/

    alter table 表名 modify 字段名 default 默认值; /*修改字段的默认值*/

    alter table 表名 add 新字段名 数据类型 约束条件 /*添加字段,默认添加在最后一个字段后面.没有after或者first.*/

    alter table 表名 drop column 字段名 /*删除字段*/

    将外部的sql文件导入到oracle中: start D:文件名.sql   相当于mysql中的source  D:文件名.sql

    导出数据库/表到外部:

    等待解决的问题:

    问题:mysql中的数据库(test,mydb等),对应oracle中的哪些,如果查看?

    Oracle 中的实例:orcl   select name from v$database;

    问题: 查询某用户创建的表?

    Select table_name from user_tables; //显示当前用户所拥有的所有的表,只返回用户对应方案中的所有表.

    Select table_name from all_tables; //显示当前用户可以访问的有的表,返回用户对应方案的所有表.及其他方案中可以访问的表.

    Select table_name from dba_tables; //显示所有方案拥有的数据表.要求用户有dba角色或者select any tables系统权限.

    问题:Oracle的注释?

    -- 注释内容

    /* 我是多行注释*/

    问题:oracle不能使用user,怎么处理?

    User是oracle的关键字,如果必须创建user表,建表和删除表时,表名要加双引号. Create table “user” ....

    问题:oracle的主键怎么添加自增长?

    Oracle数据库的表的列没有自动增长的功能.可以通过编写序列或者触发器实现.

    CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999.INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL

    问题: drop table if exists t1;的使用?

    在oracle中不能使用if exists.

    问题:查看某表的数据类型和约束条件?

    查询某表的约束信息

    Select table_name,constraint_type,search_condition,constraint_name from user_constraints where table_name='表名';.

    constraint_type:约束类型代号(主键,外键,唯一等) search_condition:约束信息内容 constraint_name:外键匿名

    select column_name,data_type From all_tab_columns where table_name=upper('表名') AND owner=upper('用户名');

    查询某列的字段类型:

    select DATA_TYPE from User_Tab_Columns t where t.column_name=upper('age') and T.TABLE_NAME=upper('表名');

    问题:如何查看创建表的语句--show create table 表名; 查看视图的创建: show create view 视图名;

    附加: 自增长序列

    create sequence autoIncrement

    increment by 1 --每次增加1

    start with 1 -- 从1开始

    nomaxvalue -- 没有最大值

    nocycle -- 不循环

    ;

    select autoIncrement.nextval from dual;  查询序列中的下一个数

    select autoincrement.CURRVAL from dual; 查询序列中的当前数

    讲课案例:

    表操作使用例子:

    Drop table t1;

    Drop table t2;

    create table t2 (id int primary key,num int unique);

    create table t1(id int constraint p_id primary key ,name varchar(20)  constraint u_name

    unique,age int  check(age>18 and age<100),sex char(2) default '男',address varchar(40) not null);

    查看表的约束条件:Select table_name,constraint_type,search_condition,constraint_name from user_constraints where table_name='T2';

  • 相关阅读:
    封装一个php语言的api提示类
    Content-Type四种常见取值
    postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    ansible find
    Linux系统中根目录下或者新挂载的磁盘目录下有一个叫lost+found,它的作用是什么?
    rm /mv需要注意的
    mount
    es number_of_shards和number_of_replicas
    logstash设置配置路径
    ES7.8 设置 xpack
  • 原文地址:https://www.cnblogs.com/Ryanhe/p/9650285.html
Copyright © 2011-2022 走看看