数据库——表和视图的创建与操作

表和视图的创建与操作

创建表的语法

表的基本创建语法如下:
Create table 表名
(列名 数据类型(宽度)[default 表达式][column constraint],

[table constraint] );

例、创建学生表(student),包括学号(Sno)、姓名(Sname)等学生信息
CREATE TABLE student
(Sno int,
Sname varchar(8) );

例、将emp表中30号部门(deptno)的员工名(ename)、工作职位(job)、工资(sal)保持在新表emp_30中。
CREATE TABLE emp_30(ename,job,sal)
AS
SELECT ename,job,sal FROM emp WHERE deptno=30

查看表结构

表创建完成后,用户可以使用describe命令查看表结构,其语法格式如下:
DESC[RIBE] 表名

修改表结构

表创建后,可以利用ALTER TABLE命令修改表,包括增加列、修改列的属性和删除列,可进行表参数的修改以及表的重命名。
语法格式:
Alter table 表名
[add (列名 数据类型 [defalult 表达式 ]]
[modify(列名 数据类型 [default 表达式 ]]
[drop column 列名]

添加列

使用ALTER TABLE … ADD实现表中列的添加。
增加的新列总是位于表的最后。假如新列定义了默认值,则新列的所有行自动填充默认值。对于有数据的表,新增加列的值为NULL,所以有数据的表,新增加列不能指定为NOT NULL约束条件。

例、给student表增加一个字段memo,类型为varchar(20)。
ALTER TABLE student ADD memo VARCHAR(20);

修改列类型

使用ALTER TABLE … MODIFY语句实现表中列的修改。
修改列定义还有以下一些特点;
(1)列的宽度可以增加或减小,在表的列没有数据或数据为NULL时才能减小宽度。
(2)在表的列没有数据或数据为NULL时才能改变数据类型。
(3)只有当列的值非空时,才能增加约束条件NOT NULL。
(4)修改列的默认值,只影响以后插入的数据。

例、修改student表中sdept字段(varchar类型)的长度改为30。
ALTER TABLE student MODIFY sdept VARCHAR(30);

修改列名

Oracle中使用alter table… rename column… To…语句实现修改列的名称
mysql中使用ALTER TABLE tablename CHANGE oldname newname varchar(10) ;(数据类型不能省略)

例、修改student表中所在系sdept字段的字段名为new_sdept。
Alter table student rename column sdept to new_sdept;
Alter table student change sdept new_sdept varchar(20);

删除列名

使用alter table… drop column语句实现直接删除列。

例、 删除student表中的性别(sno)字段。
Alter table student drop column sno;

表名的修改

Oracle中表名的修改可以使用ALTER TABLE old_tablename RENAME TO new_tablename语句实现,也可直接执行RENAME…. TO….语句。Mysql中使用alter table old_tablename rename to/as new_tablename;

例、student表改名为new_student表。
ALTER TABLE student RENAME TO new_student;

删除已创建的表

删除表的语法如下:
DROP TABLE 表名[CASCADE CONSTRAINTS];
CASCADE CONSTRAINTS表示当要删除的表被其他表参照时,删除参照此表的约束条件。

视图的创建

create [or replace] view 视图名 [(别名1[,别名2…])]
AS 子查询
[with check option{constraint 约束名}]
[with read only]
with check option表示进行视图插入或修改时必须满足子查询的约束条件。

例、建立一个部门员工薪水介于1000-3000元的员工信息SAL_MID视图。
CREATE VIEW SAL_MID
AS
SELECT ename,job,sal FROM emp
WHERE sal between 1000 and 3000
WITH CHECK OPTION;

重命名视图

使用RENAME语句给视图重新命名。
语法格式:
RENAME <old_view_name> TO <new_view_name>;

例、给emp_view重新命名为emp_view1。
RENAME emp_view TO emp_view1;

删除视图

语法如下:
DROP VIEW 视图名;
视图的删除不影响基表,不会丢失数据。

例、删除视图emp _view。
SQL>DROP VIEW emp_view;

补充

要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在INSET、UPDATE或DELETE等语句当中使用它们。如果视图包含下述结构中的任何一种,那么它就是不可更新的:
(1)聚合函数;
(2)DISTINCT关键字;
(3)GROUP BY子句;
(4)ORDER BY子句;
(5)HAVING子句;
(6)UNION运算符;
(7)位于选择列表中的子查询;
(8)FROM子句中包含多个表;
(10)WHERE子句中的子查询,引用FROM子句中的表;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值