Oracle基本操作SQL

1.创建表空间

      CREATE TABLESPACE TS_CNFOL

    DATAFILE 'G:/ORACLE/product/10.1.0/oradata/cnfol/TS_CNFOL.DAT' SIZE 10M REUSE

   AUTOEXTEND ON NEXT 500K MAXSIZE UNLIMITED;

2.创建用户
CREATE USER cnfol IDENTIFIED BY cnfol             --用户名及密码都为cnfol
DEFAULT TABLESPACE TS_CNFOL                     --该用户使用TS_CNFOL表空间
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON TS_CNFOL;                 --可以使用这个表空间的所有配额

3.分配权限
GRANT CONNECT TO cnfol WITH ADMIN OPTION;   --cnfol可以把权限再分配给别人
GRANT RESOURCE TO cnfol;
GRANT CREATE ANY TABLE TO cnfol;
GRANT INSERT ANY TABLE TO cnfol;
GRANT SELECT ANY TABLE TO cnfol;
GRANT UPDATE ANY TABLE TO cnfol;
GRANT DELETE ANY TABLE TO cnfol;
GRANT ALTER ANY TABLE TO cnfol;
GRANT DROP ANY TABLE TO cnfol;
GRANT CREATE ANY INDEX TO cnfol;
GRANT DROP ANY INDEX TO cnfol;
GRANT EXECUTE ANY PROCEDURE TO cnfol;
GRANT CREATE ANY SEQUENCE TO cnfol;
GRANT DEBUG CONNECT SESSION TO cnfol;  
--可以单步调试函数或者存储过程

4.剥夺权限

    REVOKE DEBUG CONNECT SESSION FROM cnfol;

5.增、删、改表的列
ALTER TABLE TAB_NAME ADD(COL1 VARCHAR2(10) NOT NULL,COL2 NUMBER);
ALTER TABLE TAB_NAME MODIFY(COL1 VARCHAR2(100));
ALTER TABLE TAB_NAME DROP(COL2);

6.禁用、启用、删除约束
ALTER TABLE TAB_NAME DISABLE CONSTRAINT CK_TAB_STUDENT_ADDR;
ALTER TABLE TAB_NAME DISABLE PRIMARY KEY;
ALTER TABLE TAB_NAME ENABLE PRIMARY KEY;
ALTER TABLE TAB_NAME DROP CONSTRAINT CK_TAB_STUDENT_ADDR;

7.获得当前时间

    select sysdate from dual

 

8.表数据转移(把某张表的数据拷贝到另一张表中)

    insert into newtable(field1,field2) select field1,field2 from oldtable [where ...]

 

9.时间段操作

 

    select * from table1 where to_char(myDate,'yyyy-mm-dd') between '2007-01-01' and '2007-12-30'

 

10.解除用户锁定

    alter user wangwz account unlock

 

11.拷贝表结构

    create table tablename as (select * from oldtable where 1=1)要数据则用1=1,不要数据用1=2

 

12.添加字段

    alter table tablename add(col1 varchar2(10) not null,col2 number(4));

 

13.打印数据

    dbms_output.put_line('XXX');

14.删除表中所有记录

    truncate table tablename

15.SQL中含有单引号

    insert into tablename(username) values('i''m going');--插入一个单引号用两个单引号表示

16.求一张表中,符合相同条件的记录列表(在创建唯一约束之前,可用这个SQL来判断是否有违反你要建立的约束条件的记录)

    SELECT * FROM tabname a WHERE ROWID > ANY (SELECT ROWID FROM tabname b WHERE a.field1= b.field1 AND a.field2 = b.field2)

17.建立唯一约束

      ALTER TABLE tabname ADD CONSTRAINT uniquename UNIQUE (field1,field2)

18.建表SQL

      create table tablename
(
    sid number(6) primary key,
    ssex char(2),--存汉字就得两字节
    sbirthday date
)

19.创建序列

      create sequence seqname
minvalue 1
maxvalue 9999999999
start with 1--起始值
increment by 1--每次累加值
cache 20--缓存大小

      nocycle;--当序列达到最大值时不循环

20.创建函数

    CREATE OR REPLACE FUNCTION functionname RETURN NUMBER AS

        V_SEQ NUMBER;

    BEGIN

        SELECT seqname.NEXTVAL INTO V_SEQ FROM DUAL;

        RETURN V_SEQ;

    END;

21.创建存储过程

    CREATE OR REPLACE PROCEDURE proname is

        v_time varchar2(10);

    begin

        insert into tablename1(tblid,field1,field2,field3)

            select seqname.nextval,field1,field2,field3 from (select [位置1] field1,field2,field3 from where field1=1)

                where rownum<15

        commit;  

    end;

22.把表1的数据导到表2,但表2的主键由序列生成

    实现见上面的第19点和21点

    注:如果functionname.nextval要写在上面的位置1,由于functionname.nextval不能用在子查询中,所以可以做个函数,该函数就返回序列的当前值即可解决。处理流程参照上面的第19点到21点(ORA-02287:sequence number not allowed here)

23.给表加注释

    comment on table tablename is '注释';

24.给字段加注释

    comment on column tablename.field1 is '注释';

25.all的用法
    select * from tablename where 5>all(select tblid from tablename)
    上面这句SQL的效果是:当
select tblid from tablename所有的值都小于5,则搜索出tablename中所的数据
26.any的用法
    select * from tablename where 5>any(select tblid from tablename)
    上面这句SQL的效果是:当
select tblid from tablename作意一个值小于5,则搜索出tablename中所的数据
27.判断指定字符在当前编码方式下占的字节数
    select lengthb('中') from dual;
28.查询当前数据库采用的字符集
    select userenv('language') from dual
29.统计出表中某字段相同的记录列表
   
select field1,count(*) from tabname group by field1 having count(*)>1
30.字符串转日期
    select to_date('2007-01-01 14:00:11','yyyy-mm-dd hh24:mi:ss') from dual
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 11g是一种关系型数据库管理系统,具有强大的数据管理和查询功能。以下是关于Oracle 11g SQL基础知识的回答。 SQL(Structured Query Language)是一种用于与数据库进行交互的标准语言。在Oracle 11g中,SQL被用于进行数据的创建、修改、删除和查询。 首先,创建表是操作数据库的基础之一。通过使用CREATE TABLE语句,我们可以指定表的名称、列的名称和数据类型。例如,创建一个名为"employees"的表,包含员工的姓名、年龄和工资信息,可以使用以下SQL语句: CREATE TABLE employees ( name VARCHAR(50), age INT, salary DECIMAL(10,2) ); 接下来,可以使用INSERT INTO语句向表中插入数据。例如,插入一条员工信息的SQL语句如下: INSERT INTO employees (name, age, salary) VALUES ('John', 30, 5000.00); 为了查询表中的数据,可以使用SELECT语句。SELECT语句允许我们指定要检索的列,使用FROM关键字指定表的名称,以及可以使用WHERE子句来加入筛选条件。例如,检索所有员工的姓名和工资信息的SQL语句如下: SELECT name, salary FROM employees; 还可以使用UPDATE语句修改表中的数据。例如,将员工John的工资提高到6000.00的SQL语句如下: UPDATE employees SET salary = 6000.00 WHERE name = 'John'; 最后,可以使用DELETE语句删除表中的数据。例如,删除所有年龄小于25岁的员工信息的SQL语句如下: DELETE FROM employees WHERE age < 25; 除了上述基本的SQL语句,Oracle 11g还有其他高级功能,如聚合函数、连接、子查询、视图和索引等。这些功能可以帮助我们更高效地操作和查询数据。 简而言之,Oracle 11g SQL基础涵盖了表的创建、数据的插入、查询、修改和删除。通过掌握这些基础知识,我们可以使用SQL语言进行数据管理和操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值