WEB开发网
开发学院数据库Oracle Oracle 10g数据库基础之基本DDL和DML语句 阅读

Oracle 10g数据库基础之基本DDL和DML语句

 2012-05-20 08:04:26 来源:WEB开发网   
核心提示:表的基本操作表有名称,表由行和列组成表是存放数据的最基本对象我们将一般的表叫做heap table(堆表),Oracle 10g数据库基础之基本DDL和DML语句,其含义为杂乱无章的存储数据,堆表是数据库的重要组织形式,但不会破坏数据,如果不改变数据类型,它有别于索引组织表和cluster表, 表的名称
表的基本操作

表有名称。

表由行和列组成

表是存放数据的最基本对象

我们将一般的表叫做heap table(堆表),其含义为杂乱无章的存储数据,堆表是数据库的重要组织

形式。它有别于索引组织表和cluster表。

表的名称规则

标准ASCII码可以描述

字母开头

30个字母内

不能是保留字

可以包含大小写字母,数字,_,$,#

不能和所属用户的其它对象重名。千万不要使用汉语做表和列的名称,因为汉语是ascii码所不能描述

的,ORACLE的核心是ASCII编写的,你使用汉语只是一时痛快,后患无穷。

Select object_name,object_type from user_objects;

user_objects当前用户所拥有的所有对象。不包含你建立的public对象。
select table_name from user_tables;

user_tables你自己的表,你有一切的权利。你所拥有的表。
select * from tab;span>

tab你所拥有的表和视图,显示的较简洁,列较少。

查询数据

SQL语言中最主要、最核心的部分是它的查询功能即SELECT语句。查询语言用来对已经存在于数据库中的数据按照特定的组合、条件表达式或次序进行检索。SELECT语句的完整语法如下:

SELECT [ALL|DISTINCT]] select_list
[INTO new_table_]
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC|DESC]]
插入数据

INSERT语句可以实现往数据库表中插入记录。有两种方法可以向一张表中插入数据。一种是用VA L U E S选择,直接给各字段赋值;二是通过一条查询语句,把从其他表或视图中选取的数据插入。INSERT语句的完整语法如下:

I N S E RT [INTO ]
{ TABLE_NAME | VIEW_NAME}[C O L U M N _ L I S T]
{ VALUES| VALUES_LIST | SELECT_STAT E M E N T }

1插入所有值

当向表中所有列都插入新数据时,可以省略列名表,但是必须保证VALUES后的各数据项位置同表定义时顺序一致。例如:

INSERT AUTHORS VALUES ( '123-45-6789 ','YANG','ZH','900555_1212')

2插入部分值

当向表中插入部分数据时,应在列名表处写出各个字段的顺序。例如:

INSERT PUBLISHERS (PUB_ID,PUB_NAME) VALUES('9975','UNBOUND PRESS')

3插入缺省值选项

方法一:为所有列插入缺省值

语法:INSERT TABLENAME DEFAULT VALUES

这种语法要求所有列必须具有IDENTITY属性、TIMESTAMP类型、允许NULL或赋有DEFAULT值。

方法二:为列插入缺省值

该列必须具有TIMESTAMP类型、允许NULL或赋有DEFAULT值。

INSERT shippers(companyname,phone)
VALUES ('yangzh coffee co.', DEFAULT )

4SELECT插入多行

可以用查询语句从其他表或视图中选出要插入的数据,并将它插入到表中。语法如下:

INSERT TABLE_NAME
SELECT COLUMN_LIST
FROM TABLE_LIST
WHERE SEARCH_CONDITIONS
修改数据

UPDATE语句实现更新数据库。其完整语法如下:

UPDATE { TABLE_NAME | VIEW_NAME}
SET [ { TABLE_NAME | VIEW_NAME}]
{COLUMN_LIST | VARIABLE_LIST }=expression
[WHERE CLAUSE]

例如:

update discounts set discount=discount+0.10 where lowqty>=100
删除数据

DELETE实现删除数据库表中的记录,其完整语法如下:

DELETE [FROM] TABLE_NAME WHERE SEARCH_CONDITIONS

例如:

delete sales where datediff(year,ord_date,getdate())>=3
实验1:建立简单的表,并对表进行简单ddl操作

该实验的目的是掌握简单的ddl语法.学习建立表,修改表,验证表,删除表

Create table语句建立表

要指明表的名称

列的名称

列的数据类型

列的宽度

是否有默认值

常见的数据类型

Char(n)定长

Varchar2(n)变长,最大到4000
Number(p,s)
Date
Long
Lob
raw

在现有表的基础上建立表

SQL> Create table t2
  2  as select ename name,sal salary from emp;
Table created
SQL>

t2诞生时就会有子查询中所查出的数据。

如果想改变列的名称,请用别名。

如果不想要数据,只建立表结构,请加一个假条件。

SQL> Create table t3 (c1,c2,c3) as
  2  Select ename,empno,sal from emp where 9=1;
Table created
SQL>
修改表结构

如果列为null,可以随便修改列的类型和宽度。

如果有数据,修改会受到限制。但不会破坏数据。

如果不改变数据类型,只改变宽度的话加大是可以的。

SQL> alter table t1 modify(name char(4));
Table altered
SQL> alter table t2 modify(name char(8));
Table altered

1 2 3 4  下一页

Tags:Oracle 数据库 基础

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接