Oracle的数据操作语言

1、表的命名规则,

a.必须以字母开始;

b.必须是1~30个字符长度;

c.只能包含字母、数字、下划线_、美元符号$、和井号#;
d.不能使用Oracle的关键字;
e.同一个用户所拥有的对象之间不能重名;
创建表:create table 表名 (列    数据类型  约束);

SQL> create table stu (sid number primary key,sname varchar2(15) not null);

重命名表:rename   源表名  to  新表名;

删除表:drop table 表名;

克隆表

1.只要表结构,不要表数据;

create  table  表名   as  select  *  from  源表  where  1=2(这里只要是不成立的条件都可以);

2.要表结构和数据

create table   表名   as  select  *  from  源表 ;

2.insert 语句

使用insert时,字段名列表的顺序可以随意指定,不需要按照表中字段的顺序列出,但是对应值列表一定要和字段名列表对应。

1、insert into 表名 (列1,列2....) values  ('值',‘值’);也可选择性的插入一些列,其他列就为空了,或者显性的写为null;

2、insert   into  表名  values('values');这种写法在values里面要把表中所有的列对应的值都写上;不建议使用

插入多行:就是通过insert子句后面接select子查询,将select子查询获取的结果一次性的插入表中。

insert  into  表名  select  字段名  from  表名;

SQL> create table a as select * from empbak;

表已创建。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

已选择14行。

SQL> delete from a where deptno between 20 and 30;

已删除11行。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

SQL> insert into a select * from empbak where deptno = 20;

已创建5行。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20

已选择8行。

3.update语句

update  表名  set  字段名=‘新的字段名’where  ‘条件’;如果不加where条件,那就会更改表中所有的数据,

SQL> update a set ename = '你好' where empno = 7902;

已更新 1 行。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7902 你好       ANALYST         7566 03-12月-81           3000                    20

已选择8行。

4.delete语句

delete  from  表名  where  条件;

SQL> delete from a where empno = 7902;

已删除 1 行。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7782 你好       MANAGER         7839 09-6月 -81           2450                    10
      7839 你好       PRESIDENT            17-11月-81           5000                    10
      7934 你好       CLERK           7782 23-1月 -82           1300                    10
      7369 你好       CLERK           7902 17-12月-80            800                    20
      7566 你好       MANAGER         7839 02-4月 -81           2975                    20
      7788 你好       ANALYST         7566 19-4月 -87           3000                    20
      7876 你好       CLERK           7788 23-5月 -87           1100                    20

已选择7行。

以上的语句操作后并没有真正的提交到服务器,只有使用commit提交事务,才会永久性的写入数据库,所以当发现有错的时候,可以使用回滚(rollback)事务,一旦使用了commit,那就不可以回滚了

SQL> rollback;

回退已完成。

SQL> select * from a;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

已选择14行。





猜你喜欢

转载自blog.csdn.net/wxb52112181314/article/details/80810736
今日推荐