您的位置:首页 > 数据库

sql常用语句

2017-09-26 16:52 381 查看
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);

where str like '%df%'    //模糊查询   //返回数据表中包含df的行

//报错:列名 'CreateTime' 不明确
如果按下列语句,是会报错的:select id,a.name,b.name from table1 a,table2 b where a.id=b.id
此时,由于select后的id并未指明出处,所以就报错,正确改法:select a.id,a.name,b.name from table1 a,table2 b where a.id=b.id

//报错:从varchar数据类型到datetime数据类型的转换产生一个超出该范围的值
由于日期超出了范围。比如2月只有28天,要转换的varchar是'2015-02-30'就会报这个错。

C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA   //sql服务器存放数据库的目录    //还原数据库的时候,文件已存在会出错,删掉即可

alter table fxlog add paytime varchar null default '';     //varchar(1)

insert Lxlog  values('123','asdfsdaf')   //插入数据

CREATE TABLE Lxlog(       --创建表
ID   INT              NOT NULL  IDENTITY(1,1),
cardId VARCHAR (20)   NOT NULL,
log  varchar(20)      NOT NULL,
PRIMARY KEY (ID)
)

//double对应float   //不限制小数位

sql登录

(local)    //付费版

.\SQLEXPRESS    //免费版

//1=1   //防止where后面直接加个and出错
//1=1防止“where and id=3”的情况下出错
where 1=1 and id=3   //使用方法
where 1!=1 or id=3   //使用方法

//sql数据库可以存千万条数据

//bit  //bool类型   //只能存零和一

insert into RefererSetup([df]) select [df] from RefererSetup where Id=2    //同表复制行

//
SELECT LastName,FirstName   //不同的表复制行
INTO Persons_backup
FROM Persons
///
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

/////////

inner join   //两张表组合起来   //内连接

left join    //以左边为准

CONVERT(varchar,sxrqY)+'-'+CONVERT(varchar,sxrqM)+'-'+CONVERT(varchar,sxrqD) like @x        //类型转换加拼接

declare @x nvarchar(100)
select @x='%点%'
select  * from bx where bxhth like @x
///////////////////////////////////////////////

//需要备份文件夹有“Authenticated Users”的读写权限
//备份数据库
BACKUP DATABASE pet               //BACKUP DATABASE pet  TO disk = 'd:\1.bak' WITH FORMAT,NAME = 'df:573270407'
TO disk = 'd:\1.bak'
WITH FORMAT,
NAME = 'df:573270407'

//还原数据库
USE master
GO
RESTORE DATABASE pet
FROM disk = 'd:\1.bak'
GO

//查看备份文件
REstore filelistonly from disk='d:\1.bak'

/////////

--alter table Shop add zjxe int null;   //动态添加表段

--alter table Shop DROP COLUMN zjxe;   //动态删除表段

alter table SysArguments add isZDYSX tinyint not null default 0;    //创建一个字段并添加默认值

tinyint   //一个TINYINT型数据只占用一个字节,一个INT型数据占用四个字节   //c#可用byte类型接收

select * from x where xx is null   //将null作为条件

C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Backup\   //备份默认路径

decimal(3, 1)    //整数和小数总共三位,保留一位小数,总位数超过三位会报错,比如,输入123.1会报错

varchar、nvarchar   //可变长度
char、nchar  //固定长度
//varchar(50)\char(50),输入九个字符,varchar就占用9个,char依然是50个

//char(10)、varchar(10)     //五个汉字
//nchar(10)、nvarchar(10)     //十个任意字符(汉字、字母、数字)

//VARCHAR型字段可以比CHAR型字段占用更少的内存和硬盘空间,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。

select * from (SELECT * fROM cx union All SELECT * fROM cix union All SELECT * fROM sx union All SELECT * fROM jgx) t where bxhth=123123 order by clrqY desc    //把查询结果作为表进行查询

SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer   //分组累加

create view df             //创建视图    //会创建一个表
as
SELECT * fROM cx union All SELECT * fROM cix union All SELECT * fROM sx union All SELECT * fROM jgx

select  * from df where bxhth='123123'    //调用视图

//UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
SELECT column_name(s) FROM table_name1           //不允许重复
UNION
SELECT column_name(s) FROM table_name2

SELECT column_name(s) FROM table_name1   //允许重复
UNION ALL
SELECT column_name(s) FROM table_name2

SELECT COUNT(*) FROM table   //查询表的行数

select * into xx from qc   //复制一个表    //对象资源管理器——数据库——表——右键刷新

SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename   //复制全表

SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
//复制字段

select DepthCode,* from model where DepthCode is null   //条件为null的查询

declare @表名  int                    //动态删除表
set @表名=9
while @表名<900000
begin
exec('DROP TABLE CustomData_'+ @表名)
set @表名=@表名+1
end

sp_helptext 'P_Init_CreateComp'   //搜素存储过程

exec [P_Init_CreateComp] 418,'admin','49BA59ABBE56E057','18888888888','18888888888','金融贷微商城 ','金融贷微商城 ','金融贷微商城 ','金融贷微商城 ',
20160830130619,''   //在server2中建立新公司  //由server2中的数据库连接字符串,找到公司的表    //在公司的表调用存储过程  //存储过程在公司的表中添加管理员,以及默认分店、默认操作员、插入系统短信模版

SELECT LEN(column_name) FROM table_name     //查询字段大小
//select LEN('df')

truncate table SmsTimed   //清空表

select 'df'   //输出字符串

select '['+cast (id as nvarchar(100))+']' from Order1  //sql拼接字符串    //字符串要用单引号,使用双引号会被当成字段名   //需要拼接的内容都是字符串,不是的话需要将其转化为字符串

select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name   //sql判断

datediff( DAY, csym,'2016/11/1 0:00:00')%2   //负数的余数始终为0

select csym,ymzq from MemCard where CompID=315 and (datediff( DAY, csym,'2016/9/9 10:40:03')=ymzq or datediff( DAY, csym,'2016/9/9 10:40:03')=0)  //where xx1 and (xx2 or xx3),将“xx2 or xx3”当成一个条件

select csqc,qczq from MemCard where CompID=315 and 19-substring(csqc,0,charindex('.',csqc))=qczq    //19-substring(csqc,0,charindex('.',csqc))=qczq ,通过减法的返回值进行判断

select csqc,qczq from MemCard where CompID=315 and csqc =' 9.8'   //此语句查不到csqc ='9.8'的数据,因为sql把字符串里的空格也当成了条件的一部分

list.Add(new { t = dr.GetString(0), z = dr.GetInt32(1), bt = (1 == 1 ? "公历" : "农历") });// dr.GetString(0),对应的数据库的字段的类型也要是string

sql(Structured Query Language)   //结构化查询语言

declare @str nvarchar(100)       //定义变量
select @str='4.1'        //变量赋值
select substring(@str,0,charindex('.',@str))   //输出变量里第一个“.”前面的字串
select substring(@str,charindex('.',@str)+1,len(@str))         //输出变量里第一个“.”后面的字串

//sql里选中一行语句,按Alt+X则单独运行这一行语句

select substring(csym,0,charindex('.',csym)) as df,substring(csym,charindex('.',csym)+1,len(csym)) as df from MemCard  where Id=129241 and substring(csym,0,charindex('.',csym))=4 and substring(csym,charindex('.',csym)+1,len(csym))=1
//substring(csym,0,charindex('.',csym)),返回csym里第一个“.”前面的字串;substring(csym,charindex('.',csym)+1,len(csym)),返回csym里第一个“.”后面的字串

alter table SysArguments add zjxe tinyint null;    //短整型  //tinyint占一个字节,而int占四个字节

SELECT datediff( DAY, cssr, '2016/5/3' ) as df,cssr from MemCard where datediff( DAY, cssr, '2016/5/3' )>0    //datediff( DAY, 时间1, 时间2 ),返回时间2减去时间1的值,返回值可以是负数

select DATEPART(yy,cssr) as nian,* from MemCard  where Id=129241 and DATEPART(yy,cssr)=2013   //DATEPART(yy,cssr) as nian,截取datetime中的年,并重命名为nian
///////////
create view v_MemCard                   //创建视图
as
select MemCard.*, DATEPART(DAY, cssr) as tian, DATEPART(MM, cssr) as yue from MemCard

select * from v_MemCard   //调用视图

//对于存有数据datetime的字段,可以直接在设计器里将其换成string,不会出错

数据库——视图——v_memberlist      //蓝色的是关键字(如:select、from、on),绿色是表和字段名(如:“MemLevel ml”、“a.*,s.ShopName,ml.LevelName”)     //存储过程有时会跟视图绑定,如果视图里的表更改了结构(增加、删除字段,修改字段名),那么sql的查询结果就会出错            //视图存在缓存,存储过程会运行上一次视图成功执行的而生成的结果    //更改了视图结构就要重新成功执行一遍视图

DELETE FROM master WHERE CompID<>315            //删除CompID不等于315的数据

int null    //支持-2147483648~+2147483647(2的31次方)之间的数值        //32位(32个“01”,第一对“01”是代表正负,去掉第一对,剩下31对“01”,所以他的数值是2的31次方)

update Shop set zjxe='0' //更新所有的zjxe字段

diag.URL = "/Onlines/Shop/ShopParaSet?id=" + id ;    //

update master set ShopID='1' where Id='2'

//sql还原数据库(使用windows登录)没有权限,可使用sa(超级管理员),有些sa无法使用,解除禁用即可

工具——选项——设计器——阻止保存要求重新创建表的更改(取消勾选)  //解决数据库无法更改的问题

DBCC CHECKIDENT ('master', RESEED, 2)    //设置master表的当前的id从2开始自增

//给表中添加新字段
alter table MemCard add ZhiWenYi varchar(8000) null;
go

//////////////////////////
delete from master where Id between 700 and 2000

/////////////////
select * from gsjieshao where id=(SELECT g.id as gsid fROM gsjieshao g left join hyglxitong h on g.id=h.gsid where h.id=3)   //嵌套查询

SELECT g.name as gsname,h.*,g.* fROM gsjieshao g left join hyglxitong h on g.id=h.gsid where h.id=3

//////////左查询

select p.name as pname,b.name as bname,g.name as gname,k.name as kname,* from pinpai p left join banben b on p.id=b.id left join gongneng g on p.id=g.id left join kaifa k on p.id=k.id               //多表左查询

////////////

select * from content order by DateAndTime desc

SELECT * FROM ( SELECT ROW_NUMBER() OVER (order by T.ID) AS Row, T.* FROM Content T) TT WHERE TT.Row between 1 and 6

SELECT * FROM ( SELECT ROW_NUMBER() OVER (order by T.ID) AS Row, T.* FROM hyglxitong T where t.pp=1 and t.bb=1 and t.gn=1 and t.kf=1) TT WHERE TT.Row between 1 and 55

select row_number()over(order by id) as r,a.* from Content a;   //添加自动排序的表段,并给表重命名

SELECT T.* FROM Content T              //给表重命名为"T"

select a.* from Content a where id between 1 and 20000    //查询id在1到20000的数据

//如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'       //例子

UPDATE Content set FileUrl = '/Areas/会员管理软件/images/icon.png' WHERE CatalogID=612     //软件图片

update Content set LinkUrl='http://www.baidu.com' where CatalogID=608      //友情链接

select * from Content where CatalogID=612

SELECT * FROM(SELECT ROW_NUMBER() OVER (order by T.DateAndTime desc)AS Row, T.* FROM Content T left join Catalog c on t.catalogid=c.catalogid  WHERE  1=1 and c.ParentID=610 ) TT  WHERE TT.Row between 1 and 8

SELECT 字段 FROM 表 WHERE 某字段 Like 条件            //模糊查询
SELECT * FROM Content WHERE Title Like '%人%'    //查找出包含“人”的字段
SELECT * FROM Content WHERE Title Like '%人%' or laiyuan like '%1%' //多列名模糊查询

select * from ( SELECT ROW_NUMBER() OVER (order by T.ID desc) AS Row, T.* FROM yjdongtai t where t.name Like '%v%' or t.laiyuan like '%1%') tt where tt.Row between 1 and 10

select top 3 * from ( SELECT ROW_NUMBER() OVER (order by T.ID desc) AS Row, T.* FROM Content t left join Catalog c on t.catalogid=c.catalogid where c.ParentID=604 and t.Title Like '%什%') tt where tt.Row between 1 and 6
select * from content t left join Catalog c on t.catalogid=c.catalogid where c.ParentID=604 and t.Title Like '%什%'
select * from content t left join Catalog c on t.catalogid=c.catalogid where c.ParentID=604 and t.ID=3747
select * from content t left join Catalog c on t.catalogid=c.catalogid where c.ParentID=604

"select * from ( SELECT ROW_NUMBER() OVER (order by T.ID desc) AS Row, T.* FROM Content t left join Catalog c on t.catalogid=c.catalogid where c.ParentID=" + ParentID + " and t.Title Like '%" + like + "%') tt where tt.Row between "+start+" and "+stop

select (row_number()over(order by id))i,* from column2_img
//////////////////////////////

select row,ttt.* from (select ROW_NUMBER() over(order by t.fabutime desc) as row,t.* from yjdongtai t) ttt where ttt.row
between
(select row from (select ROW_NUMBER() over(order by t.fabutime desc) as row,t.* from yjdongtai t) tt where tt.ID=1)-1
and
(select row from (select ROW_NUMBER() over(order by t.fabutime desc) as row,t.* from yjdongtai t) tt where tt.ID=1)+1

SELECT * fROM gsjieshao g left join hyglxitong h on g.id=h.gsid where h.id=3               //将多个表通过某个字段联系在一起

SELECT g.name as gsname,* fROM gsjieshao g    //列名或表名的重命名

///////////设置筛选器

表——筛选器——筛选设置——创建日期——大于等于——开始建表的日期

///////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: