Oracle简单操作语句(增删改查),和代码例子

//创建用户 :
    
        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 表;
        select sal(工资) + nvl(jiang(奖金列),0) ‘年工资‘ ,name from emp;//查看emp表中的sal列,和jiang列,和name列 , 并把sal列的值和jiang列的值相加(有的人奖金为空 , 就是没有,然后通过nvl(),就把空值赋值为0),然后算出来的结果起名(输出时候的列名)为 年工资 ,

order_by :

desc :

//给查到的数据,进行从大到小排序(是查到后,在排序,和表内容没关系)
        select * from 表名 order by  列 desc;//某列从大到小排序(只是输出的时候排序而已)

asc :

//给查到的数据,进行从小到大排序(是查到后,在排序,和表内容没关系)
        select * from 表 order by 列 asc;//某表的某列输出的时候从小到大排序(只是输出的时候排序)

as : (起名)

select 列,列*12 + nvl(列*12,0) as sy,  列 from emp order by sy 排序(asc/desc);//查看某个表的某些列,并对某些列进行了算数操作,并给算的结果起个别名 叫 sy列 ,然后再给这个sy列进行排序 asc(从小到大)/desc(从大到小)

//子查询 : 分页
    
    //几个查询运算,只能是number类型 ,返回值也都为int类型
    max :

max();//获取某一列的最大值  返回值为int类型
            如 : max(id);//获取id那一列的最大值

min :

min();//获取某一列的最小值  返回值为int类型
            如 : min(id);//获取id那一列的最小值

avg :

avg();//获取某一列的平均值  返回值为int类型
            如 : avg(id);//获取id那一列的平均值

sum :

sum();//获取某一列的值的总和    返回值为int类型
            如 : sum(id);//获取id那一列的值的总和

count :

conut();//当前列下有多少个值    返回值为int类型
            如 : conut(id);//获取id那一列有几个值
    
    group_by :

//以单列为标准分组

group by ;//以某一列为标准,进行分组   分组标准必须是查询条件中的列
        select 操作(列),操作(列).... ,分组列 from 表 group by 分组列;//分组列就是以某个列为标准分组,去除这一列的重复数据(是把相同数据的行,分为一组)
        select avg(sal),max(sal),deptno from emp group by deptno;

//以多列为标准分组

group by ;//以某几个列为标准,进行分组   分组标准必须是查询条件中的列
        select 操作(列),操作(列).... ,分组列1,分组列2 from 表 group by 分组列1,分组列2;//以多列为标准进行分组,就是分组列1进行分组(把相同的数据分为一组,并且 每个组里面不能有分组列2相同的数据 , 如 : id , name  每个id分组里面,不能有相同的name)
        select min(sal),avg(sal),max(sal),deptno,job from emp group by deptno,job;

having :

having ;//对统计结果进行过滤
        select 操作(列),操作(列).... ,分组列 from 表 group by 分组列 having 操作(列) 比较符 值;//就是限定条件  但是是对结果集进行的限定查询, 先分组,在从分组的基础上,进行限定
        select avg(sal),max(sal),deptno from emp emp group by deptno having avg(sal)>2000;(平均工资低于2000的部门号和平均工资)

//为用户授权 : 权限

grant connect,resource,unlimited tablespace to c##名字 container=all;//所有权限

//grant 权限 to c##用户名;
        connect:链接(登陆) 权限
        resource:数据/源 权限
        unlimited tablespace : 表空间 权限

//设置用户使用的表空间 :
        
        alter user 用户名 default tablespace users;
        alter user 用户名 temporary tablespace temp;//临时表空间

                               JDBC请看下一篇~

时间: 2024-10-17 17:35:03

Oracle简单操作语句(增删改查),和代码例子的相关文章

简单sql语句增删改查

查询所有 select * from 表名 插入数据 insert  into 表名  (字段1,字段2,字段3.......)  values  (值1,值2,值3.......) 修改数据 update 表名 set 字段1=值1 , 字段2=值2  where 字段=值 删除 DELETE FROM 表名称 WHERE 字段 = 值

Redis简单的数据操作(增删改查)

#Redis简单的数据操作(增删改查): 字符串类型 string 1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK 2. 获取: get key 127.0.0.1:6379> get username "zhangsan" 以下同理: 127.0.0.1:6379> set age 23 OK 127.0.0.1:6379> get age "23" 127.0.0

Mybatis实现简单的数据库增删改查操作

Mybatis实现简单的数据库增删改查操作 框架:mybatis(3.5.2) 数据库:mysql 工具:idea 1.新建一个maven项目,在pom文件中添加mybatis依赖及MySQL依赖 <!-- mybatis核心依赖 --> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId&g

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =

Oracle使用JDBC进行增删改查

Oracle使用JDBC进行增删改查 数据库和表 table USERS (   USERNAME VARCHAR2(20) not null,   PASSWORD VARCHAR2(20) ) alter table USERS   add constraint U_PK primary key (USERNAME) /**  * JdbcExample.java  *  * Provider: CoderDream's Studio  *  * History  *    Date(DD/

深入浅出MongoDB(六)java操作mongodb增删改查

java操作mysql数据库的代码我们已经了如指掌了,增删改查,java对mongodb数据库也是类似的操作,先是数据库连接,再是进行操作. 首先我们进入进入admin数据库,然后建立自己的数据库testMongoDb,进入admin数据库后,就可以直接进入testMongoDb,因为用户可以进入系统的数据库,就是超级管理员,use testMongoDb后,为该数据库设置用户名和密码,db.addUser('root','root'),这样我们在程序中连该数据库,并实现增删改查,代码如下所示.

【Mybatis】简单的mybatis增删改查模板

简单的mybatis增删改查模板: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.sunee

js操作indexedDB增删改查示例

js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var req = indexedDB.open("TestDB", 1); req.onupgradeneeded = function(e) { var db = req.result; // var store = db.createObjectStore("student"

前端的CRUD增删改查的小例子

前端的CRUD增删改查的小例子 1.效果演示 2.相关代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .box{ width: 300px; margin: 0 auto; } ul{