`
389331837
  • 浏览: 4341 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

数据库修改表结构SQL

    博客分类:
  • sql
阅读更多
[size=small]数据库修改表结构SQL
修改表结构包括:
增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表。
所有这些动作都是用 ALTER TABLE 命令执行的。
1、 增加字段
ALTER TABLE products ADD description text;
你也可以同时在该字段上定义约束,使用通常的语法:
ALTER TABLE products ADD  description text CHECK (description <> '');实际上,所有在 CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。不过,我们要注意的是缺省值必须满足给出的约束,否则 ADD 将会失败。 另外,你可以在你正确填充了新字段的数值之后再增加约束(见下文)。
2、 删除字段
要删除一个字段,使用下面这样的命令:
ALTER TABLE products DROP COLUMN description;不管字段里有啥数据,都会消失。和这个字段相关的约束也会被删除。 不过,如果这个字段被另外一个表的外键所引用,PostgreSQL 则不会隐含地删除该约束。你可以通过使用 CASCADE 来授权删除任何依赖该字段的东西:
ALTER TABLE products DROP COLUMN description CASCADE;
3、增加约束
要增加一个约束,使用表约束语法。比如:
ALTER TABLE products ADD CHECK (name <> '');
ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;
ALTER TABLE Teacher add constraint df_sex default('男') for sex
要增加一个不能写成表约束的非空约束,使用下面语法:
ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;
这个约束将立即进行检查,所以表在添加约束之前必须符合约束条件。
4、 删除约束
要删除一个约束,你需要知道它的名字。如果你给了它一个名字, 那么事情就好办了。否则系统会分配一个生成的名字,这样你就需要 把它找出来了。psql 的命令 \d tablename 在这儿可以帮忙; 其它接口可能也提供了检查表的细节的方法。然后就是这条命令:
ALTER TABLE products DROP CONSTRAINT some_name;(如果你在处理一个生成的约束名,比如 $2,别忘了你需要给它 添加双引号,让它成为一个有效的标识符。)
和删除字段一样,如果你想删除有着被依赖关系地约束,你需要用 CASCADE。 一个例子是某个外键约束依赖被引用字段上的唯一约束或者主键约束。
除了非空约束外,所有约束类型都这么用。要删除非空类型,用
ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;(要记得非空约束没有名字。)
5、改变一个字段的缺省值
要给一个字段设置缺省值,使用一个象下面这样的命令:
ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;请注意这么做不会影响任何表中现有的数据行, 它只是为将来 INSERT 命令改变缺省值。
要删除缺省值,用
ALTER TABLE products ALTER COLUMN price DROP DEFAULT;这样实际上相当于把缺省设置为空。 结果是,如果我们删除一个还没有定义的缺省值不算错误,因为缺省隐含就是空值。
6、 修改一个字段的数据类型
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);只有在字段里现有的每个项都可以用一个隐含的类型转换转换城新的类型时才可能成功。如果需要更复杂的转换,你可以增加一个 USING 子句,它声明如何从旧值里计算新值。
PostgreSQL 将试图把字段的缺省值(如果存在)转换成新的类型, 还有涉及该字段的任何约束。但是这些转换可能失败,或者可能生成奇怪的结果。 在修改某字段类型之前,你最好删除那些约束,然后再把自己手工修改过的添加上去。
7、给字段改名字
ALTER TABLE products RENAME COLUMN product_no TO product_number;
8、. 给表改名字
ALTER TABLE products RENAME TO items;
[size=medium]
分享到:
评论

相关推荐

    对比两个数据库表结构(支持sql2008)

    在项目做好后实施了以后,可能因为需求...只能更改表结构,而这时有可能因为更改的表结构比较多,而出现有的表忘了更新. 改程序可以对比两个数据库下所有表的表结构的不同.并显示 同时也有源程序 改代码已支持sql2008

    SQLserver 数据库表结构对比工具

    《SQL Server数据库表结构对比工具详解》 在SQL Server数据库管理中,确保数据库表结构的一致性至关重要。尤其是在多环境、多版本之间进行同步时,表结构的差异可能导致应用程序出现问题或者数据丢失。为了应对这一...

    自动对比2个数据库表结构差异

    在手动对比表结构时,通常需要通过SQL查询或者数据库管理工具逐一对比,耗时且易出错。因此,自动化工具的出现大大提高了效率。`compareTableStructure`工具可能是通过解析数据库的元数据信息,然后进行比较。它可能...

    数据库系统概念表SQL数据

    这个过程可能涉及到创建表结构,然后使用LOAD DATA INFILE命令(在MySQL中)或者BULK INSERT(在SQL Server中)来批量导入数据。如果你选择逐条插入,可以使用INSERT INTO语句,但这通常效率较低。确保数据导入后,...

    导出数据库的表结构到Excel

    综上所述,"导出数据库的表结构到Excel"涉及到的技术和知识广泛,包括数据库连接、SQL操作、文件生成、用户交互以及系统安全等多个方面,对于IT专业人士来说,这是一个实用且具有学习价值的任务。

    根据MyBatis或iBatis的SQLMapper文件反向生成数据库表

    根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,...执行SQL语句: 最后,将生成的数据库表结构信息通过执行相应的SQL语句来创建或者修改数据库表。

    Navicat客户端sqlserver表结构转到mysql数据库中操作文档

    本操作文档将详细介绍如何使用Navicat客户端工具将SQL Server的表结构转换到MySQL数据库中。Navicat是一款强大的数据库管理工具,支持多种数据库系统,包括SQL Server和MySQL,使得数据迁移变得简单而高效。 首先,...

    sql表结构自动生成word文档

    "sql表结构自动生成word文档"这个主题,旨在帮助数据库管理员和开发者更有效地将SQL Server数据库中的表结构转换为易于阅读和分享的Word文档。以下是关于这个主题的详细解释: 1. **SQL Server数据库表结构**:表...

    android 数据库表结构更新步骤

    每次修改表结构时,应增加版本号。 - 当应用新版本中数据库版本号高于旧版本时,系统会自动调用`onUpgrade()`方法。在这个方法中,我们可以执行更新表结构的SQL语句。 4. **更新表结构** - 要添加字段,可以在`...

    对比两个mysql数据库显示差异并生成更新SQL语句,执行到指定数据库

    sql语句 ...新指的是包含较新结构的数据库,一般为开发环境数据库,旧指的是未更新修改的数据库,一般为生产环境数据库。 数据库操作有风险,请审查生成的SQL语句后执行提交,发生任何问题责任自负。

    修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库

    在SQL Server中,修改数据库表结构是常见的数据库管理任务,涉及对表的增删改查等操作。本文将详细介绍如何使用SQL命令来修改SQL Server数据库的表结构,并提供相关的SQL命令示例。 首先,让我们来看如何向表中添加...

    从数据库自动生成表结构

    例如,Python的`pymysql`库可以连接到MySQL数据库,执行SQL并获取表结构。在Python中,可以使用`dbutils`或`sqlalchemy`等库来简化这个过程。 生成的表结构信息可以以多种格式输出,如Markdown、HTML、XML或JSON,...

    数据库表结构导出word文档.zip

    "sql2doc"可能是实现数据转换的脚本或程序,它读取MySQL数据库的表结构信息,然后使用FreeMarker模板生成Word文档。SQL查询通常用于获取数据库的元数据,如表名、列名、数据类型等。这个工具可能执行了类似"DESCRIBE...

    SqlServer查看表结构

    本篇文章将深入解析“SqlServer查看表结构”的方法,以及如何利用SQL语句来获取详细的表结构信息,这对于数据库管理员(DBA)、数据分析师、软件开发者等专业人士来说尤为关键。 ### SQL Server查看表结构的重要性 ...

    oracle修改表结构

    以上操作涉及了Oracle数据库中修改表结构的主要方法,但值得注意的是,在执行这些操作前,应确保数据的完整性和一致性,必要时备份数据,以防意外损失。 ### 实际案例分析 例如,假设有一张名为`skate_test`的表,...

    SQL Server数据库实验指导书 实验教程 数据库实验02 通过SQL语句创建与管理数据表.pdf

    本实验主要围绕SQL Server 2005数据库的管理和操作展开,目的是让学生掌握数据库的创建、修改、查看、删除等基本操作,以及SQL Server Management Studio的使用。实验内容包括安装SQL Server 2005、启动和配置服务、...

    数据库实验一实验一 熟悉数据库管理工具、数据库和表的基本操作 一、实验目的: 1.了解SQL Server或MYSQL数据库的基本知识; 2.熟悉SQL Se

    - 使用SQL语句进行表结构的修改,包括添加、删除字段。 8. SQL查询实践: - 查询年龄小于20岁的学生信息。 - 查找成绩在80-89分之间的学生学号。 - 获取IS和CS系学生的姓名和学号。 - 查询课程名称包含“系统...

    sql server从一个数据库复制表到另一个数据库的方法

    在SQL Server中,将表从一个数据库复制到另一个数据库的过程涉及到数据库对象的迁移,这通常通过创建表的结构脚本和数据迁移来实现。以下是一个详细的步骤指南: 1. **启动SQL Server Management Studio (SSMS)**: ...

    数据库工具,根据表结构文档生成创建表sql.zip

    例如,在项目迭代过程中,当数据库结构发生变化时,可以通过更新表结构文档,然后用工具自动生成新的SQL脚本来更新数据库,避免手动修改可能引入的错误。 在使用该工具时,确保文档的准确性和完整性是非常重要的,...

    Oralce数据库SQL和pl_sql实例教程

    SQL可以分为四大类:DDL(Data Definition Language)用于创建和修改数据库对象,如表和索引;DML(Data Manipulation Language)用于处理数据,如查询、插入、更新和删除;DCL(Data Control Language)用于控制...

Global site tag (gtag.js) - Google Analytics