修改已有数据表

通过 CREATE TABLE 语句创建的数据表的结构并不是永远不变的,很多因素决定我们需要对数据表的结构进行修改,比如我们需要在T_Person表中记录一个人的个人爱好信息,那么就需要在T_Person中增加一个记录个人爱好的字段,再如我们不再需要记录一个人的年龄,那么我们就可以将FAge字段删除。这些操作都可以使用ALTER TABLE 语句来完成。

ANSI-SQL中为ALTER TABLE 语句规定了两种修改方式:添加字段和删除字段,有的数据库系统中还提供了修改表名、修改字段类型、修改字段名称的语法。

首先来看添加字段的语法:


ALTER TABLE 待修改的表名ADD 字段名字段类型

在语句中需要指定要修改的表的表名、要增加的字段名以及字段的数据类型,其使用方式和创建表的非常类似。下面是为T_Person表增加个人爱好字段的SQL语句:


ALTER TABLE T_PERSON ADD FFavorite VARCHAR(20)

注意:上边的SQL在MYSQL、MSSQLServer 以及DB2 下可以正常运行,不过由于各个主流数据库系统中数据类型的差异,所以在其他数据库中可能需要改写。

下面是此SQL在Oracle下的写法:


ALTER TABLE T_PERSON ADD FFavorite VARCHAR2(20)

接下来看删除字段的语法:


ALTER TABLE 待修改的表名DROP 待删除的字段名

在语句中需要指定要修改的表的表名以及要删除字段的名称。下面是删除T_Person 表中年龄字段的SQL语句:


ALTER TABLET_Person DROP FAge

注意:DB2 中不能删除字段,所以这个SQL语句在DB2 中是无法正确执行的。

原文地址:https://www.cnblogs.com/yuyu666/p/9823681.html

时间: 2024-10-18 12:19:10

修改已有数据表的相关文章

mysql更改已有数据表的字符集,保留原有数据内容

mysql更改已有数据表的字符集,保留原有数据内容     原文网址:http://blog.csdn.net/learn_2/article/details/6460370 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足需求需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改.字符集的修改不能直接通过"alter database character set *** " 或者 "alter table tablename chara

Asp.net 修改已有数据的DataTable中某列的数据类型

DataTable dt_PI = new DataTable(); //克隆表结构 dt_PI = ds.Tables[0].Clone(); dt_PI.Columns["FLTFullPercentage"].DataType = typeof(String);//修改[满柜百分比]列的数据类型 foreach (DataRow row in ds.Tables[0].Rows) { DataRow rowNew = dt_PI.NewRow(); foreach (DataCo

Mysql修改已有数据的字符集

Mysql修改已有数据的字符集 问题 在生产环境中跑了很久,发现MysqlClient连接的字符集是默认的latin1,我们一直以为都是utf8,造成这样的误解,是因为在内网环境中,我们是源码编译的Mysql,并指定了编译选项字符集位utf8,这时Mysql的是默认字符接都是utf8. 而在外网,我们是二进制包安装,默认是latin1,虽然在my.conf中指定了[client] [mysql] [mysqld] 中字符集为utf8,这并不能保证MysqlClient连接时的字符集为utf8.所

Oracle已有数据表建立表分区—在线重定义

今天在做数据抽取的时候,发现有一张业务表数据量达到了5000W,所以就想将此表改为分区表.分区表的有点如下: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度.2.增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用:3.维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可:4.均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能. 第一步:首先对要在线重定义的表自行验证,看该表是否可以重定义,如果不可以则会提示错误信息 SQL>

禁止修改数据库的数据表示例

/* 利用触发器禁止修改一些特殊的数据表 */ CREATE TRIGGER Table_Monitor ON DATABASE FOR CREATE_TABLE,ALTER_TABLE,DROP_TABLE AS Declare @S Varchar(800) Set @S=EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') Print @S Create Table dbo.Tes

修改MySql中数据表和字段的字符集和排序规则

由于数据库中的数据表和表字段的字符集和排序规则不统一,找了很多帖子,最后发现如下脚本很好用. 用法儿是:先执行如下脚本生成修改数据表和表字段的脚本,然后再执行这些生成的脚本. 1. 修改指定数据库中所有varchar类型的表字段的字符集为UTF8,并将排序规则修改为utf8_general_ci SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER

MySQL的修改和删除数据表字段

MySQL的修改和删除数据表字段 写在前面:注意,所有的字段名,最好都用``包裹! 1.修改表名 2.增加表的字段(id,name,age这种就是字段) 3.修改表的字段(重命名字段+修改字段的类型和约束) 4.删除表的字段 1. 修改表名 -- 修改表名,格式:ALTER TABLE 旧表名 RENAME AS 新表名; -- 修改表名,格式:ALTER TABLE 旧表名 RENAME AS 新表名;ALTER TABLE teacher RENAME AS teacher_1; 2. 增加

SQL server 命令创建、修改、删除数据表

1. 创建数据表 create 创建数据表的完整语法格式为: CREATE TABLE 表名 (列名 数据类型[缺省值][NOT NULL] [,列名 数据类型[缺省值][NOT NULL]].... [,UNIQUE(列名[,列名]...)] [,PRIMARY KEY(列名[,列名]...)] [,FOREIGN KEY(列名[,列名]...) REFERENCES(列名[,列名]...)] [,CKECK(条件)] ) 参数说明: DEFAULT(缺省值):指定列的缺省值: NOT NUL

Django使用Mysql已存在数据表的方法

在网上爬取了网上的一些数据,存储在了mysql数据库中,想使用Django将数据展示出来,在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用. 可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了. 了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表. 假如在Django存在models如下: from django.db import models Create your m