2025年oracle查看锁表SQL(oracle查看锁表SQL)

oracle查看锁表SQL(oracle查看锁表SQL)p style margin left 0001pt text align center strong 实验内容 strong p 目录 一 创建表语句 二 修改表语句 三 DML 语句练习 四 删除表语句 前置条件 在中创建了以自己姓名为名的本人用户

大家好,我是讯享网,很高兴认识大家。



 <p style="margin-left:.0001pt;text-align:center;"><strong>实验内容</strong></p> 

讯享网

目录

一、创建表语句

二、修改表语句

三、DML语句练习

四、删除表语句


前置条件:
        在中创建了以自己姓名为名的本人用户,并使用system用户完成了BOOKS和CUSTOMERS表的创建,在system.books表中已经插入数据(‘’,‘Oracle数据库管理与开发’,‘李真’,48)。
        注意:Oracle中的DML语句默认需要COMMIT提交事务之后才会保存到硬盘数据中,因此如果system.books表中的数据消失,请重新插入该数据之后,使用COMMIT;语句完成事务提交。

一、创建表语句

先登录system用户为本人用户(本文本人用户用*代替)进行CREATE TABLE权限授权。

如果缺少SELECT权限,还要登录sys账户为本人用户进行授权。

 参考:

SQL&gt; alter user * quota unlimited on BOOKTBS1;
用户已更改。
SQL&gt; GRANT SELECT ON system.books TO *;

以下操作使用本人用户完成

1.基于复制表创建的语句,在本人用户下复制SYSTEM.BOOKS表在表空间BOOKTBS1中创建一张BOOKS表,并复制其中的数据。

2.基于复制表创建的语句,在本人用户下复制SYSTEM.CUSTOMER表在表空间BOOKTBS1中创建一张CUSTOMERS表,只保留表结构,不包含其中的数据(查询数据时指定查不到数据的条件)。

SQL&gt; create table CUSTOMERS tablespace BOOKTBS1

        as select * from SYSTEM.CUSTOMERS where 1=2;

3.在BOOKTBS1表空间下创建如下几张表格,注意选择列级或者表级约束定义语句以创建表格中的约束。


讯享网

SQL&gt; ALTER TABLE CUSTOMERS ADD PRIMARY KEY (CUSTOMER_ID);

表已更改。

SQL&gt; CREATE TABLE ORDERS
  2  (ORDER_ID NUMBER(4) PRIMARY KEY,
  3  CUSTOMER_ID NUMBER(4),
  4  ORDERDATE  DATE NOT NULL,
  5  FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID));

表已创建。

SQL&gt; CREATE TABLE ORDERITEM
  2  (ORDER_ID NUMBER(4),
  3  ITEM_ID NUMBER(4),
  4  ISBN VARCHAR2(50) NOT NULL,
  5  QUANTITY NUMBER(4),
  6  PRIMARY KEY(ORDER_ID,ITEM_ID),
  7  FOREIGN KEY(ORDER_ID) REFERENCES ORDERS(ORDER_ID));

表已创建。

4.查看BOOKS表和ORDERITEM表的结构和其中的约束。 使用desc命令查看表结构;查询数据字典user_constraints查看表中的约束名称和约束类型。

SQL&gt; DESC ORDERSITEEM;
SQL&gt; DESC BOOKS;
SQL&gt; SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE
  2  FROM USER_CONSTRAINTS
  3  WHERE TABLE_NAME = ‘ORDERITEM’;
SQL&gt; SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE
  2  FROM USER_CONSTRAINTS
  3  WHERE TABLE_NAME = ‘BOOKS’;


二、修改表语句

1.删除表BOOKS中的cost列。

2.向表BOOKS中重新添加COST列,字段类型为NUMBER(6,2)。

3.向表BOOKS中添加category类别列,字段类型为VARCHAR2(10)。

4.修改BOOKS 表中title列的字段类型为VARCHAR2(20),并设置唯一约束UNIQUE。

5.使用表级约束添加语句,为BOOKS表中的author列添加UNIQUE约束,约束名为UA。

6.使用表级约束删除语句,删除上一步添加的约束UA。


三、DML语句练习

1.修改BOOKS表中之前插入的数据(‘’,‘Oracle数据库管理与开发’,‘李真’,48)的cost字段为460.5,category字段为计算机。

SQL&gt; UPDATE BOOKS

        2 SET COST=460.5,CATEGORY=‘计算机’

2.向BOOKS表、CUSTOMERS表、ORDERS表、ORDERITEM表中插入如下几条数据:

SQL&gt; INSERT ALL
  2  INTO BOOKS(ISBN,TITLE,AUTHOR,COST,CATEGORY)
  3  VALUES(‘’,‘计算机网络’,‘谢希仁’,500,‘计算机’)
  4  INTO BOOKS(ISBN,TITLE,AUTHOR,COST,CATEGORY)
  5  VALUES(‘’,‘三体’,‘刘慈欣’,320,‘小说’)
  6  INTO BOOKS(ISBN,TITLE,AUTHOR,COST,CATEGORY)
  7  VALUES(‘’,‘球状闪电’,‘刘慈欣’,360,‘小说’)
  8  INTO BOOKS(ISBN,TITLE,AUTHOR,COST,CATEGORY)
  9  VALUES(‘’,‘活着’,‘余华’,400,‘小说’)
 10  SELECT * FROM DUAL;
已创建4行。

SQL&gt; INSERT ALL
  2  INTO CUSTOMERS(CUSTOMER_ID,NAME,PHONE)
  3  VALUES(1,‘张三丰’,‘’)
  4  INTO CUSTOMERS(CUSTOMER_ID,NAME,PHONE)
  5  VALUES(2,‘张无忌’,‘’)
  6  SELECT * FROM DUAL;
已创建2行。


SQL&gt; INSERT
  2  INTO ORDERS(ORDER_ID,CUSTOMER_ID,ORDERDATE)
  3  VALUES(1000,1,TO_DATE(‘24-10月-2024’));
已创建 1 行。


SQL&gt; INSERT ALL
  2  INTO ORDERITEM(ORDER_ID,ITEM_ID,ISBN,QUANTITY)
  3  VALUES(1000,1,‘’,5)
  4  INTO ORDERITEM(ORDER_ID,ITEM_ID,ISBN,QUANTITY)
  5  VALUES(1000,2,‘’,10)
  6  SELECT * FROM DUAL;
已创建2行。

3.查询姓刘的作者编写的书籍信息,并按照价格降序排列。

 SQL&gt; SELECT * FROM BOOKS WHERE AUTHOR LIKE ‘刘%’ ORDER BY COST DESC;

4.删除顾客信息中,顾客名为张无忌的数据。

5.查询订单编号为1000的订单订购的书籍的ISBN号,书名和数量。

SQL&gt; SELECT BOOKS.ISBN,BOOKS.TITLE,ORDERITEM.QUANTITY

        2 FROM ORDERITEM,BOOKS

        3 WHERE ORDERITEM.ISBN=BOOKS.ISBN AND ORDERITEM.ORDER_ID=1000;

6.查询本人用户下ORDERITEM表中的约束名、约束类型和约束绑定的列。

SQL&gt; SELECT UC.CONSTRAINT_NAME, UC.CONSTRAINT_TYPE,

        2 CC.COLUMN_NAME FROM USER_CONSTRAINTS UC

        3 JOIN USER_CONS_COLUMNS CC

        4 ON UC.CONSTRAINT_NAME = CC.CONSTRAINT_NAME

        5 WHERE UC.TABLE_NAME = ‘ORDERITEM’; 


四、删除表语句

1.尝试使用本人用户删除system.books表,观察是否能够删除,思考如何解决?

答:不能删除;登录数据库管理员或者登录system用户删除system.books表,还可以通过为本人用户授予 DROP ANY TABLE 权限解决这个问题。

SQL&gt; DROP TABLE SYSTEM.BOOKS;

2.切换到system用户,删除system.customers表。

SQL&gt; DROP TABLE SYSTEM.CUSTOMERS;

表已删除。

3.为本人用户授权 drop any table系统权限,再切换到本人用户,使用本人用户尝试删除system.books表,观察是否能删除。答:能删除。

SQL&gt; DROP TABLE SYSTEM.BOOKS;

表已删除。


五、提交 

 SQL&gt; commit;

提交完成。


注:如有问题请在评论区或者后台留言! 

小讯
上一篇 2025-04-19 10:17
下一篇 2025-05-09 15:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151064.html