您的位置:首页 > 数据库

orcale数据库的简单操作语句

2017-03-22 09:05 204 查看
//创建用户 : 

    
        create user c##名字 identified by 密码
;
        //命名规则 : 
            1 名字必须以字母开头,
            2 长度不能超过30个字符(60字节),
            3 不能使用oracle的保留字<
            4 只能使用a-z,A-Z, 0-9,$,#,_,等...
 
//切换当前用户 : 
 
            connect 用户名/密码@网络服务器(orcl);
 
//oracle数据类型 : 
    
        number : 整型值  插入值的时候 直接 (22,33,4,45,...就行)
        varchar2 : 字符型 插入值的时候 '必须用单引号括起来';
    number : 
 
        number(5,2);//一共5位数字,其中有两位是小数,范围是(-10^38 ~ 10^38);
        number(5);//就是规定有五位数字,没有小数 默认是number(5,0);
    
    char : 
 
        //查询快,但是浪费空间
        char:定长,2000字符(4000字节),字符串char(5);//可以设置5可 但是内容必须是 '内容',用单引号括起来
 
    varchar2 : 
 
        varchar2:变长,4000字符(8000字节);
        varchar2(20 byte);//规定能写20个字符 但是只能是byte类型(字节型),但是内容必须是 '内容',用单引号括起来
 
    clob : 
 
        clob(characterlarge object);//字符型大对象,最大4G
 
    date : 
 
        date;//时间格式,values()赋值的时候,可以用这个更改格式 : to_date('20-2-81','DD-MON-RR');
 
    blob : 
        blob://二进制数据电影,图片,音乐,4G不会放到数据库里面,文件服务器
 
//创建表单 : 
    在当前用户下创建表单
    create table 表名字(id number(5,2), name varchar2(20 byte));//创建一个表单,里面有两列,第一列是id 是数值型 切共有5位数字,并有两位是小数,三位是整数 ,第二列是name 字符型,能输入20个字节,必须是字节
 
//更改表名字 : 
 
    rename 旧表名 to 新表名;
 
zeng : 
//增 :
    //创建用户 : 
    
        create user c##名字 identified by 密码 ;
        //命名规则 : 
            1 名字必须以字母开头,
            2 长度不能超过30个字符(60字节),
            3 不能使用oracle的保留字<
            4 只能使用a-z,A-Z, 0-9,$,#,_,等...
 
    //为用户授权 : 权限
 
        grant connect,resource,unlimited tablespace to c##名字 container=all;//所有权限
 
    //grant 权限 to c##用户名:
 
        connect:链接(登陆) 权限
        resource:数据/源 权限 (对数据的 增 删 改 查 )
        unlimited tablespace : 表空间 权限
 
    // grant 权限 传递
        
        grant 权限 to 用户名 with grant option;//它也就有给别人权力的权力,但是权力不能超过他自己(本身)
 
    //设置用户使用的表空间 : 
        
        alter user 用户名 default tablespace users;
        alter user 用户名 temporary tablespace temp;//临时表空间
 
    //创建表单 :
 
        create table 表名(属性 number(5,0)/*数据类型五位数,且没有小数*/ , 属性 varchar2(4 byte)/*数据类型,字符型,只能输入4位,必须是字节格式*/)
 
    //往表里面添加行(内容) : 
        
        insert into 用户名.表名(属性1,属性2.../*可选的*/)values(值,值...);
 
    //往表单里添加一个字段 : (添加一个列/属性)
 
        alter table 表名 add ("名字" number(3)/*类型,规定内容格式*/);
 
    //多个插入 : 
 
        insert into 新表名(字段名) select 列 from 表名 where 行限定条件(不是所有数据,年龄段,某个部门)//
    如 : insert into emp(id) select age from emp where id = 33;//把emp表中 id列值为33,对应的那些age的值,添加到emp表的id列中
 
    //备份表 : 
 
        create table 表名 as select * from 表名;
 
    //模拟中的数据复制 : 
 
        insert into 表1(属性1,属性2...) select * from 表2;//表1后面属性个数是多少,表2就必须是多少,而且数据类型也必须完全相同 , 然后把表2里面列的数据类型的值,添加到和表1中对应列的数据类型相同的那一列的后面(追加行 )
        1 insert into emp (id/*我这个id是number(5)类型,并且只能写5个数字*/) select * from emp2;//表2 里面必须有一个number(5)类型的列,并且也只能写5个数字
        2 insert into emp (id/*我这个id是number类型*/) select hao from emp2;//hao这个列 必须和id列的数据类型完全相同,然后把hao那一列的数据,在id哪一列的后面,追加
 
shan : 
//删 :
 
    //删除用户和表 : 
      
        //删除用户 只能用sys用户才能删除,因为只有sys用户有删除别的用户的权利
        drop user 用户名 cascade;//用户和表一起删除
 
    //删除表 : 
 
        drop table 用户名.表名;//删除表
 
    //删除权限 :
 
        revoke 操作名(权限) on 表名 from 用户名;
 
    //删除一个表的字段 : (删除一个列/属性)
 
        alter table 表名 drop column 列名;    //强烈建议不要对成熟的系统这么做
 
    //删除行 : 不定条数
    
        delete from 表名 where 行限定条件;
            限定条件 如 : name那一列为Kay的 全部删除
        delete from emp where name = 'Kay';
 
    //删除表的数据
 
        truncate table 表名;    //相当于删除表和数据然后重建表.
 
gai : 
//改 :
 
    //更改表名字 : 
        
        rename 旧表名 to 新表名;
 
    //切换当前用户 : 
 
        connect 用户名/密码@网络服务器(orcl);
 
    //更改字段(列)的类型或者名字 : 
 
        alter table 表名 modify (属性 类型);
            如 : alter table student modify (sex number(1));
 
    //更改列上的值 : 
 
        update 表名 set 列名=列值改变量(+-*/), 字段2,字段3, where 行限定条件;
            如 :  update 表名 set 列名='值' where id='B0002'(限定条件,id为B0002的 都会把前面指定的属性的值更改);
 
            1  update 表名 set (job,sal,comm/*列名*/)= (select job,sal,comm from/*查看三个列*/ emp where ename='clock'/*ename为'clock'*/) where ename ="scott"/*enamel为'Scott'的*/;//
 
            1 --> update 表名 set (job,sal,comm)= (select job,sal,comm from emp where ename='clock') where ename ="scott";//先查ename为'clock'的(区分大小写),获取job,sal,comm,对应的值,再把这些值更改(赋值)到 ename为'scott'
对应的job,sal,comm的列值中
 
cha : 
//查 :
 
    //查看当前登陆用户 : 
        
        show user;
 
    //查看当前用户下所有的表单 :
 
        select * from user_tables;
 
    //查看你能管理的所有用户 : 
    
        select * from all_users; 
 
    //查看数据库里面的所有用户 : 
 
        select * from dba_users;//前提是 你登陆的是sys或system号(用户);
 
    //查看数据库里面的所有表
 
        select 表名 from dba_tables;//数据库所有表,包括系统表,前提是 你登陆的是sys或system号(用户);
 
    //查看表头 : 
 
        desc 表名;//查看表头(也就是列)
where_and : 
    //筛选数据,多选, 查询空值 (后面只能用null 这是一个语句)
 
        select * from 表名 where 列(属性) is not null;//不为空的
        select * from 表名 where 列(属性) is  null;//为空的
        //查看某列的属性为空(不为空)的所有数据
 
where_and_or : 
        or : 或者 或
        >,>=,<,<=,= : 大于,大于等于,小于,小于等于,等于;
    select * from 表 where (列 >/*</>/=(大于或等于或小于)*/值 or 列 = 值) and 列 like 'j%';// 
        如 : select * from emp where (id>20 or age = 19)and name like 'j%';//查看emp表中 id列的值大于20或age列的值为19的 并且 name列的值以j开头的所有的行的属性 
 
    //指定查询 : 
 
        select 列限定(就是列) from 表限定(就是表) where 行限定(就是一行中某一个属性);    //数据限定条件区分大小写,java限定大小写,select什么就输出什么
        1 select id,name from emp where job = 'CLERK';//查看 job(列)为'CLERK'的哪一行(或多行)的id值和name值
 
        2 select * from 表 where 列(列限定/表头) < 7800 and 列>2000;//(*就代表输出所有列的属性) 输出 某表中 某列上的值小于7800 且 某列的值大于2000 的所有列的属性
 
    //查询特定列 : 
 
        select 列1,列2,列3... from 表 where 行限定;(行限定 : 就是某一列上的值 )
        如 :
            select id,name from emp where sex = '男';//查看性别为'男'的 id和name属性
 
distinct : 
    //单列查询 : (去除重复)
 
        select distinct 列限定 from 表名 where 行限定(z只能单行查询)
    
like : 
 
    //匹配字符查询 : (就是筛选)
 
        % : 匹配多个字符 有两个意思 1 可以匹配任意位字符
                                    2 可以匹配每位上面的任意字符
        _ : 匹配一个字符
 
       1 select * from 表名 where 限定列 like ''%k%';//查看某个表中某个列的属性值,包含k的所有的行的属性
 
       2  select * from 表名 where 限定列 like '__k%';//两个下划线(代表两位) 查看某个表的某个列的值, 值的第三位是k的所有的行的属性
 
in : 
 
    //枚举查询
 
        select * from 表 where 列 in(值(1),值(2),值(3)...);//输出某表中 某列的值为 1 或者 2 或者 3 的所有的行的属性
        select * from emp id in(22,42,66);//输出emp表中 id 列的值为22或42或66的所有的行的属性
 
    in_and : 
        >,>=,<,<=,= : 大于,大于等于,小于,小于等于,等于;
        select * from 表 where 列 in(值(1),值(2),值(3)) and 列 >/</=(大于或小于或等于) 值;
        如 : select * from emp where id in(22,33,44) and age >19;//查看emp表中 id列的值为22或33或44 并且 age(年龄)列的值 大于19的 所有的行的属性 
 
    //对查看到值进行运算 : 
            
            +*-/ : 运算查看的值(查是查 算是算 不是一回事,并不会改变表单里面的值,只是更改了输出方式)//但是 该列的数据类型必须是数字(number类型)
            select 列+20 '年终奖' , name from 表名;
            select 列+(加/减/乘/除)20(加减乘除对应的值) '年终奖'(给算好的结果(输出时候的列)起个名字) ,name from 表名; 
            select sal+20 '年终奖' , name from emp;//查看emp表中的sal值和name值 ,并且把sal的值都加20 然后起个列名为年终奖 
 
    nvl : 
        //!!!!重点 : 如果 某列某行 有个空值 , 那么运算结果肯定为空值
        nvl(列,0) : 把某列上的空值 赋值为0
        select 运算列1 + nvl(运算列2,0)*12 "年工资",列 from 表;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: