1. sql怎么修改表字段某列属性值
sql怎么修改表字段某列属性值
alter table tab_info alter column sRyWork_Pstring varchar(200) not null;
2. sql查询表中字段
select * from --主查询
(select namea=c.name from syscolumns c,sysobjects o where o.id=c.id and o.xtype='u' and o.name='tablea') a--A表中所有字段
full join --使用全连接
(select nameb=c.name from syscolumns c,sysobjects o where o.id=c.id and o.xtype='u' and o.name='tableb') b--B表中所有字段
on namea=nameb where namea is null or nameb is null--只保留不同的字段
查询结果是,两表不同的字段列出,两表均有的字段不列:
NAMEA,NAMEB
FIELD1 NULL
FIELD2 NULL
NULL FIELD3
NULL FIELD4
3. sql怎么修改表字段的大小
alter table <表名> alter column <字段名> 新类型名(长度)
示例:假如有名T1,字段名F1,原来F1为varchar(3),现在要改为varchar(10),则可以这么写:
alter table T1 alter column F1 varchar(10)
一般地,改字段名可以用这条语句:
alter table A rename column a to c
但是,实际应用中,我们往往是用J-SQL进行编译,而J-SQL不支持修改字段名,所以,如果一定要修改字段名,那么只有通过变通的方法了,具体思路为:
1.新建一个字段,取名为c;
2.将字段a的内容拷贝到c;
3.删除字段a;
sql修改字段长度的语法:
alter table 表名 modify 字段名 字段类型;
sql修改字段长度的示例代码
alter table qtline modify qtl_bidernote VARCHAR2(4000);
标准SQL,对任何数据库都适用
alter table fzrtmis.reporttemplate modify REPNAME varchar(100);
修改字段名名称
ALTER TABLE TABLENAME RENAME COLUMN COL1 TO COL2;
添加字段
alter table fzrtmis.itiembuildqk add STATIONSTATE CHAR(1)
4. sql数据库 表字段个数有上限么
SQL创建的元素上限数,字段(列)1024个/表,字段个数上限为1024。操作方式如下:
1、首先打开SQL Database Studio。
5. 关于sql查询语句,由于表字段较多,很多字段为空值,查询数据内容最多的数据
单纯用SQL语句,题主这个问题应该没有更简便的解决办法,只能一个一个字段地进行判断,然后再选出有最多非空字段的记录。例如下列SQL语句:
select a.* from
(select *,
case col_1 is null then 0 else 1 end +
case col_2 is null then 0 else 1 end +
...... +
case col_n is null then 0 else 1 end as vals
from t1) a,
(select max(vals) as max_vals from (select
case col_1 is null then 0 else 1 end +
case col_2 is null then 0 else 1 end +
...... +
case col_n is null then 0 else 1 end as vals
from t1)) b
where a.vals=b.max_vals;
可见SQL语句的确是比较繁琐,单用SQL解决只能这样了。如果可能,建议添加一个字段专门记录每行记录有多少个非空字段数,这样要查询拥有最多非空字段的记录时就会方便许多。
还可以考虑创建一个可以计算出每行记录的非空字段数的自定义函数,然后在SQL语句里引用该函数,选择返回值最大的记录就行了,这样相关SQL语句可被简化。当然编写这个自定义函数是要用一些脑筋的。
6. sql表的字段太多,更新表的时候,sql语句写起来很复杂,如何解决这个问题
在系统表中查一下待更新的表的字段信息,如果是SQLServer用syscolumns表,如果是DB2用syscat.columns表,如果是Oracle请使用all_tab_columns。
查出来之后将这些字段复制到EXCEL,用一个公式生成你要的更新语句,例如="sql=sql & " & A2 & " = '" & B2 & "'" ,最后将公式生成的结果复制到你的代码中,再稍微改一改就OK了
7. 求SQL表扩展字段属性的思路
大家在使用SQL Server开发的时候一定会遇到这样的需求,那就是通过Table_Name1表的两个字段Column1、Column2来查询在Table_Name2表中符合这两个条件的记录,并返回Table_Name2中的字段Column3,面对这样的需求,你也许会说使用表连接就可以了,对的,没错,我也是这样想的,但是有的时候往往要面对不同的突发情况,那就是并不是一定会Column1与Column2是全匹配的查询,可能中间还需要一些逻辑的处理,比如字符串的截取后再匹配等等。这个时候我们通常会在SQL Server中写一个函数,这个函数接收两个参数:Column1、Column2,函数体里面做一些逻辑处理,在通过处理好的参数去查询Table_Name2表,并返回相应的值。很好,那下面我们来计算下图中数据的查询情况。假设表1的数据有50W,表2的数据有4W,在表2没有索引的条件下,查询的复杂度就有50W*4W了,两个表都需要做全表扫描,表2的全表扫描就会达到50W次。(图1:需求说明)优化1:这一个优化,每个开发人员都知道,那就是对表2的两个查询字段分别建立索引。这样的优化和之前相比,性能将会提高N个等级。优化2:这第二个优化方法是使用SQL Server的复合索引,在表2上创建一个复合索引,这个符合索引包括需要查询的两个字段,其实就是把两个字段的内容生成一个索引,其中索引包含了两个索引的排序。优化3:这第三个优化方法是使用SQL Server2005之后版本才有的索引-包含性索引(Include),就是在优化2的基础上,把需要返回的字段也一起放入到索引中,这样的查询就只需要查询索引就够了,不需要再读取数据页了,减少磁盘的IO消耗。不过这个方法也不是万能,因为有时可能返回的字段会比较多,有时几个字段加起来的长度有可能超出了900个字符(索引大小范围),如果想了解可以进入:SQL Server 索引中include的魅力(具有包含性列的索引)优化4:在不考虑一些分区、分表、分到不同的磁盘等优化方式的情况下,我们是否还能进一步优化我们的查询呢?这就是这篇文章想要告诉你的,因为我们的回答是:有的。那就是通过SQLCLR的UDT,把表2的数据一次性加载到内存,那么在进行表1查询的时候,我们不需要通过B+树来查询数据了,直接到内存中查询,这样之所以快是因为操作内存要比操作磁盘要快得多。这其中会有些局限性和缺点,具体见下面的缺点描述。设计思路1、去数据库中把表2读取出来,并放到private static readonly IDictionary<string, string> resultCollectionDic的静态变量中。在数据库服务启动的时候是会初始化2、SQLCLR函数的,所以在启数据库服务的时候,也一起把表2的数据保存到了内存当中了。3、上面的查询中包括了两个字段Column1、Column2和一个返回字段Column3,那么我们如何把这些数据保存到IDictionary字典当中呢?我的做法就是把Column1、Column2的中间加一个字符“+”,把这个字符串作为Key值,把Column3这个返回值做为Value,这样就解决了多个And的查询的问题。这个会有些局限性,具体可以见下面的缺点描述。在函数FunctionImsi2HLR2中传进的两个字符后,就要进行上面的拼凑方式来拼凑Key值,再到IDictionary中查询。