数据库中对表的操作
2014-05-10 22:49
190 查看
对表定义的修改,不同的数据库系统有不同的限制。Oracle数据库就限制对列的修改只能是加大列的宽度而不能是缩小,而且不能删除列。
增加新列
ALTER TABLE table_name ADD colum_name data_type
向已有表中增加非空约束的列
ALTER TABLE student ADD Email CHAR(15) NOT NULL
表中不能有其他数据,有数据会报错,因为所添列为非空,必须为其设置缺省值!
指明缺省值
ALTER TABLE student ADD Email CHAR(15) NOT NULL DEFAULT 'No Email'
删除列
删除学生表中的birthday 列
ALTER TABLE student DROP COLUMN birthday
直接删除具有非空约束的列
ALTER TABLE student DROP COLUMN sex
该列设有缺省值,不能直接删除,需要先删除约束,再删除该列!约束名可从直接删除该列系统的出错报告信息中获取
ALTER TABLE student DROP CONSTRAINT DF_student_sex_4CA06362
ALTER TABLE student DROP COLUMN sex
修改列
ALTER TABLE student MODIFY column_name data_type
在SQL Server 数据库系统中,并不支持MODIFY 关键字。要修改数据库中的列,我们可以通过 ALTER COLUMN 关键字实现,即将MODIFY替换ALTER COLUMN 即可。
ALTER TABLE student ALTER COLUMN Email CHAR(25)
取消 student 表中 sname 列的非空约束
ALTER TABLE student ALTER COLUMN sname CHAR(25) NULL
修改表中的某列,为其增加非空约束时,我们必须确保该列已经存在的所有记录中没有NULL 值
与许多DBMS产品不同,SQL Server 不仅允许改变列的数据长度,而且还允许改变其数据类型。但是当列为一下情况时,则不能改变其数据类型。
1.列是 TEXT、IMAGE、NTEXT、TIMESTAMP类型
2.列是索引的一部分
3.列是PRIMARY 或者 KEY FOREIGN KEY的一部分
4.列具有缺省值约束
5.列具有CHECK约束
6.列具有UNIQUE约束
当改变列的数据类型时,列中已有的数据必须与新的数据类型兼容。比较常用的转换是从INTEGER 转换为字符串,因为CHAR列可保存数字、字母和特殊符号。但是,如果要将CHAR 类型转换为 INTEGER 类型,必须保证表的每行上所转换的CHAR 字段具有数字或NULL 值。
将student 表的 sno 列的类型转换为CHAR 类型
ALTER TABLE student ALTER COLUMN sno CHAR(5) NOT NULL
增加新列
ALTER TABLE table_name ADD colum_name data_type
向已有表中增加非空约束的列
ALTER TABLE student ADD Email CHAR(15) NOT NULL
表中不能有其他数据,有数据会报错,因为所添列为非空,必须为其设置缺省值!
指明缺省值
ALTER TABLE student ADD Email CHAR(15) NOT NULL DEFAULT 'No Email'
删除列
删除学生表中的birthday 列
ALTER TABLE student DROP COLUMN birthday
直接删除具有非空约束的列
ALTER TABLE student DROP COLUMN sex
该列设有缺省值,不能直接删除,需要先删除约束,再删除该列!约束名可从直接删除该列系统的出错报告信息中获取
ALTER TABLE student DROP CONSTRAINT DF_student_sex_4CA06362
ALTER TABLE student DROP COLUMN sex
修改列
ALTER TABLE student MODIFY column_name data_type
在SQL Server 数据库系统中,并不支持MODIFY 关键字。要修改数据库中的列,我们可以通过 ALTER COLUMN 关键字实现,即将MODIFY替换ALTER COLUMN 即可。
ALTER TABLE student ALTER COLUMN Email CHAR(25)
取消 student 表中 sname 列的非空约束
ALTER TABLE student ALTER COLUMN sname CHAR(25) NULL
修改表中的某列,为其增加非空约束时,我们必须确保该列已经存在的所有记录中没有NULL 值
与许多DBMS产品不同,SQL Server 不仅允许改变列的数据长度,而且还允许改变其数据类型。但是当列为一下情况时,则不能改变其数据类型。
1.列是 TEXT、IMAGE、NTEXT、TIMESTAMP类型
2.列是索引的一部分
3.列是PRIMARY 或者 KEY FOREIGN KEY的一部分
4.列具有缺省值约束
5.列具有CHECK约束
6.列具有UNIQUE约束
当改变列的数据类型时,列中已有的数据必须与新的数据类型兼容。比较常用的转换是从INTEGER 转换为字符串,因为CHAR列可保存数字、字母和特殊符号。但是,如果要将CHAR 类型转换为 INTEGER 类型,必须保证表的每行上所转换的CHAR 字段具有数字或NULL 值。
将student 表的 sno 列的类型转换为CHAR 类型
ALTER TABLE student ALTER COLUMN sno CHAR(5) NOT NULL
相关文章推荐
- 使用代码对数据库进行操作
- Node.js 连接 MySQL 并进行数据库操作
- 不用JDBC:ODBC bridge直接操作Access 数据库
- MySQL数据库学习三 数据库对象和基本操作
- 数据库基本操作
- JAVA操作数据库----- http://blog.sina.com.cn/andyfang
- 使用SQL语句对数据库以及数据库表的操作
- 文件夹文件遍历并插入数据库的操作,IO Directory File的递归操作
- 安装mysql并通过mybatis进行数据库操作
- ASP.NET2.0中执行数据库操作命令之二
- JAVA操作Trip数据库
- Hibernate操作数据库占位符写法
- 数据存储之 SQLite 数据库操作(三)
- Yii2.0数据库操作增删改查详解
- C#与Flash ActionScript 2.0通过xml操作数据库(二)
- DbUtils操作数据库的用法
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作代码
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作。
- android 操作sqllite 数据库
- OrmLite框架 ——OrmLite 入门(android数据库操作框架)