zoukankan      html  css  js  c++  java
  • oracle基本命令练习笔记

    oracle基本命令练习笔记
    第一章 用户

    用户
    系统用户,sys,system,sys权限高于system,密码自己设置
    1.sysman用于操作企业管理器使用,密码自己设置
    2.scott,默认密码tiger
    3.在sys,system,sysman,scott四个用户权限中,scott用户最低
    使用system用户登录
    打开sqlplus,输入system/密码,登陆
    connect sys/密码 as sysdba
    Oracle用户和表空间之查看登录用户

    show user
    desc dba_users
    select username from dba_users;
    

    启用scott用户

    alter user username account unlock; 
    alter user scott account unlock;
    

    第二章 表空间

    表空间
    表空间
    分为永久表空间,临时表空间,UNDO表空间
    UNDO表空间,保存事务修改前的旧址
    临时表空间,操作过程中的数据
    查看用户表空间

    dab_tablespacs,user_tablespaces
    desc dba_tablespaces;
    select tablespace_name from dba_tablespacs;
    dba_users,users_users
    

    设置默认或者临时表空间

    alter user system default tablespace system;
    select  default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
    

    创建表空间

    create tablespace test1_tablespace datafile 'test1_datafile.dbf' size 10m;
    create temporary tablespace tamptable_tablespace tempfile 'tmpetest1_datafile.dbf' size 10m;
    desc dba_data_files;
    select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE'
    

    修改表空间
    设置联机或者脱机状态

    alter tablespace tablespace_name online/offline;

    设置只读或者可读写状态,必须为联机状态;

    alter tablespace tablespace_name read only/read write;

    修改数据文件
    增加数据文件

    alter tablespace tablespace_name add datafile 'xx.abf' size xx;

    删除数据文件,不能删除第一个数据文件

    alter tablespace tablespace_name drop datafile 'xx.abf' size xx;

    删除表空间
    不删除文件

    drop tablespace tablespace_name

    删除表空间的同时删除文件

    drop tablespace tablespace_name including contents;

    第三章 管理表

    管理表
    数据类型
    字符型:CHAR,NCHAR(多用于存储汉字);
    VARCHAR2,NVARCHAR2;可变长度类型
    数值型:NUMBER(p,s)
    FLOAT,
    日期型:DATE,
    TIMESTAMP,
    其他类型:BLOB,
    CLOB,(字符串形式存储)
    创建表

    create table userinfo
    (id number(6,0),
    username varchar2(20),
    userpwd varchar2(20),
    useremil varchar2(30),
    regdate date);
    

    修改表
    添加字段

    ALTER TABLE table_name ADD column_name datatype;
    alter table userinfo add beizhu varchar2(500);
    

    更改字段的数据类型,表中没有数据是能够实现;

    ALTER TABLE table_name MODIFY column_name datatype;

    删除字段

    ALTER TABLE table_name DROP column_name datatype;

    修改字段名
    ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

    修改表名

    ALTER table_name TO new_table_name;

    删除表
    删除表中全部数据,截断表(表存在)

    TRUNCATE TABLE table_name;

    表结构删除

    TROP TABLE table_name;

    第四章 操作表中数据

    操作表中数据
    INSERT 语句,前面省略代表所有字段都要赋值

    INSERT INTO table_name (column1,column2,...) VALUES(values1,values2,...)
    insert into userinfo values(1,'xxx','123','xxx@126.com',sysdate);
    

    向表中指定字段添加值

    insert into userinfo(id,username,userpwd) values(2,'yyy','123');
    select username,userpwd from userinfo;
    

    向表中添加默认值

    create table userinfo1 (
    id number(6,0),
    resgdate date default sysdate);
    alter table userinfo modify email default '无';
    

    复制表数据
    在创建表时复制

    CREATE TABLE table_name AS SELECT column1,...|*FROM table_old;
    create table userinfo_new as select * from userinfo;
    create table userinfo_new1 as select id,username from userinfo;
    

    在添加时复制
    I

    NSRT INTO table_new [(column1,...)] SELECT column1,...|*FROM table_old;
    insert into userinfo_new select * from userinfo;
    

    字段名可以不一致,但是数据类型必须一致

    insert into userinfo_new (id,username) select id,username from userinfo;

    修改数据

    UPDATE table_name SET column1=value1,...[WHERE conditions];

    无条件更新

    update userinfo set userpwd='111111';

    有条件更新数据

    update userinfo set userpwd='123456' where username='xxx';

    删除数据库
    删除表中全部数据,速度慢些

    DELETE FROM tablename[WHERE conditions];

    第五章 约束

    约束
    非空约束
    在创建表时设置非空约束

    CREATE table_name (
    column_name datatype NOT NULL,...);
    

    在修改表时添加非空约束,修改前最好没有添加数据

    ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
    alter table userinfo modify username varchar2(20) not null;
    

    删除非空约束

    ALTER TABLE table_name MODIFY column_name datatype NULL;
    alter table userinfo modify username varchar2(20) null;
    

    主键约束,确保表中每一行数据的唯一性,要求字段非空,唯一
    在创建表时设置主键约束

    CREATE table_name (
    column_name datatype PRIMARY KEY,...);
    

    在创建表时设置主键约束

    CONSTRAINT constraint_name PRIMARY KEY (column_name1,...)
    create table userinfo_p1(
    id number(6,0),
    username varchar2(20),
    userpwd varchar(20),
    constraint pk_id_username primary key(id,username));
    desc user_constraints;
    select constraint_name from user_constraints where table_name='USERINFO_P1';
    

    修改表时添加主键约束

    ADD CONSTRAINT constraint_name PRIMARY KEY (column_name1,...);

    更改约束的名字

    ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;

    删除主键约束
    禁用约束

    ALTER TABLE table_name DISABLE|ENABLEND CONSTRAINT constraint_name;

    查看约束状态

    select constraint_name,status from user_constraints where table_name='USERINFO';

    删除约束

    ALTER TABLE table_name DROP CONSTRAINT constraint_name;

    有外键的时候用

    ALTER TABLE table_name DROP PRIMARY KEY[CASCADE];

    外键约束
    创建表时设置外键约束

    CREATE TABLE table1 (column_name datatype REFERENCES table2(column_name),...);
    create table typeinfo
    (typeid varchar2(10)primary key,
    typename varchar2(20));
    

    创建从表

    create table userinfo_f
    (id varchar2(10) primary key,
    username varchar2(20),
    typeid_new varchar2(10) references typeinfo(typeid));
    insert into typeinfo(1,1);
    

    第二个字段必须是主表字段值或者空值;

    insert into userinfo_f(id,typeid_new) values(1,1)

    在创建表时设置外键约束,ON DELETE CASCADE级联删除

    CONSTRAINT constraint_name FOREIGN KEY(column) REFERENCES table_name (column_name)[ON DELETE CASCADE]
    create table userinfo_f1
    (id varchar2(10) primary key,
    username varchar2(20),
    typeid_new varchar2(10),
    constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid));
    

    加上级联删除

    create table userinfo_f2
    (id varchar2(10) primary key,
    username varchar2(20),
    typeid_new varchar2(10),
    constraint fk_typeid_new1 foreign key(typeid_new) references typeinfo(typeid) on delete cascade);
    

    在修改表时添加外键约束

    ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name (column_name)[ON DELETE CASCADE]
    create table userinfo_f4
    (id varchar2(10) primary key,
    username varchar2(20),
    typeid_new varchar2(10));
    alter table userinfo_f4 add constraint  fk_typeid_new4 foreign key(typeid_new) references typeinfo(typeid);
    

    删除外键约束

    DISABLE|ENABLEND CONSTRAINT constraint_name;
    DROP CONSTRAINT constraint_name;
    

    唯一约束,保证字段唯一性,主键约束字段值必须是非空的,唯一约束允许有一个非空值
    主键约束每张表只能有一个,唯一约束可以有多个

    在创建表时设置唯一约束

    CREATE TABLE table_name (colnum_name datatype UNIQUE,...)
    create table userinfo_u
    (id varchar2(10) primary key,
    username varchar2(20) unique);
    create table userinfo_u1
    (id varchar2(10) primary key,
    username varchar2(20),
    constraint un_username unique(username));
    

    在修改表时添加唯一约束

    ADD CONSTRAINT constraint_name UNIQUE(column_name);

    删除唯一约束

    DISABLE|ENABLEND CONSTRAINT constraint_name;
    DROP CONSTRAINT constraint_name;
    

    检查约束
    让字段的值符合一定条件,具有实际意义
    创建表时设置检查约束

    CREATE TABLE table_name (colnum_name datatype CHECK(expressions),...);
    create table userinfo_c
    (id varchar2(10) primary key,
    username varchar2(20),
    salary number(5,0) check(salary>0));
    CONSTRAINT constraint_name CHECK(expressions)
    create table userinfo_c1
    (id varchar2(10) primary key,
    username varchar2(20),
    salary number(5,0),
    constraint ck_salary check(salary>0));
    

    在修改表时添加检查约束

    ADD CONSTRAINT constraint_name CHECK(expressions);
    create table userinfo_c3
    (id varchar2(10) primary key,
    username varchar2(20),
    salary number(5,0));
    alter table userinfo_c3 add constraint ck_salary2 check(salary>0);
    

    删除检查约束

    DISABLE|ENABLEND CONSTRAINT constraint_name;
    DROP CONSTRAINT constraint_name;
    

    第六章 查询

    查询
    在sqlplus中设置格式
    别名

    COLUMN column_name HEADING new_name

    数据格式,字符类型只能设置显示长度 a10
    COLUMN column_name FORMAT dataformat

    去掉格式

    COLUMN column_name CLEAR

    DISTINCT 去掉重复行
    通用通配符(_,%)一个_代表一个字符,%代表多个字符
    IN 范围查询后加列表,查询列表内的内容

    case when 
    decode()
    select username ,decode(username,'aaa','计算机部门','bbb','市场部门','其他')as 部门 from users;
    
    本性的苏醒,往往在遭遇真实之后。
  • 相关阅读:
    一个基于C++11的定时器队列(timerfd,poll实现)
    Mysql学习(一)添加一个新的用户并用golang操作Mysql
    epoll使用详解
    基于C++11实现线程池的工作原理
    ubuntu18.04初始化配置
    muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor
    muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
    muduo网络库学习笔记(三)TimerQueue定时器队列
    关于 JavaScript 的 null 和 undefined,判断 null 的真实类型
    vue 双向数据绑定原理
  • 原文地址:https://www.cnblogs.com/chance88/p/6550259.html
Copyright © 2011-2022 走看看