Oracle的基础SQL语句

1.cmd模式连接Oracle

2.表空间

(1)创建默认表空间

   create tablespace test1
        datafile 'd:\oracle\test1.dbf' --路径
        size 10m                       --大小
        autoextend on next 20m         --如果内存不够,每次增加20MB内存   
        maxsize unlimited;             --无限增加

(2)临时表空间

create temporary tablespace test2
         tempfile 'd:\oracle\test2.dbf'
         size 10m
         autoextend on next 20m
         maxsize unlimited;

(3)删除表空间

drop tablespace test2 including contents and datafiles;

3.用户

    说明:用户是由dba创建的:dba最高权限。
              新创建的用用户是没有任何权限,给相关权限才能执行相关操作。

(1)创建用户

创建用户的两种方式:
            --1.创建用户的同时指定表空间
            --2.创建用户不指定表空间。这时候该用户所在的表空间是系统默认表空间users

create user zz            --用户名
       identified by 123  --指定密码
       default tablespace test1  --指定默认表空间
       temporary tablespace test2 quota 20m on test1;  --指定临时表空间的同时给用户分配内存

(2)给用户分配内存

alter user zz quota unlimited on users;

(3)修改密码

alter user zz identified by 123;

注:dba可以修改任何普通用户的密码

(4)密码过期

alter user zz password expire;

(5)将用户上锁

alter user zz account lock;

(6)将用户解锁

 alter user zz account unlock;

(7)删除用户

drop user zz cascade;

注:cascade 用户内存在对象必修加这个参数,否则删除不了

4.权限

(1)授予登录权限

grant create session to zz with admin option;

注:with admin option:允许将权限授予其他用户

(2)收回权限

revoke create session from zz;

(3)多个权限同时授予用户

grant create session,create table to zz;

注:多个权限同时授予,那么每个权限之间逗号隔开

(4)多个权限同时收回

revoke create session,create table from zz;

5.角色: 角色是权限的集合,更方便的赋予用户权限

1.创建角色

create role lx;

2.给角色授权

grant create session,create table to lx;

3.通过角色给用户授权:

grant lx to test;

4.收回角色的权限

revoke create session,create table from lx;

5.收回用户权限

revoke lx from zz;

6.删除角色

drop role lx; 

6.dba权限 :最高权限

grant dba to zz;         
grant dba to lx;

7.符号和特殊字段

1.算数运算符 + - * /

先乘除后加减,优先括号

  select empno,ename,sal,sal+300
  from emp;
--原来的表中数据并未改变

2.null 不参加运算 运算值还是null

select ename,comm,comm+300 from emp

3.起别名 (唯一使用双引号的) 使用方法如下 可省略as

select ename as 姓名 from emp; 

起别名的注意事项

   (1.不能有空格,有的话双引号 

 (2.区分大小写
 (3.别名中特殊符号 必须加双引号   

4.连接操作符  ||  表里面的数据也会连接

 select ename||'薪水'|| sal from emp;

5.原意字符串

select ename|| ' is a '  || job from emp;

6.去重 distinct

select distinct deptno from emp;

7.数据类型

1.字符类型
                 

                   --char(固定长度,一般不用):name(6) 剩余长度会占用空间,1-2000
                  --varchar2 可变长度,多余长度会被释放。1-4000
                  --clob    可变长度 最大4g

2.数值类型
               

                  --number 没有指定长度,小数和整数都可以表示
                  --number(n) 只有一个参数 只能存储整数 -9999-9999
                  --number(p,s)p代表长度,s代表小数位数 总位数不大于p都满足
                        --1.s>0:只能存储小数,精确到s位,四舍五入 
                        --2.s<0:表示整数 小数点往左说s位 (5,-2) 153.123->200
                        --3.s=0 即一个参数
                        --4.p<s 小于1,小数点右边开始的s-p位必须是0 保留s位

3.日期类型
                 

                  -- date 年月日时分秒
                  --timestamp 时间戳   

4.default 默认值

8.创建和维护表

1. 两个条件
   

     --有create table权限
     --.用户要有内存大小:quota(限额)

2.语法

create table te1(
     --字段名  数据类型(长度)
     
     )

3.创建表dossier

create table dossier(
                  cid number(4) primary key,
                  cname varchar2(10),
                  brithday date,
                  weight number(5,2)
                  )

4. 给dossier 添加数据
             

                --1.指定具体字段 (oracle只能单条添加数据) 增删改必须事务提交(commit) 不提交 空指针,异常报错

 insert into dossier(cid,cname,brithday,weight) 
              values (1,'zz',to_date('2021-12-8 16:17:30','yyyy-mm-dd hh24:mi:ss'),24.12);
              commit;

                --2.不指定字段,即插入每个字段 to_date(参数,格式)

 insert into dossier
              values(2,'aa',to_date('2021-12-08','yyyy-mm-dd'),12.06);
              commit;

5.通过子查询创建表

              create table dossier1
              as 
              select * from dossier;--相当于复制
            --注 子查询创建表,如果子查询中有表达式必须起别名
           
              create table dept10
              as
              select *from dept
              where deptno=10;

6.引用其他用户的表

语法


                       select * from 用户.表;

7.修改表

              --1.添加新字段 在所有字段的后面
                       alter table dossier 
                       add (sex varchar2(10));
                       alter table dossier 
                       add (age number(4) default 18);
                       select * from dossier;
              --2.修改字段 字段只能调大不能变小
                       alter table dossier
                       modify(sex varchar(20))
                       --修改默认值  默认值的修改不会影响已经存在的行,只会影响新增加的行。
                       alter table dossier
                       modify(sex default '男');
                       commit;
              --3.删除列(字段) drop
                       --1.字段中有没有数据都可以删除
                       --2.表中至少保留一列
                       --3.列中删除后不能恢复
                       --4.被外键引用的不能删除
                       alter table dossier drop column sex;

8.重命名表                

   --语法 rename 原有列名 to 新列名

 rename dossier to dossier1;

9.截断表,删除表

   --只有表的创建者或用于 any drop table权限的可以删除


                   truncate table dossier;--DDL语句 删除表中所有数据且 不可以回滚 释放存储空间
                   delete                -- DML 可以删除指定记录,不释放存储空间,可以回滚
                   drop                 --删除的是数据库对象

9.SQL语言分为五大类:

DQL (Data Query Language-数据查询语言) - Select 查询语句不存在提交问题。
DML (Data Manipulation Language-数据操作语言) - Insert、Update、Delete,实现数据的“增删改。”
DDL (Data Definition Language-数据定义语言) - Create、Alter、Drop,实现表格的“增删改”。
DTL (Transaction Control Language-事务控制语言) - Commit、Rollback事务提交、回滚语句。
DCL (Data Control Language-数据控制语言) - Grant、Revoke 权限语句。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值