最全mysql句子大全及提高(带阐明和注释) A8站源码交易平台

摘要:A8站源码交易平台一、阐明1、阐明:创立数据库CREATE DATABASE database-name2、阐明:删去数据库drop database dbname3、阐明:备份sql server--- 创立 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack

A8站源码交易平台

一、阐明

1、阐明:创立数据库
CREATE DATABASE database-name
2、阐明:删去数据库
drop database dbname
3、阐明:备份sql server
--- 创立 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 开端 备份
BACKUP DATABASE pubs TO testBack
4、阐明:创立新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
依据已有的表创立新表:
A:create table tab_new like tab_old (运用旧表创立新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、阐明:删去新表
drop table tabname
6、阐明:添加一个列
Alter table tabname add column col type
注:列添加后将不能删去。DB2中列加上后数据类型也不能改动,仅有能改动的是添加varchar类型的长度。
7、阐明:添加主键: Alter table tabname add primary key(col)
阐明:删去主键: Alter table tabname drop primary key(col)
8、阐明:创立索引:create [unique] index idxname on tabname(col….)
删去索引:drop index idxname
注:索引是不行更改的,想更改有必要删去重新建。
9、阐明:创立视图:create view viewname as select statement
删去视图:drop view viewname
10、阐明:几个简略的根本的sql句子
挑选:select * from table1 where 规模
刺进:insert into table1(field1,field2) values(value1,value2)
删去:delete from table1 where 规模
更新:update table1 set field1=value1 where 规模
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
均匀:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、阐明:几个高档查询运算词
A: UNION 运算符
UNION 运算符经过组合其他两个成果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个成果表。当 ALL 随 UNION 一同运用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 便是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符经过包括一切在 TABLE1 中但不在 TABLE2 中的行并消除一切重复行而派生出一个成果表。当 ALL 随 EXCEPT 一同运用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符经过只包括 TABLE1 和 TABLE2 中都有的行并消除一切重复行而派生出一个成果表。当 ALL 随 INTERSECT 一同运用时 (INTERSECT ALL),不消除重复行。
注:运用运算词的几个查询成果行有必要是共同的。
12、阐明:运用外衔接
A、left (outer) join:
左外衔接(左衔接):成果集几包括衔接表的匹配行,也包括左衔接表的一切行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外衔接(右衔接):成果集既包括衔接表的匹配衔接行,也包括右衔接表的一切行。
C:full/cross (outer) join:
全外衔接:不只包括符号衔接表的匹配行,还包括两个衔接表中的一切记载。
12、分组:Group by:
  一张表,一旦分组完结后,查询后只能得到组相关的信息。
 组相关的信息:(计算信息) count,sum,max,min,avg  分组的规范)
    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
 在selecte计算函数中的字段,不能和一般的字段放在一同;
13、对数据库进行操作:
 别离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接标明,附加需求完好的路径名
14.怎么修正数据库的称号:
sp_renamedb 'old_name', 'new_name'

A8站源码交易平台

二、进步
1、阐明:仿制表(只仿制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1(仅用于SQlServer)
法二:select top 0 * into b from a
2、阐明:仿制表(仿制数据,源表名:a 方针表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、阐明:跨数据库之间表的仿制(详细数据运用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘详细数据库’ where 条件
比方:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..
4、阐明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或许: select a,b,c from a where a IN (1,2,3)
5、阐明:显现文章、提交人和最终回复时刻
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、阐明:外衔接查询(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、阐明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、阐明:between的用法,between约束查询数据规模时包括了鸿沟值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
9、阐明:in 的运用办法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
10、阐明:两张相关表,删去主表中现已在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、阐明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、阐明:日程组织提早五分钟提示
SQL: select * from 日程组织 where datediff('minute',f开端时刻,getdate())>5
13、阐明:一条sql 句子搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
详细完结:
关于数据库分页:
  declare @start int,@end int
  @sql  nvarchar(600)
  set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’
  exec sp_executesql @sql

留意:在top后不能直接跟一个变量,所以在实践运用中只要这样的进行特别的处理。Rid为一个标识列,假如top后还有详细的字段,这样做对错常有优点的。因为这样能够防止 top的字段假如是逻辑索引的,查询的成果后实践表中的不共同(逻辑索引中的数据有或许和数据表中的不共同,而查询时假如处在索引则首要查询索引)
14、阐明:前10条记载
select top 10 * form table1 where 规模
15、阐明:挑选在每一组b值相同的数据中对应的a最大的记载的一切信息(相似这样的用法能够用于论坛每月排行榜,每月热销产品剖析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、阐明:包括一切在 TableA 中但不在 TableB和TableC 中的行并消除一切重复行而派生出一个成果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、阐明:随机取出10条数据
select top 10 * from tablename order by newid()
18、阐明:随机挑选记载
select newid()
19、阐明:删去重复记载
1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
2),select distinct * into temp from tablename
  delete from tablename
  insert into tablename select * from temp
点评: 这种操作牵连很多的数据的移动,这种做法不适合大容量但数据操作
3),例如:在一个外部表中导入数据,因为某些原因第一次只导入了一部分,但很难判别详细方位,这样只要鄙人一次悉数导入,这样也就发生很多重复的字段,怎样删去重复字段
alter table tablename
--添加一个自增列
add  column_b int identity(1,1)
 delete from tablename where column_b not in(
select max(column_b)  from tablename group by column1,column2,...)
alter table tablename drop column column_b
20、阐明:列出数据库里一切的表名
select name from sysobjects where type='U' // U代表用户
21、阐明:列出表里的一切的列名
select name from syscolumns where id=object_id('TableName')
22、阐明:列示type、vender、pcs字段,以type字段摆放,case能够方便地完结多重挑选,相似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
显现成果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
23、阐明:初始化表table1
TRUNCATE TABLE table1
24、阐明:挑选从10到15的记载
select top 5 * from (select top 15 * from table order by id asc) table_别号 order by id desc
A8站源码交易平台

三、技巧
1、1=1,1=2的运用,在SQL句子组合时用的较多
“where 1=1” 是表明挑选悉数    “where 1=2”悉数不选,
如:
if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
咱们能够直接写成
过错!未找到目录项。
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安靖 '+ @strWhere 2、缩短数据库
--重建索引A8站源码交易平台
DBCC REINDEX
DBCC INDEXDEFRAG
--缩短数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE
3、紧缩数据库
dbcc shrinkdatabase(dbname)
4、搬运数据库给新用户以已存在用户权限
exec sp_change_users_login 'update_one','newname','oldname'
go
5、检查备份集
RESTORE VERIFYONLY from disk='E:dvbbs.bak'
6、修正数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO
7、日志铲除
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
 @MaxMinutes INT,
 @NewSize INT

USE tablename -- 要操作的数据库名
SELECT  @LogicalFileName = 'tablename_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
 @NewSize = 1  -- 你想设定的日志文件的巨细(M)
Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
 FROM sysfiles
 WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
 CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
 FROM sysfiles
 WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
 (DummyColumn char (8000) not null)

DECLARE @Counter    INT,
 @StartTime DATETIME,
 @TruncLog   VARCHAR(255)
SELECT @StartTime = GETDATE(),
 @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
 AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) 
 AND (@OriginalSize * 8 /1024) > @NewSize 
 BEGIN -- Outer loop.
SELECT @Counter = 0
 WHILE   ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
 BEGIN -- update
 INSERT DummyTrans VALUES ('Fill Log') DELETE DummyTrans
 SELECT @Counter = @Counter + 1
 END
 EXEC (@TruncLog) 
 END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
 CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
 CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
 FROM sysfiles
 WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
8、阐明:更改某个表
exec sp_changeobjectowner 'tablename','dbo'
9、存储更改悉数表
CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
DECLARE @Name    as NVARCHAR(128)
DECLARE @Owner   as NVARCHAR(128)
DECLARE @OwnerName   as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select 'Name'    = name,
   'Owner'    = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN   curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN    
if @Owner=@OldOwner
begin
   set @OwnerName = @OldOwner + '.' + rtrim(@Name)
   exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner
FETCH NEXT FROM curObject INTO @Name, @Owner
END
close curObject
deallocate curObject
GO

10、SQL SERVER中直接循环写入数据
declare @i int
set @i=1
while @i<30
begin
    insert into test (userid) values(@i)
    set @i=@i+1

SQL Server根本函数
1.字符串函数 长度与剖析用
1,datalength(Char_expr) 回来字符串包括字符数,但不包括后边的空格
2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为开端方位,length为字符串长度,实践运用中以len(expression)获得其长度
3,right(char_expr,int_expr) 回来字符串右边第int_expr个字符,还用left于之相反
4,isnull( check_expression , replacement_value )假如check_expression為空,則回来replacement_value的值,不為空,就回来check_expression字符操作类
5,Sp_addtype 自定義數據類型
例如:EXEC sp_addtype birthday, datetime, 'NULL'
6,set nocount {on|off}
使回来的成果中不包括有关受 Transact-SQL 句子影响的行数的信息。假如存储进程中包括的一些句子并不回来许多实践的数据,则该设置因为很多减少了网络流量,因而可明显进步功能。SET NOCOUNT 设置是在履行或运转时设置,而不是在剖析时设置。
SET NOCOUNT 为 ON 时,不回来计数(表明受 Transact-SQL 句子影响的行数)。
SET NOCOUNT 为 OFF 时,回来计数
知识

在SQL查询中:from后最多能够跟多少张表或视图:256
在SQL句子中呈现 Order by,查询时,先排序,后取
在SQL中,一个字段的最大容量是8000,而关于nvarchar(4000),因为nvarchar是Unicode码。 
 
SQLServer2000同步仿制技能完结进程 A8站源码交易平台

  • 全部评论(0)
最新发布的资讯信息
【A8站-免费源码分享|直播源码】直播系统源码开发:关于安卓开发工具和obs直播推流(2020-10-30 09:41)
【计算机/互联网|】【独家修复】用户定制版短视频点赞系统,支持抖音+快手+刷宝+微视等所有主流短视频评论系统源码(2020-10-26 16:34)
【技术宅-为技术而疯|网站架设教程】【独家首发】最新更新已对接短信2020全新抖音快手点赞任务系统霸屏天下小红书头条威客兼职完整搭建架设视频教程(2020-10-25 13:56)
【技术宅-为技术而疯|网站架设教程】最新可用个人发卡网系统源码完整搭建架设视频教程(2020-10-25 10:53)
【技术宅-为技术而疯|网站架设教程】独家更新全新V10抢单系统唯品会京东淘宝自动抢单区块系统源码全开源抢单收单接单返利+搭建架设完整视频教程(2020-10-25 10:52)
【计算机/互联网|】柔丫纸尿裤云仓系统源码部署(2020-10-15 18:13)
【计算机/互联网|】侏罗纪软件模式定制开发(2020-10-14 15:33)
【计算机/互联网|】S2b2C供应商系统 营销闭环(2020-10-10 17:46)
【计算机/互联网|程序设计开发】盛都汇系统奖励机制(2020-10-10 17:20)
【A8站-免费源码分享|网站源码】积分商城系统APP开发(2020-09-23 14:56)
联系我们
Q Q:3101359898 点击直接对话
电话:18580901894
邮箱:admin#a8zhan.com
时间:09:00 - 24:00
手机二维码 访问手机版
返回顶部