sql——创建和操作表

1、create database语句

创建一个名为PAYMENTS数据库。

create database PAYMENTS;

2、设计数据库

(1)建立数据字典

        大多数 RDBMS 中都提供了生成数据字典的工具包或有说明来告诉你如何安装它。

(2)建立关键字段

        如果列的内容在表中从头至尾都没有重复 ,那它就是主关键字。外关键字则是在自己的关系中不唯一标识记录,但在其它关系中可用作对匹配字段链接的一种关键字。

假定你有三张表:BILLS,BANK_ACCOUNTS,COMPANY。结构 如下表:

BillsBank_AccountsCompany

NAME, CHAR(30)

AMOUNT, NUMBER

ACCOUNT_ID,NUMBER

ACCOUNT_ID,NUMBER

TYPE, CHAR(30)

BALANCE, NUMBER

BANK, CHAR(30)

NAME, CHAR(30)

ADDRESS,CHAR(50)

CITY, CHAR(20)

STATE, CHAR(2)

在 Bills 表中的主关键字段为NAME 字段,这一字段是没有重复的,因为你只可能有 一个支票的来对应 AMOUNT 。 ACCOUNT_ID 字段则是 BANK_ACCOUNT 的主关键字,COMPANY表中的 NAME 字段是主关键字。

外部关键字:在 BILL 表中的 ACCOUNT_ID 与 BANK_ACCOUNT 表相关连,而 NAME 字段则将 BILL 表与 COMPANY 表相关连。

3、create table语句

3.1、创建BILLS表:

CREATE TABLE BILLS (
    NAME CHAR(30),
    AMOUNT NUMBER,
    ACCOUNT_ID NUMBER);

(1)表名:当使用 PERSONAL ORACLE 来创建一个表的时候,表的名字不超过30个字符长度,由于 ORACLE 对大小写不敏感,命名时根据需要使用大写或小写,表的第一个字符必须是大写,其余的字符则还可以有下划线 #、 $ 、@。表的名字不能是oracle的保留字(如select等)。

oracle支持的数据类型:

数据类型说明
char可以存储长度为 1~255 个字符的字符串,空格会被填充到字符串的右边以保证其内容满足定义的长度。
date包括日期的世纪、年、月、日、时、分、秒
long可以支持长达 2G 的字符串
long raw可以存储长达 2G 的二进制内容
number零、正值或负值的定点或浮点数
raw可以存储长不过 255 个字节的二进制代码
rowid用一个十六进制的数来标明当前行在表内的唯一地址
varchar变长的字母或数字 长度可以从 1 到 2000

注:long数据类型在其他的数据库系统中常被称为备注类型,主要用来存储大量的可以在稍后返回的文本内容。

long raw类型在其他数据库系统中常被称为大二进制类型(BLOB),它可以用来存储图形、声音、视频数据,尽管关系型带护具库挂你系统最初不是为它们而设计的,但是多媒体数据可以存在BLOB(long raw)类型的字段中。

ROWID常用在可以将你的表中的每一个记录都加以唯一标识的场合,许多关系型数据库管理系统用COUNTER(ACCESS)或IDENTITY(SQLSERVER)来表示。

(2)空值属性

SQL 也可以让你鉴别在一个列中是否已经存入的数值,NULL 只是一个修饰,因为如 果一个字段的内容为 NULL 的话实际上是说这个字段中没有东西也没有。

在建立表的时候,大多数数据库管理系统允许你用 NOT NULL 来指明字段是否为非空 属性,NOT NULL 的意思就是在当前表的该字段中不能有任何记录存在空值,也就是说在 当前表中的该字段的每一个记录中都应该确实存在数值。

(3)唯一属性

唯一属性值的列一般称为该数据表的主键。在选择主键时应注意:

ORACLE 提供了一个 ROWID 字段,它对于每一行均会自动递增。默认情况下它总是一个唯一的数值。对于整数值的归并操作要远远快于对一个度为 80 个字符的字符串的归并操作。因为整数的存储长度小于字符串,所以最终归并的结果集也将小于字符串的归并结果集。使用 ROWID 字段你可以看到表的组织情况,而字符则会产生数字输入的问题。

3.2、表的存储与尺寸的调整

        大多数 RDBMS 都设定了表的默认大小和存储的定位。如果你没有指定表的大小和存储大小它就会采用默认值。它可能是非常不合适的,特别对于大型的表来说更是如此。默认大小根据解释器和不同而不同 。

使用STORAGE创建的表可以设定表:

CREATE TABLE TABLENAME(
    COLUMN1 CHAR NOT NULL,
    COLUMN2 NUMBER,
    COLUMN3 DATE)
    TABLESPACE TABLESPACE NAME
    STORAGE
    INITIAL SIZE,--表的初始长度(最初分配的空间)
    NEXT SIZE,--追加的长度
    MINEXTENTS value,--指定表的最小长度
    MAXEXTENTS value,--指定表的最大长度
    PCTINCREASE value);--指明表每次追加的百分比或进行下一次的追加

ORACLE 中你可以指定需要存放的表的大小,定夺的依据是可用空间的大小,经常是由数据库管理人员来决定。

3.3、用一个已经存在的表来建表

当你对表进行临时改动需要将数据选出或当你要创建的表与已有的表类似并且其内容也类似时利用已经存在的表创建表会比创建一个新的表更加的方便。oracle中的语法为:

CREATE TABLE NEW_TABLE(FIELD1, FIELD2, FIELD3)

                             AS (SELECT FIELD1, FIELD2, FIELD3

                            FROM OLD_TABLE <WHERE...>

例如:利用上表BILLS表中的AMOUNT小于50的记录创建一个新表。

CREATE TABLE NEW_BILLS(NAME, AMOUNT, ACCOUNT_ID)
AS (SELECT * FROM BILLS WHERE AMOUNT < 50);

使用 SQL Server 的 Transact-SQL 来对它进行举例。语法输入为:

insert new_bills
select * from BILLS where AMOUNT<50
go

        go 语句在 SQL SERVER 中是处理 SQL 缓冲区内指令的命令,它的作用等同于在 ORACLE 中的分号。

4、alter table语句

        ALTER TABLE 语句可以加入一列到已经存在的表中,以及修改已经存在的表中的某一列。

例如:

向 NEW_BILLS 表中加入一个新列:

ALTER TABLE NEW_BILLS
ADD COMMENTS CHAR(80);

        执行这条语句后,会加入一列名为COMMENTS,长度为80个字符的字段,该字段会加在已有字段的右边。

ALTER TABLE可以将某一列由NOT NULL改成NULL,但如果想把列NULL改成NOt NULL,则需要指定的字段不能有空值。

将某一列修改为NULL的语法为:

ALTER TABLE table_name MODIFY (column_name data_type NULL);

5、drop table语句

drop table可以删除一个指定的表并且与之相关的索引和视图。一般用于删除创建的临时表,并且已经进行完毕了全部计划工作法的时候。

例如:删除news_bills表。

drop table news_bills;

        如果你想正确地删除一个表,那么在删除表的时候最好给出它的所有(所属的数据库)或工程的名字。使用如下语句:

drop table OWNER.new_bills;

6、drop database语句

删除数据库语句:

drop database database_name;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值