SQL语言 - DDL篇

 一、创建数据库
 在Oracle中,数据库不需要手工使用SQL语句创建,而是通过Oracle自带的Database Configuration Assistant工具来进行创建。我们需要做的仅仅是在创建好的数据库中创建表的操作。当然删除表同样是使用该工具来进行,毕竟Oracle的数据库文件不只一个。而创建数据库的语法如下:
 CREATE database <数据库名>
 连接数据库:
 在MySQL中通过下面的语句来连接数据库:
 USE <数据库名>
 在Oracle中则可以通过下面的语句来连接数据库:
 CONNET 用户名/密码@服务名 [AS SYSOPER | AS SYSDBA]
 当然一般情况下不需要我们手工输入上面的语句,而是直接在弹出的表单窗口中输入即可。
 删除数据库:
 在MySQL中通过下面的语句删除数据库:
 DROP DATABASE <数据库名>
 而Oracle不支持上面这个语句。

 二、创建表
 * 下面我们创建一张名字为STUDENT的学生信息表
 CREATE TABLE STUDENT
 (
  ID CHAR(6)
  NAME VARCHAR2(30)
  SEX CHAR(4)
  BORN DATE
 )
 象这样,一张表就算创建好了.但是这样的表没有任何意义,至少我们还需要对这张表设置一些约束.
 
 * 设置主键约束
 至少我们应该给这张表设置一个主键,来区别每一行数据不能重复.首先我们可以在创建表的时候建立这种约束
 CREATE TABLE STUDENT
 (
  ID CHAR(6)  primary key
  .
  .
  .
 )
 我们还可以给主键设置一个名称
 CREATE TABLE STUDENT
 (
  .
  .
  .
  CONSTRAINT MYPRIMARYKEY PRIMARY KEY(NAME)  
 )
 同样如果要设置外键约束也是用相同的方法.
 
 * 设置非空约束
 除了设置主键约束之外,比如要求NAME必须不能为空,也就是不能为NULL.那么在创建表的时候,在每列后面加上NOT NULL即可,比如我们设置NAME列不能为空
 CREATE TABLE STUDENT
 (
  .
  NAME VARCHAR2(30) NOT NULL
  .
  .
 )

 *设置默认值
 比如在添加一行的时候,我们希望其中某一列在没有输入任何信息的情况下有个默认值,这个时候我们就需要在创建表的时候为这一列指定一个默认值.比如,在性别这一列上,如果添加的一行没有输入这一列的信息,那么该字段的值默认为"保密"
 CREATE TABLE STUDENT
 (
  .
  .
  SEX CHAR(4)  DEFUALT "保密" NOT NULL
  .  
 )
 这里除了加上个默认值后,同时还设置了该字段的非空约束.当然这个非空约束并不是必须的,这里加上这个约束的目的是为了说明在Oracle中,如果同时设置默认值和非空约束时,两个属性不能交换位置.

 三、表的修改
 上面是创建表的一些基本操作。如果表一但创建好了,并且里面已经有大量的数据,如果这时我们需要修改表的一些结构总不能将表删了再重新建一个吧。这个当然是不必的,我们可以通过ALTER来修改表的结构,如:增加列、删除列、修改列的约束、删除列的约束、修改列的约束等等。
  1、增加列
  比如现在我们需要增加一个创建时间的字段JLDATE,我们可以使用下面的语句来完成此操作:
  ALTER TABLE STUDENT ADD JLDATE DATE
  通过ALTER TABLE <表名> ADD来建立新列,后面的语句和创建表时建立列是一样的。这里需要注意的是建立新列时不要简单的将该列设置为NOT NULL,因为如果表中有数据,而创建列时又没有指定该列的默认值,那么就会造成该列的值违反NOT NULL这一约定。当然如果该表本来就没有任何数据则不会存在这个问题。
  2、删除列
  删除列的语句和增加列差不多:
  ALTER TABLE STUDENT DROP JLDATE DATE
  需要注意的是如果该列有外键约束、主键约束、默认值等等,则必须先删除该约束,该列才能被删除。如果是非空约束则可直接删除。
  3、删除约束
  比如我们删除该表的主键,使用下面的语句:
  ALTER TABLE STUDENT DROP CONSTRAINT MYPRIMARYKEY
  基本语法是:ALTER TABLE <表名> DROP CONSTRAINT  <约束名>,由于我在之前定义了主键的约束名MYPRIMARYKEY
,这里可以直接使用该约束名来删除。如果没有指定,那么系统会有个默认的约束名,可以自行查看。
  删除其他约束也是如此。
  4、修改列
  除了增加列、删除列之外,还可以修改列的属性。比如我们要将NAME列的字段改成CHAR类型,并将列的长度增加到35。
  ALTER TABLE STUDENT MODIFY NAME CHAR(35)
  需要注意的是Oracle数据库中,不能减少CHAR类型的字段长度,只能增大长度。
 四、删除表
 删除表的操作本身很简单,比如:
 DROP TABLE STUDENT
 但是如果该表与其他有关联,那么必须先删除该关联才能删除该表.

 下面是介绍SQL语言中的数据类型
 不同的RDBMS所支持的数据类型也不相同.下面主要介绍Oracle数据库所支持常用的数据类型.
 由于数据类型比较多,下面仅列出一些常用的数据类型:
 
 * 字符型
  char 这种字符数据类型比较常用.首先它是固定字符长度的,如果长度不足则以空格填满.
  varchar 这种字符类型是可变长度的,和下面介绍的varchar2一样,但这种字符类型不常用,代替它的是varchar2
  varchar2 存储可变长度的字符类型.varchar2和char是最常用的两种字符类型.
  上面的字符类型存储单位都是非Unicode,既1字节,比如1个字母或数字占长度1,而1个中文占长度为2.
 * 数字型
  number 在Oracle中比较常用的数字类型.它储存所有类型的数字,包括整数和浮点数、正数和负数、零。当有小数时,比如,指定一个长度为5并且小数占2位的数字类型,其格式为number(5,2)。其中5为数字的总长度包括整数部分和小数部分, 包括小数点。
  比如123.45这个数字就是合法的。而1234.45则不合法,因为这个数字的总长度为6超过了规定的类型长度。
  小数所占的位数是固定了的,也就是说只要规定了有小数,并指定了小数的长度,那么输入数据时无论是否加入小数,该小数都是占据了位置的。比如1234这个数就不合法,因为这个数的整数部分加上小数部分的长度超过了规定的类型长度,而123则是被允许的。
 * 时间
  date 这个是最常用的时间类型。其格式为YYYY-MM-DD,共占10位。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值