SQL入门经典 第三章

3.7.1 测验

1. 下面这个CREATE TABLE命令能够正常执行吗?需要做什么修改?在不同的数据库(MySQL、Oracle、SQL Server)中执行,有什么限制吗?

Create table EMPLOYEE_TABLE as:
   (ssn              number(9)           not null,
    last_name        varchar2(20)        not null,
    first_name       varchar2(20)        not null,
    middle_name      varchar2(20)        not null,
    st address       varchar2(30)        not null,
    city             char(20)            not null,
    state            char(2)             not null,
    zip              number(4)           not null,
    date hired       date);

不能正常执行,有几处语法错误。错误列表如下:
1.其中的AS,不应该出现在这个语句里。
2.字段MIDDLE_NAME应该为NULL。
3.字段ST ADDRESS应该改为ST_ADDRESS。
4.以节约存储空间的角度看,CITY字段采用VARCHAR2更好一些。
5.ZIP字段的长度应该是5。
6.字段DATE HIRED应该改为DATE_HIRED。
修改后,此命令可在Oracle中执行。若要在MySQL中执行,需把VARCHAR2改为VARCHAR。

2. 能从前面的表里删除一个字段吗?

可以。以实现文档为准。

3.在前面的表EMPLOYEE_TBL里创建一个主键约束应该使用什么语句?

ALTER TABLE EMPLOYEE_TBL
ADD CONSTRAINT EMPLOYEE_PK PRIMARY KEY(SSN);

4.为了让前面的表EMPLOYEE_TBL里的MIDDLE_NAME字段可以接受NULL应该使用什么语句?

ALTER TABLE EMPLOYEE_TBL
MODIFY MIDDLE_NAME VARCHAR(20), NOT NULL;

5.为了让前面的表EMPLOYEE_TBL里添加的人员记录只能位于纽约州(‘NY’),应该使用什么语句?

ALTER TABLE EMPLOYEE_TBL
ADD CONSTRAINT CHK_STATE CHECK(STATE_‘NY’);

6.要在前面的表EMPLOYEE_TBL里添加一个名为EMPID的自动增量字段,应该使用什么语句,才能同时符合MySQL和SQL Server的语法结构?

ALTER TABLE EMPLOYEE_TBL
ADD COLUMN EMPID INT AUTO_INCREMENT;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值