··Sql语句
1、truncate –删除所有数据,保留表结构,不能撤销还原,速度快
2、delete –是逐行删除,不适合大量数据删除,速度极慢
3、drop –删除表,表数据和表结构一起删除,速度快
1、修改字段名:
alter table 表名 rename column A to B
2、修改字段类型:
alter table 表名 alter column 字段名 type not null
3、修改字段默认值
alter table 表名 add default (0) for 字段名 with values
如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,
select c.name from sysconstraints a
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id('表名')
and b.name='字段名'
根据约束名称删除约束
alter table 表名 drop constraint 约束名
根据表名向字段中增加新的默认值
alter table 表名 add default (0) for 字段名 with values
4、增加字段:
alter table 表名 add 字段名 type not null default 0
5、删除字段:
alter table 表名 drop column 字段名;
-- 修改字段类型长度
ALTER TABLE userinfo
ALTER COLUMN name varchar(100);
-- 修改字段类型
ALTER TABLE 表名 ALTER COLUMN 字段名 float;
-- 修改字段不允许 NULL 值
ALTER TABLE 表名 ALTER COLUMN 字段名 float NOT NULL;
-- 添加主键
ALTER TABLE userinfo ADD CONSTRAINT id_name PRIMARY KEY(ID);
-- 修改字段名 (执行后会有提示:注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。)
EXEC sp_rename "userinfo.age","userage","COLUMN";
-- 添加字段名
ALTER TABLE userinfo ADD gender bit DEFAULT 0;
-- 删除表
DROP TABLE userinfo;
---开启insert增加id约束
SET IDENTITY_INSERT [dbo].[RefundType] ON
GO
---关闭insert增加id约束
SET IDENTITY_INSERT [dbo].[RefundType] OFF
GO
--如何在SQL中查询同一个字段在哪些表中
SELECT name FROM sysobjects WHERE id IN (SELECT id FROM syscolumns WHERE name = 'XXXXX')
--查出表中字段为空和为零
SELECT *
FROM [BaiChuang].[dbo].[Company] where isnull(Cash,'') =0
--查出23点所有数据
and Datepart(hour,f.DutyShipTime)=23
--查出该字段在那些表里
SELECT name FROM sysobjects WHERE id IN (SELECT id FROM syscolumns WHERE name = 'Note')
--模糊搜索
SELECT*
FROM [BaiChuang].[dbo].[MB_Info] where CHARINDEX('禁用',CompanyName)>0
--电话
select DBO.GetMoblie(MENO)
from dbo.#TEST where MENO like '%[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%'
/*结果:
12368597854
15286952365
12568956854
*/
---占位符
select PName ,len(PName) from ProductInfo where len(PName) = (select max(len(PName)) from ProductInfo)
select id'商品名id', PName'商品名称' ,datalength(PName)'占位符' from ProductInfo where datalength(PName)>=50
----------------------------------------------
去除字段收尾的 []
SELECT REPLACE(REPLACE(car_brand_category_id, '[', '('), ']', ')') AS car_brand_category_id
FROM customer.cc_supplier ;
-------------------------------------------------
update ProductInfo set Remark1=replace(Remark1,char(13),'') where CHARINDEX(char(13),Remark1)>0 --- 除去回车符
update ProductInfo set Remark1=replace(Remark1,char(10),'') where CHARINDEX(char(10),Remark1)>0--- 除去换行符
----查回车符
select * from ProductInfo where CHARINDEX(char(13),FactNames)>0
select * from ProductInfo where CHARINDEX(char(10),FactNames)>0
---去重
select * from Company where CNme in(select CNme from Company group by CNme having count(CNme)>=2)
SQL server 把小写字母改为大写字母的语句采用如下方法:
update 表名 set 字段名a= upper(字段名a)
将大写字母改为小写字母
update 表名 set 字段名a= Lower(字段a)
将为 null的结果替换成 0
SELECT ISNULL(SUM(ISNULL(Price, 0)), 0) 。
一、sql清空表数据的三种方式:
1、truncate –删除所有数据,保留表结构,不能撤销还原,速度快
2、delete –是逐行删除,不适合大量数据删除,速度极慢
3、drop –删除表,表数据和表结构一起删除,速度快
二、语法
truncate table 表名
delete from 表名 where 列名="value "
drop form 表名
1):已存在默认值
语法:exec sp_helpconstraint @objname=表名 (查看指定表相关约束详情)
alter table 表名 drop constraint 约束名 (删除默认值)
alter table 表名 add default 默认值 for 字段名
2:):无默认值
语法:alter table 表名 add default 默认值 for 字段名
---主键自增插入数据错误时:
错误提示:当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'ThirdPartyShip' 中的标识列插入显式值。
set identity_insert [BaichuangReport].[dbo].[ThirdPartyShip] ON--打开
----中间就可对Id直接赋值
set identity_insert [BaichuangReport].[dbo].[ThirdPartyShip] OFF
-----not for replication的增加删除
alter table [BcTms].[dbo].[ThirdPartyShip] alter column id add not for replication --增加
alter table [BcTms].[dbo].[ThirdPartyShip] alter column Id drop not for replication --删除
-----sql的其他语法:
https://blog.csdn.net/qq_43846797/article/details/125138152?spm=1000.2115.3001.6382&utm_medium=distribute.pc_feed_v2.none-task-blog-personrec_tag-12-125138152-null-null.pc_personrec&depth_1-utm_source=distribute.pc_feed_v2.none-task-blog-personrec_tag-12-125138152-null-null.pc_personrec
sql 属性
https://blog.csdn.net/weixin_39756336/article/details/110505460
var sql = string.Format(@"SELECT TOP 100 p.[Id],RTRIM(p.PName)+'/'+RTRIM(p.PNo)+'/'+RTRIM(p.FactName)+'/'+RTRIM(p.UseCarType)+'/'+RTRIM(p.Brand) as [Desc],PNo,p.PName,FactName,UseCarType,Brand,p.PName as Name
FROM ProductInfo p
where charindex('{0}',PName)>=1 or charindex('{0}',Brand)>=1 or charindex('{0}',p.FactName)>=1 or charindex('{0}',p.PNo)>=1 ", searchkey.Trim())
如何在SQL Server中添加当前日期的小时数?
Select JoiningDate ,Dateadd (day , 30 , JoiningDate) from Emp
Select JoiningDate ,DateAdd (month , 10 , JoiningDate) from Emp
Select JoiningDate ,DateAdd (year , 10 , JoiningDate ) from Emp
Select DateAdd(Hour, 10 , JoiningDate ) from emp
Select dateadd (hour , 10 , getdate()), getdate()
Select dateadd (hour , 10 , joiningDate) from Emp
Select DateAdd (Second , 120 , JoiningDate ) , JoiningDate From EMP
如何按月份分组
select
convert(varchar(7),CreateTime,120) as Date,
sum(1) as [Count]
from
ProductInfo
group by
convert(varchar(7),CreateTime,120)
更改字段类型长度
alter table 表
alter column 表中的字段名 类型的长度--varchar(60)
例:把城市表的城市名字段有原来的长度20改为30
alter table Testcity
alter column cityname varchar(30)
更改字段类型
alter table 表
alter column 字段名 更改后的类型
例:把城市表的城市名字段有原来的varchar类型改为int类型
alter table Testcity
alter column cityname int
添加not null约束
alter table 表 alter column 字段名 int not null
例:把cid不能输入空值
alter table Testcity alter column cid int not null
设置主键
alter table 表 add constraint 主键名 primary key(字段名)
例:把cid设为主键
alter table Testcity add constraint PK_cid primary key(cid)
更改字段名
EXEC sp_rename '表名.字段名','更改后的字段名','COLUMN'
添加字段名
ALTER TABLE 表 ADD 字段名 字段类型 DEFAULT null
查出最近一次登录的供应商信息
select CompanyId,MAX(LoginTime)as LoginTime FROM [DtLog].[dbo].CompanyLoginLog where LoginTime>='2023-05-01'
group by CompanyId
----重复生成数据
SELECT RefundOrderNo FROM RefundCompany where not isnull(RefundOrderNo,'')=''and [Status]>0 GROUP BY RefundOrderNo HAVING count(RefundOrderNo)>1
---查询有换行的数据,将换行替换为空
SELECT * FROM ProductInfo WHERE [UseCarType] LIKE '%' + CHAR(10) + '%'
UPDATE ProductInfo SET [UseCarType] = REPLACE([UseCarType], CHAR(13) + CHAR(10), '')