Oracle字段增删改、添加约束

添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);

修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);

删除字段的语法:alter table tablename drop (column);

添加、修改、删除多列的话,用逗号隔开。

使用alter table 来增加、删除和修改一个列的例子。

创建表结构:
create table test1
(id varchar2(20) not null);

增加一个字段:

alter table test1
add (name varchar2(30) default ‘无名氏’ not null);

使用一个SQL语句同时添加三个字段:

alter table test1
add (name varchar2(30) default ‘无名氏’ not null,

age integer default 22 not null,

has_money number(9,2)

);

修改一个字段

alter table test1
modify (name varchar2(16) default ‘unknown’);

另:比较正规的写法是:

-- Add/modify columns 
alter table TABLE_NAME rename column FIELD_NAME to NEW_FIELD_NAME;

删除一个字段

alter table test1
drop column name;

需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要小的列宽这样将会出现一个错误。

例如前面如果我们插入一个值
insert into test1
values (’1′,’我们很爱你’);

然后曾修改列: alter table test1
modify (name varchar2(8));
将会得到以下错误:
ERROR 位于第 2 行:
ORA-01441: 无法减小列长度, 因为一些值过大

---------------------------------------------------------------------------------------------------------------

高级用法:

重命名表
ALTER TABLE table_name RENAME TO new_table_name;

修改列的名称

语法:
ALTER TABLE table_name RENAME COLUMN supplier_name to sname;

范例:
alter table s_dept rename column age to age1;

附:创建带主键的表>>

create table student (
studentid int primary key not null,
studentname varchar(8),
age int);

1、创建表的同时创建主键约束
(1)无命名
create table student (
studentid int primary key not null,
studentname varchar(8),
age int);
(2)有命名
create table students (
studentid int ,
studentname varchar(8),
age int,
constraint yy primary key(studentid));

2、删除表中已有的主键约束
(1)无命名
可用 SELECT * from user_cons_columns;
查找表中主键名称得student表中的主键名为SYS_C002715
alter table student drop constraint SYS_C002715;
(2)有命名
alter table students drop constraint yy;

3、向表中添加主键约束
alter table student add constraint pk_student primary key(studentid);

时间: 2024-10-11 07:10:07

Oracle字段增删改、添加约束的相关文章

Oracle字段增删改方法总结

一.修改字段的语法:alter table tablename modify (字段名 类型 [default value][null/not null],-.);有一个表名为tb,字段段名为name,数据类型nchar(20).1.alter table tb modify (name nvarchar2(20)); 2.假设字段有数据,则改为varchar2(40)执行时会弹出:"ORA-01439:要更改数据类型,则要修改的列必须为空",这时要用下面方法来解决这个问题: /*修改

第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structured Query Language) SOL语句是和DBMS“交谈”专用的语言,不同的DBMS都认SQL语法. Sql中字符串使用单引号:通过写俩个单引号来转义一个单引号. Sql中的注释“——” 单行注释比较好 判断俩个数据是否相等使用=(单等号) 在sql语句中sql代码不区分大小写 SQL主要

MongoDB 文档字段增删改

MongoDB 基于CRUD(create,read,update,delete)方式实现了对集合上的文档进行增删改查.对于集合上字段的增删改,可以使用set或者unset修改器来实现.也可以使用文档替换的方式来实现.本文主要描述集合上字段的增删改,以及基于选项upsert的更新. a.语法描述 db.collection.update( <query>,                  //查询或过滤条件 <update>,                 //修改器(被修改键

web项目总结——通过jsp+servlet实现对oracle的增删改查功能

1.DAO模式 分包:依次建立 entity:实体包,放的是跟oracle数据库中表结构相对应的对象的属性,也就是这个对象有什么 dao:增删改查接口,实现增删改查的具体方法 service:同dao,也是一个接口,一个接口的实现类,方法什么的都跟dao差不多 servlet:新建servlet类,继承HttpServlet类,一个方法建立一个servlet类,根据不同的方法选择使用doGet().doPost()方法 .services()既包含doGet 又包含doPost 新建jsp页面

ASP.NET C# 连接 Oracle数据库增删改查,事务

一.知识介绍 ①ASP.NET 使用的是MVC模式,开发工具Visual studio ,语言C# ②Oracle是比较重型的数据库,这里主要介绍连接数据库,对数据进行具体的使用 ③Visual Studio连接数据库都是需要dll文件,方法相似. 二.步骤 ①新建一个ASP项目 ②右击项目或引用,管理Nuget程序包.搜索Oracle,下载Oracle的dll依赖 ③由于数据库的增删改查常用,放在一个方法中.新建了类库,把方法放入类库中,在项目中需添加引用. 1 using Oracle.Da

Oracle【增删改&amp;数据的备份】

增删改的SQL语句执行完毕后,不会立马进行数据的写入数据库(这时数据在内存中),需要手动对数据进行提交(commit),如果数据出问题,可以使用回滚.主键:非空唯一的 --在一张表中,某字段值是非空唯一的,将此字段设置为主键. --唯一的标识一条数据[增加数据源]insert into 表名(字段名1,字段名2,字段名2...)values(值1,值2,值3...); --注意1:主键必须有值,允许为空的字段可以给值 --注意2:插入语句表名后跟的字段名为赋值的字段,值和字段必须一一对应. --

oracle的增删改查语句

创建一个表: cteate table 表名(列1 类型, 列2 类型);查看表结构 desc表名添加一个字段 alter table 表名 add(列类型);修改字段类型 alter table 表名 modify(列类型);删除一个字段 alter table 表名 drop column列名;修改表的名字 rename student to stu删除表 drop table 表名插入数据:1. create table test( id number, name varchar2(20)

java 连接oracle 进行增删改查

1.在DAO层新增类OraclePersionDao package com.test.dao; import java.sql.*; /** * Created by wdw on 2017/9/16. */ public class OraclePersionDao { // 数据库驱动类 private String dbDriver = "oracle.jdbc.driver.OracleDriver"; // 连接数据库url private String dbURL = &

Oracle - 数据更新 - 增删改

/* 数据的更新 增加 删除 修改 */ -----------------------------------增加(一次只能插入一条数据) --自定义插入数据列的顺序 INSERT INTO EMP(EMPNO,ENAME,SAL,DEPTNO) VALUES(8888,'DFBB',2666,10); --按照数据库默认的顺序插入 INSERT INTO EMP VALUES(9999,'RWX','JIAOZHU',7788,SYSDATE,3333,NULL,10); --插入查询的结果