我勉强写一个,用oracle的语句啊
update table set 号码=substr(号码,1,n-1)||‘a’||substr(号码,n+1) where 号码='XXXXXXXXXXXX';
where 后面的XXXXXXX表示原来的号码,这里是修改的第n位,修改为a。
sql server中好像这个函数是SUBSTRING
㈡ 建立SQL数据库,其中有个身份证的字段,该用什么数据类型。
设计用户表时,身份证号为固定18位长,对该字段最好采用char数据类型漏慧。
char类型对英文字符占用1个字节,对一个汉字占用2个字节,而且char存储定长数据很方便,char字段上的索引效率极高。
比如:定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。因为是固定长度,所以速度效率高。
(2)sql身份证怎么修改扩展阅读
char与varchar的比较:
1、数据存储开销
每个varchar列需要额外的两个字节,用于反映存储的数据的长毕明度。
每个可为NULL的char列,需要一些字节(空位图)来反应数据的为空性。无论实际数据的长度是多少,char按照定义的长度分配存储空间。
2、NULL值
char列的NULL值占用存储空间,varcahr列的NULL值不占手搜告用存储空间。插入同样数量的NULL值,varchar列的插入效率明显高出char列。
3、插入数据
无论插入数据涉及的列是否建立索引,char的效率都明显低于varchar。
4、更新数据
如果更新的列上未建立索引,则char的效率低于varchar,差异不大;建立索引的话,效率差异较大。
5、修改结构
对于增加列的宽度而言,char与varchar有非常明显的效率差异,修改varcahr列基本上不花费时间,而修改char列需要花费很长的时间。
6、数据检索
无论是否通过索引,varchar类型的数据检索略优于char的扫描。
㈢ sql server 批量修改
服务器宴埋表肢祥镇 TBServer;客户机表 TB;
update TBServer set TBServer.身份证号=TB1.身份证号 from TBServer inner join (select 身份证号,工号 from TB (修改后的身份证号标志子句))as TB1 on tb1.工历粗号=TBServer.工号
㈣ 求一SQL语句把身份带X的小写改大写
用函数upper就可以处理了
UPPER
返回将小写字符数据转换为大写的字符表达式。
update farmer
set sfzh = UPPER(sfzh)
where sfzh='53220119740820511x'
㈤ 数据库身份证错误怎么修改
数据库身游斗份证号码错误可以在辖区派出所户政窗更改。根据查询相关公开信息显示在辖区派神蔽磨出所户政窗口,领取《更正身份证错误申请表》,填写后与户口本、旧身份证一并递交办证窗口。工作人员会当场进行并谈处理。并给付领取身份证凭条通知单。两个月后可以领取新证。也可以办理同城证件快递,在家等待签收。
㈥ PL/SQL developer 修改表姓名为张三和李四的身份证号码的SQL语句,求解!
你好!
答案如下!:
update table set person_id = '11111' where c_name in ('张三','李四');
绝对正确答案!
请您采纳!
㈦ 我在sql数据库里有一列为身份证号,我怎么添加一列为对应的年份啊,
方法1:修改表定义,加入年份
方法2:写存储过程
create proc addcolumn
@tablename varchar(30), --表名
@colname varchar(30), --要加的列名
@coltype varchar(100), --要加的列类型
@colid int --加到第几列
as
declare @colid_max int
declare @sql varchar(1000) --动态sql语句
--------------------------------------------------
if not exists(select 1 from sysobjects
where name = @tablename and xtype = 'u ')
begin
raiserror 20001 '没有这个表 '
return -1
end
--------------------------------------------------
if exists(select 1 from syscolumns
where id = object_id(@tablename) and name = @colname)
begin
raiserror 20002 '这个表已经有这个列了! '
return -1
end
--------------------------------------------------
--保证该表的colid是连孙孙续的
select @colid_max = max(colid) from syscolumns where id=object_id(@tablename)
if @colid > @colid_max or @colid < 1
set @colid = @colid + 1
--------------------------------------------------
set @sql = 'alter table '+@tablename+ ' add '+@colname+ ' '+@coltype
exec(@sql)
select @colid_max = colid
from syscolumns where id = object_id(@tablename) and name = @colname
if @@rowcount <> 1
begin
raiserror 20003 '加一个新列不成功,请检查你的列类型是否正确 '
return -1
end
--------------------------------------------------
--打开修改系统表的则悔链开关
EXEC sp_configure 'allow updates ',1 RECONFIGURE WITH OVERRIDE
--将新列列号暂置为前段-1
set @sql = 'update syscolumns
set colid = -1
where id = object_id( ' ' '+@tablename+ ' ' ')
and colid = '+cast(@colid_max as varchar(10))
exec(@sql)
--将其他列的列号加1
set @sql = 'update syscolumns
set colid = colid + 1
where id = object_id( ' ' '+@tablename+ ' ' ')
and colid > = '+cast(@colid as varchar(10))
exec(@sql)
--将新列列号复位
set @sql = 'update syscolumns
set colid = '+cast(@colid as varchar(10))+ '
where id = object_id( ' ' '+@tablename+ ' ' ')
and name = ' ' '+@colname + ' ' ' '
exec(@sql)
--------------------------------------------------
--关闭修改系统表的开关
EXEC sp_configure 'allow updates ',0 RECONFIGURE WITH OVERRIDE
go