数据库——修改表

二、修改表

1、修改表字段:

a、添加字段

alter table student

add (sex char(2) default ‘1‘ constraint student_sex_type check(sex=‘1‘ or sex=‘2‘))

注意:新添加的字段在表的最后一列,不能指定字段的位置,这与MySQL数据库不同(MySQL数据库可以通过after设定添加字段的先后顺序)

b、修改字段

alter table student

modify(name varchar2(12))

注意:字段的修改包括修改数据类型(只有对应列为空指才可以修改)、大小和默认值,其中默认值的修改只会影响后来插入表的数据,对之前的数据不会产生影响。

c、删除字段

alter table student

drop(sex)

注意:

①、一次只能删除一个字段;

②、一个表至少要保留一个字段;

③、如果所删除列(如publisher表中id列)是另一个表的外键(book表publisher_id)则该列(publisher表中id列)无法删除,如下图所示:

2、修改表字段约束:

a、添加约束

alter table student

add constraint student_id_pk primary key(id);--将student表id列设为主键

注意:

1、可以一次添加多个约束,如下:

2、不能通过添加约束为某个字段添加not null约束,只能通过修改字段为其指定not null,如下:

b、删除约束

alter table student

drop constraint student_sex_type;--依据约束名删除约束

alter table student

drop primary key--依据约束类型删除约束

alter table student

drop unique(id) --依据约束类型删除约束

注意:drop子句后面可以使用cascade,意为删除约束的同时与其相依赖的约束也一同删除,例如:

c、启用或禁用约束

禁用约束:

alter table student

disable constraint student_sex_type;--禁用约束

注意:disable子句后面可以使用cascade,意为禁用约束的同时与其相依赖的约束也一同禁用,例如:

启用约束:

alter table student

enable constraint student_sex_type;--启用约束,注意:enable后面不能使用cascade关键字

注意:约束无法修改,只能通过先删除再创建的方式间接修改字段约束。

三、表重命名

rename 旧名字 to 新名字

四、截断表

truncate table 表名——不用执行commit就可以将表数据删除

delete from 表名——必须执行commit才可以将表数据删除

delete、drop、truncate的区别

五、删除表

drop table 表名

六、注释

表注释

comment on table 表名 is ‘注释内容‘;

字段注释

comment on column 表名.字段名 is ‘注释内容‘;

原文地址:https://www.cnblogs.com/lyxcode/p/9400365.html

时间: 2024-10-13 17:31:00

数据库——修改表的相关文章

MySQL数据库修改表名

MySQL数据库修改表名,比如把表FaceAppVersion 修改为AppVersion,SQL如下: rename table FaceAppVersion to AppVersion; 执行如下: rename table FaceAppVersion to AppVersion > OK > 时间: 0.033s 原文地址:https://www.cnblogs.com/JohanChan/p/12058967.html

数据库—修改表的列

1.增加列 ALTER TABLE table_name ADD( column datatype [DEFAULT EXPR][,column datatype...]); 例如: SQL>ALTER TABLE emp01 ADD eno NUMBER(4); 2.修改列定义 例如: SQL>ALTER TABLE emp01 MODIFY job VARCHAR2(15) 2    DEFAULT 'CLERK' 3.删除列 例如: SQL> ALTER TABLE emp01 D

SQL语句修改表名和字段名

今天有个临时任务,修改生产环境的数据库表名和字段名.以前要修改表名字段名都是在开发环境,直接打开 SQL Server找到对应的表或字段重命名就OK啦,可是这是线上数据库,再想直接F2修改是不可能的啦.怎么办?乖 乖写脚本呗.上网了解了一些相关资料,结合我自己操作过程中出现的一些实际问题简单作个总结,再次加深下印 象. SQL自带了一系列的系统存储过程.其中sp_rename就具有修改表名和列名的功能.对于sp_rename是这样定 义的:更改当前数据库中用户创建对象(如表.列或用户定义数据类型

修改数据库和表的字符集

2修改数据库和表的字符集 alter database maildb default character set utf8;//修改数据库的字符集 alter table mailtable default character set utf8;//修改表的字符集

mysql笔记--数据库基本增删改查 修改表结构

数据库基本增删改查 1. 增-添加/插入数据,insert into 插入哪张表,那些列,什么值, 语句:insert into 表名(列1,列2,列3)values (值1,值2,值3): 可以不按原列的顺序插入,也可以插入部分列,但是值与列要一一对应,不能混乱!!! 一次插入多行数据 : Insert into 表名(列1,列2)values (值1,值2),(值1,值2): 2. 改-更新数据update 更新哪张表,哪些列,哪些值 语句:update 表名 set 列1=值1,列2=值2

mysql基础篇 - 数据库及表的修改和删除

基础篇 - 数据库及表的修改和删除 修改和删除 一.实验简介 本节实验中,我们将学习并实践如何对数据库的内容做修改,删除,重命名等操作. 二.实验准备 在正式开始本实验内容之前,需要先下载相关代码. 该代码可以新建两个数据库,分别名为 test_01 和mysql_shiyan ,并在 mysql_shiyan 数据库中建 4 个表(department,employee,project,table_1),然后向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/De

mysql数据库修改数据库编码,字段编码与表编码(转)

最近看了一下KIGG框架,发现在用EF + MYSQL数据库时,数据出现了乱码,用工具(Navicat )查看一下表category的结构发现 KIGG 数据库的默认情况是用latin1编码的(DEFAULT CHARSET=latin1), 如下: CREATE TABLE `category` ( `Id` binary(16) NOT NULL, `UniqueName` varchar(64) NOT NULL, `Name` varchar(64) NOT NULL, `Created

数据库复制:修改表结构、新增表、新增存储过程 会被复制到订阅服务器

[SQL Server高可用性]数据库复制:修改表结构.新增表.新增存储过程 会被复制到订阅服务器? 在SQL Server上配置好数据库复制后: 1.如果给表加了字段,会不会复制到订阅服务器呢?如果是删除1个字段呢? 2.如果新创建了1个表,会不会被同步过去呢? 3.如果新建了一个存储过程,会不会同步过去呢? 本文将会通过实验,回答上述问题. 1.首先,需要配置数据库复制. 这里为了简单起见,用了机器上的2个SQL Server 2008R2的实例. 两个实例分别是:MSSQLSERVER.S

mysql数据库导入导出 查询 修改表记录

mysql数据导入导出: 导入: 把系统的文件的内容,保存到数据库的表里 导入数据的基本格式:mysql> load data infile "文件名" into table 表名 fields terminated by '分隔符' lines terminated by '\n'; 实例:把系统用户信息保存到hydra01库下的userinfo表里 mysql> create table userinfo(name char(20),password char(1),u