数据库修改表格
㈠ 实例解析:如何在数据库中更改每个表格求解答
所有程序开发人员都会时不时地出现错误。有时候,错误的发生是因为我们没有建立明显但却没有指明的请求。 这里有一个例子:你的数据库运行良好,但数据接口出现很多错误,而且数据更新时出现新的请求:给每个表格添加两列(LastUpdated和UpdatedBy)。这里有数百个表格,因此手工操作不可能完成这个任务。 很显然,这是一个可重用代码块,因此你一定会希望只编写一次,就可以确保它能够在每一数据库中使用。(可能你需要给每个新的数据库稍做改进。例如,改变列表名。但主要的思想是,你希望让一个程序在一个数据库中的所有表格中运行,并且可以添加一个或更多列表。) 获得用户表格中的列表相当容易: SELECT Name FROM sysobjects WHERE Type = 'U' ORDER BY Name结果集可以作为一个用户自定义函数而更加容易处理,这一自定义函数返回一个表格: CREATE FUNCTION dbo.UserTables_fnt () RETURNS TABLE AS RETURN (SELECT TOP 100 PERCENT name FROM dbo.sysobjects WHERE type = 'U') ORDER BY name )假设你想给数据库中的每个表格添加 假设你想给数据库中的每个表格添加一个名为LastUpdated (TimeStamp类型)的列表。为了在任一给定的表格中添加一个列,例如Customers,你的命令可以如下所示: ALTER TABLE MyDB.dbo.Customers ADD LastUpdated TimeStamp NULL 现在,你建立一个请求(查看, 存储过程, UDF),这一请求构成了你所需要完成任务的语句: SELECT 'ALTER TABLE NorthwindTest.dbo. [' + name + '] ADD LastUpdated TimeStamp NULL' AS CommandText FROM dbo.UserTables_fnt() 假如你拷贝了名为Northwind的NorthwindTest范例数据库,并运行这一代码,其结果如下所示: ALTER TABLE NorthwindTest.dbo. [Categories] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [CustomerCustomerDemo] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [CustomerDemographics] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Customers] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [dtproperties] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Employees] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [EmployeeTerritories] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Order Details] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Orders] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Procts] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Region] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Shippers] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Suppliers] ADD LastUpdated TimeStamp NULL ALTER TABLE NorthwindTest.dbo. [Territories] ADD LastUpdated TimeStamp NULL我使用方括号以圈住表格名,因为它们能够保护有潜在错误的表格名:Order Details。对于没有空格的情况,剖析器不会考虑到方括号,然而对于有空格情况,生成的sql代码将会产生错误。 你可以用各种方法来处理这种结果集,这些方法包括将其粘贴到Query Analyzer并运行,并且将它转化成储存程序,或者转化成一个可修改的视图。对于“一次性”特性,我喜欢使用第一个方法。 我喜欢用已经编写好的代码来编写程序,因为那样我就不需要重新编写——而且它不会有任何拼写错误。你可以扩展这一思想以执行任何DML操作。 如果你想试用这一技巧,我强烈推荐你先建立一个SELECT请求,这一请求可以构建所需要的DML。因此,在运行之前你可以检查,并校对它的语法。
㈡ 在数据库中如何修改表的内容
1、登录PL/SQL Developer;
㈢ SQL数据库修改表
1、首先你要保证你的两个表都有主键,或者有关联字段。
例如:
表A(id,name,date)
id是主键
表B(id,name,date)
id是主键
1)导入B数据数据到A表保留date字段值(确切的说这种情况应该叫利用【B】表数据更新【A】表数据),用下面的sql就可以达到目的:
update
A
set
A.date=(select
B.date
from
B
where
B.id=A.id);
说明:这样做的话要保证A表和B表都有数据并且id字段能够关联上,而且这样修改的数据只是关联上的数据,假设A表中有【id=1】的数据而B表中没有
【id=1】的数据,那么A表中【id=1】的数据就不会被修改。
2)如果A表和B表都没有主键的话,那么寻找一个能够关联两个表数据的字段(这个字段可以从一定意义上作为"主键"区分表中数据),假设是id和name字段联合起来:
update
A
set
A.date=(select
B.date
from
B
where
B.id=A.id
and
B.name=A.name);
说明:在这个更新中更新条目也只限定于能够关联上的数据。
3)如果A表中没有数据只是想把B表中的数据全部插入A表(B表中date字段的值必须被保留的话)
insert
into
A
select
*
from
B;
说明:在这个语句中,把B表中所有的数据不加修改的全部放入了B表,自然也就包含了date字段的值不变。
insert
intp
A
select
1,'张三',date
from
B;
说明:在这个语句中,把B表中的date字段的只保留,id和name字段分别换成了【1】和【张三】(当然是所有数据的id和name字段都换了)
2、综合上面的观点
1)如果表1没有数据:insert
into
表1
select
*
from
表2;
2)如果表1中有数据,并且和表2中的数据完全关联的上的话:
update
表1
set
表1.sj=(select
表2.sj
from
表2
where
表2.字段X=表1.字段X
and....);
3)如果表1中有数据,但是表2中只有一部分能够关联上,目的是关联上的更新,关联不上的插入表1的话:
先:update
表1
set
表1.sj=(select
表2.sj
from
表2
where
表2.字段X=表1.字段X
and....);
后:insert
表1
select
*
from
表2
where
表2.关联字段X
not
in(select
表1.关联字段X
from
表1)
and
表2.关联字段Y
not
in(select
表1.关联字段Y
from
表1)....
---
以上,希望对你有所帮助。
㈣ 怎么修改mysql数据库表中内容
以windows为例
方法一(假设mysql在d:\mysql目录下)
1、用系统管理员登陆windows系统。
2、停止MySQL的服务。
3、运行cmd进入dos命令窗口,然后进入MySQL的安装目录,比如安装目录是d:\mysql,进入d:\mysql\bin (如果是c:\Program Files\mysql目录,目录包含空格,使用cd "c:\Program Files\mysql"进入mysql目录)
4、跳过权限检查启动MySQL(关键的一步)
d:\mysql\bin>mysqld-nt --skip-grant-tables(会占用一个dos控制台窗口,不能关闭)
5、重新打开一个dos控制台窗口,进入d:\mysql\bin目录,设置root的新密码
d:\mysql\bin>mysqladmin -u root flush-privileges password 【新密码】
(注意:这条命令如果重复执行,可能需要关闭4的窗口并重新运行)
d:\mysql\bin>mysqladmin -u root -p shutdown(或直接关闭第一个dos控制台窗口)
将【新密码】替换为你要用的root的密码,第二个命令可能会提示你输入新密码,重复第一个命令输入的密码。
6、关闭MySQL的控制台窗口,用正常模式启动Mysql
7、你可以用新的密码链接到Mysql了。
方法二
1、停止mysql服务
2、找到mysql数据的data目录,将另外一个mysql的data目录下的mysql目录覆盖过来(如果知道root密码)
(操作之前先备份mysql\data\mysql目录的所有文件)
这种方法缺点:覆盖掉其他的用户,mysql的版本需相同
3、重新启动mysql服务
㈤ GBase 8c 数据库怎么修改表列的默认值和数据类型
支持分别修改列默认值和数据类型。要为某列设置一个新默认值,可以使用命令:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT new_default;
修改数据类型,使用命令:
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type;
注意:这不会影响任何表中已经存在的行。
㈥ 数据库中的表怎么修改
UFDATA_001_2008这个数据库里面的SettleStyle这个表里面的cSSCode外键与它对应的主键起冲突了,你想修改SettleStyle这个表的结构需要先把这个主外键关系停掉。
㈦ 数据库如何修改表格的存储格式
五个步骤。
第一步,查询重命名表:ALTER TABLE test1 RENAME TO test2;
第二步,修改表字段命名// ALTER TABLE employee CHANGE name ename String;
第三步,修改表字段类型ALTER TABLE employee CHANGE salary salary double ;
第四步,添加列语句:ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name’);
第五步,加分区表字段:ALTER TABLE table_name add columns( dept string COMMENT '') CASCADE;
㈧ 怎样修改数据库中的数据
1、首先打开SQL Server Management管理工具,使用sql语句创建一张测试表。
㈨ 数据库表的修改
题主是需要修改数据库字段名称。
一可以找一个图形界面管理工具,从图形界面直接修改。
而是使用命令修改。题主用的是MySQL吧,参照如下语句
alter table course change Credit Ccredit varchar(20);--字段数据类型请参照原来类型和长度
祝好运,望采纳。
㈩ 修改数据库表格中每列数据
用replace函数就可以了
SELECTREPLACE('“AAAAA”','”','')
SELECTREPLACE('“AAAAA”','“','')
这是查询,
如果是更新,用update这种方式就可以了