MySQL语句大全

1、说明:创建数据库

CREATE databasename

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

--- 创建 备份数据的 device

USE master

EXEC 'disk''testBack''c:\mssql7backup\MyNwind_1.dat'

--- 开始 备份

BACKUP pubs testBack

4、说明:创建新表

create tabname(col1 type1 [nullprimary ],col2 type2 [nullcreate tab_new tab_old (使用旧表创建新表)

B:table as col1,col2… tab_old definition table table add col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加类型的长度。

7、说明:添加主键: table add keyAlter tabname primary (col)

8、说明:创建索引:[] idxname tabname(col….)

删除索引:index create viewname select drop viewname

10、说明:几个简单的基本的sql语句

选择:* table1 范围

插入:into valuesdelete table1 范围

更新:table1 field1=value1 范围

查找:* table1 field1 ’%value1%’ select from order field1,field2 []

总数:count totalcount table1

求和:sumas from select (field1) avgvalue table1

最大:maxas from select (field1) minvalue table1

11、说明:几个高级查询运算词

A: 运算符

UNION ALL UNION UNION ),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

B: 运算符

EXCEPT ALL EXCEPT EXCEPT ),不消除重复行。

C: 运算符

INTERSECT ALL INTERSECT INTERSECT ),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。

12、说明:使用外连接

A、

左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

SQL: a.a, a.b, a.c, b.c, b.d, b.f a OUT b a.a = b.c

B::

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:/

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

12、分组:by一张表,一旦分组完成后,查询后只能得到组相关的信息。

 countsummaxminavg  在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据

 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名

14.如何修改数据库的名称:

sp_renamedb ,  

二、提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

法一:* b a 1<>1(仅用于SQlServer)

法二:top into from into select from into select from in where from in wherea,b,c a a (d b ) 或者: a,b,c a a (1,2,3)

5、说明:显示文章、提交人和最后回复时间

select from a,(maxfrom where .title=a.title) b

6、说明:外连接查询(表名1:a 表名2:b)

select from LEFT JOIN ON * (a,b,c a) T t.a > 1;

8、说明:的用法,限制查询数据范围时包括了边界值,between* table1 time time1 time2

select from where not 数值1 数值2

9、说明:的使用方法

select from where notin from where exists ( * table2 table1.field1=table2.field1 )

11、说明:四表联查问题:

select from left join on right join on inner d a.a=d.d .....

12、说明:日程安排提前五分钟提醒

SQL: * 日程安排 datediff(,f开始时间,getdate())>5

13、说明:一条sql 语句搞定数据库分页

select 10 b.* (top from order 排序字段 ) a,表名 b b.主键字段 = a.主键字段 by declare intend @sql  nvarchar(600)

  @sql=’topendfrom where not (topfrom where exec  

注意:在后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果后还有具体的字段,这样做是非常有好处的。因为这样可以避免 的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)

14、说明:前10条记录

select 10 * form table1 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

select from where select (a) tablename tb tb.b=ta.b)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(a tableA ) (a tableB) (a tableC)

17、说明:随机取出10条数据

select 10 * tablename by newid()

19、说明:删除重复记录

1),from where not (maxfrom group col1,col2,...)

2),distinct into from delete tablename

  into select from table column_b identity(1,1)

 from where not (

select (column_b)  tablename by table drop column_b

20、说明:列出数据库里所有的表名

select from where 'U' name syscolumns id=object_id()

22、说明:列示type、vender、pcs字段,以type字段排列,可以方便地实现多重选择,类似中的

select sumcase when then else endsumcase when then else endsumcase when then else endFROM group type

显示结果:

type vender pcs

电脑 A 1

电脑 A 1

光盘 B 2

光盘 A 2

手机 B 3

手机 C 3

23、说明:初始化表table1

TRUNCATE table1

24、说明:选择从10到15的记录

select 5 * (top from order id ) table_别名 by desc

三、技巧

1、1=1,1=2的使用,在SQL语句组合时用的较多

1=1” 是表示选择全部    “1=2”全部不选,

如:

if @strWhere !=@strSQL = + @tblName + + @strWhere

end

else

begin

set 'select count(*) as Total from [' ']'

end

我们可以直接写成

错误!未找到目录项。

set 'select count(*) as Total from [' '] where 1=1 安定 'sp_change_users_login ,,from 'E:\dvbbs.bak'

6、修复数据库

ALTER [dvbbs] SINGLE_USER

GO

DBCC CHECKDB(,repair_allow_data_loss) TABLOCK

GO

ALTER [dvbbs] MULTI_USER

GO

7、日志清除

SET ON

DECLARE @MaxMinutes ,

 INT

-- 要操作的数据库名

SELECT  'tablename_log'-- 日志文件名

@MaxMinutes = 10, @NewSize = 1  @OriginalSize @OriginalSize = FROM WHERE = @LogicalFileName

SELECT + db_name() + +

 ((30),@OriginalSize) + +

 ((30),(@OriginalSize*8/1024)) + FROM WHERE = @LogicalFileName

CREATE DummyTrans

 char not )

@Counter    ,

 @TruncLog   (255)

SELECT @TruncLog = + db_name() + (@TruncLog)

-- Wrap the log if necessary.

WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) AND SELECT FROM WHERE = @LogicalFileName)

 (@OriginalSize * 8 /1024) > @NewSize

 -- Outer loop.

SELECT WHILE   ((@Counter < @OriginalSize / 16) (@Counter < 50000))

 -- update

 DummyTrans () DummyTrans

 @Counter = @Counter + 1

 EXEC END

SELECT + db_name() + +

 ((30),) + +

 ((30),(*8/1024)) + FROM WHERE = @LogicalFileName

DROP DummyTrans

SET OFF

8、说明:更改某个表

exec 'tablename''dbo'

9、存储更改全部表

CREATE dbo.User_ChangeObjectOwnerBatch

@OldOwner NVARCHAR(128),

@NewOwner NVARCHAR(128)

AS

DECLARE Name    NVARCHAR(128)

DECLARE as @OwnerName   NVARCHAR(128)

DECLARE CURSOR 'Name'    name'Owner'    sysobjects

where by curObject

FETCH FROM INTO Nameset '.' Nameexec NEXT curObject @, @Owner

END

close curObject

GO

@i @i=1

while @i<30

begin

    into valuesset Name     Zhangshan 80

 Wangwu      50

 select (score) tb_table)<60)

begin

update set score<60

if  (minfrom break

 continue

end

 

1.按姓氏笔画排序:

Select From Order CustomerName Chinese_PRC_Stroke_ci_as //从少到多

2.数据库加密:

select '原始密码'pwdencrypt()

select '原始密码''加密后密码'--相同;否则不相同 encrypt('原始密码')

select '原始密码'pwdcompare(,) = 1@list (1000),

@sql nvarchar(1000)

select ','name sysobjects a,syscolumns b a.id=b.id a.=@sql=+(@list,len(@list)-1)+(@sql)

4.查看硬盘分区:

EXEC select from =

    select from '相等'

else

print hcforeach GLOBAL SELECT +RTRIM(spid) master.dbo.sysprocesses

WHERE IN'SQL profiler''SQL 事件探查器'sp_msforeach_worker Top From Top From Where in Select M ID 表) by Desc

----------------------------------

N到结尾记录

Select N * by Desc

案例

例如1:一张表有一万多条记录,表的第一个字段 RecID 是自增长字段, 写一个SQL语句,找出表的第31到第40个记录。

 top from where not  (top from select 10 recid A ……是从索引中查找,而后面的top from order select 30 recid A by select 30 recid A recid>-1

例2:查询表中的最后以条记录,并不知道这个表共有多少数据,以及表结构。

set 'select top 1 * from T   where pid not in (select top ' count' pid  from  T)'

print @s      sp_executesql  @s

9:获取当前数据库中的所有用户表

select from where 'u' status>=0

10:获取某一个表的所有字段

select from where '表名'name syscolumns id (id sysobjects type = and = )

两种方式的效果相同

11:查看与某一个表相关的视图、存储过程、函数

select from where and like name 存储过程名称 sysobjects xtype=* master..sysdatabases D sid inselect from where =)

或者

select name DB_NAME master..sysdatabases sid <> 0x01

14:查询某一个表的字段和数据类型

select from table_name = sp_addlinkedserver   , , , sp_addlinkedsrvlogin  , ,, , * ITSV.数据库名.dbo.表名

--导入示例

select into from sp_dropserver  ,  

--连接远程/局域网数据(openrowset/openquery/opendatasource)

--1、openrowset

--查询示例

select from 'SQLOLEDB ''sql服务器名 ''用户名 ''密码 '* openrowset( , ; ; ,数据库名.dbo.表名)

openrowset( , ; ; ,数据库名.dbo.表名)

select from b

set from 'SQLOLEDB ''sql服务器名 ''用户名 ''密码 'as inner 本地表 b

on sp_addlinkedserver   , , , *

FROM 'SELECT *  FROM 数据库.dbo.表名 'openquery(ITSV,  )

select from b

set openquery(ITSV,  ) a

inner 本地表 b a.列A=b.列A

*

FROM   'SQLOLEDB ''Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' opendatasource( ).数据库.dbo.表名

select from substringrightleftisnullEXEC 'NULL'

6,nocount {|}

使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。

SET ON NOCOUNT 为 时,返回计数

常识

fromOrder ,查询时,先排序,后取

在SQL中,一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。

  

SQLServer2000同步复制技术实现步骤

一、 预备工作

1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户

--管理工具

--计算机管理

--用户和组

--右键用户

--新建用户

--建立一个隶属于administrator组的登陆windows的用户(SynUser)

2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:

我的电脑 

--确定

3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

开始(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)

开始"SQL SERVER 2000"namename 

要求:

srv1.库名..author增加记录则srv1.库名..author记录增加

srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新

--*/

sp_addlinkedserver ,,,sp_addlinkedsrvlogin ,,,,--控制面板--管理工具--服务--右键 Distributed Transaction Coordinator--属性--启动--并将启动类型设置为自动启动

go

 

--然后创建一个作业定时调用上面的同步处理存储过程就行了

 

 

设置方法:

我的电脑 

 

--在srv1中创建如下的同步处理存储过程

create b namenamesrv2.库名.dbo.author b,author i

where and

(b.<> i.or  

--插入新增的数据

insert nameid,,telphone author i

where exists(

select from where  

--删除已经删除的数据(如果需要的话)

delete srv2.库名.dbo.author b

where exists(

select from where <code plain"="" style="margin: 0px !important; padding: 0px !important; white-space: pre-wrap; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.8em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; min-height: auto !important;">go

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值