sqlserverデータベース操作大全-常用文/テクニック集錦/経典文
本文は累計整理で、ちょっと散らかっているので、間に合って見ましょう.
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆
☆
☆ sql
☆
☆
☆ 2012 -8
☆
☆ :
☆
☆ : , , !
☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
MS SQL ,
(-) :1. 2.
and or not
where
not and or
coalesce
coalesce(i.ProductID,d.ProductID)
@@rowcount
SQL
select * from where like '%[ - ]%'
select * from where like '%[a-z]%'
-- ,
select --
insert --
delete --
update --
--
create table --
drop table --
alter table --
create view --
drop view --
create index --
drop index --
create proceduer --
drop proceduer --
create trigger --
drop trigger --
create schema --
drop schema --
create domain --
alter domain --
drop domain --
--
grant --
deny --
revoke --
--
commit --
rollback --
set transaction --
-- SQL
declare --
explan --
open --
fetch --
close --
prepare -- SQL
execute -- SQL
describe --
------------------SQL -----------------
:
insert into ( 1, 2...) values ( 1, 2...)
:
insert into select * from
:insert into ( 1, 2...) select ( 1, 2...) from
insert select :
SELECT
INSERT INTO SELECT
INSERT INTO SELECT
insert select :
select * into from
----------SQL truncate table delete drop ----------
truncate table Where Delete ,
truncate table Delete , 。
Delete , 。
truncate table , 。
truncate table , 、 、 。
。 , Delete。
FOREIGN KEY , truncate table, Where Delete 。
truncate table , 。
truncate table 。
truncate,delete,drop :
: delete where delete
:truncate where delete, drop
:
1.truncate delete ( )
drop (constrain), (trigger), (index);
/ , invalid .
2.delete dml, rollback segement , ;
trigger, .
truncate,drop ddl, , rollback segment , . trigger.
3.delete extent, (high w2atermark)
drop
truncate minextents extent, reuse storage;
truncate ( ).
4. , : drop> truncate > delete
5. : drop truncate, .
:
delete, where . .
, drop
. , truncate .
, trigger, delete.
, truncate reuse stroage, /
--------------------------- --------------------------
1.UNION
SELECT NAME FROM SOFTBALL
UNION
SELECT NAME FROM FOOTBALL
distinct ( )
select distinct * from
with ties ( )
select Top 10 with ties * from
2.UNION ALL
SELECT NAME FROM SOFTBALL
UNION ALL
SELECT NAME FROM FOOTBALL
3.INTERSECT
SELECT * FROM FOOTBALL
INTERSECT
SELECT * FROM SOFTBALL
4.MINUS ( )
SELECT * FROM FOOTBALL
MINUS
SELECT * FROM SOFTBALL
5.in( )
SELECT * FROM FRIENDS WHERE STATE IN('CA','CO','LA')
6.BEWTEEN ( )
SELECT * FROM PRICE WHERE WHOLESALE BETWEEN 0.25 AND 0.75
7. (||)
SELECT (NAMEa || NAMEb) as FROM FRIENDS
SELECT (NAMEa || ',' || NAMEb) as FROM FRIENDS --
8.STARTING WITH ( like , sql )
SELECT 1, 2... FROM WHERE STARTING WITH('Ca')
ORDER BY ( )
:SELECT * FROM ORDER BY
:SELECT * FROM ORDER BY DESC
: , ORDER
BY 1
GROUP BY ( )
SELECT FROM GROUP BY
HAVING ( )
SELECT 1,AVG( 2) FROM GROUP BY HAVING AVG( 3)>66
---
WHERE
:SELECT O.NAME,O.PARTNUM,P.PARTNUM FROM ORDERS as O,PART as P WHERE O.PARTNUM > P.PARTNUM
---
WHERE F.PARTNUM = S.PARTNUM AND F.DESCRIPTION <> S.DESCRIPTION
------------------------ --------------------------
VARIANCE ( )
:SELECT VARIANCE( ) AS FROM -- int double
STDDEV ( )
:SELECT STDDEV( ) AS FROM -- int double
ADD_MONTHS ( )
:SELECT ADD_MONTHS(ENDDATE,1) AS FROM --ENDDATE datetime
ADD_MONTHS(ENDDATE,1) where
LAST_DAY ( )
:SELECT LAST_DAY(ENDDATE) AS FROM
DISTINCT ( , )
:SELECT DISTINCT FROM
MONTHS_BETWEEN ( )
1:SELECT MONTHS_BETWEEN(ENDDATE,STARTDATE) AS FROM
2:SELECT * FROM WHERE MONTHS_BETWEEN(DATETIME1,DATETIME2)>0
SYSDATE ( )
:SELECT DISTINCT SYSDATE FROM
---------------------- --------------------------
ABS()
CEIL()
FLOOR()
MOD(A,B) A B
SIGN() -1 , 1 ,
SQRT() ,
----------------------- ---------------------------
CHR() ASCLL ,
:SELECT CHR( ) FROM
CONCAT() || ,
:SELECT CONCAT( 1, 2) FROM
INITCAP() ,
:SELECT INITCAP( ) as FROM
LOWER()
UPPER()
LENGTH()
---------------------- ----------------------
TO_CHAR()
TO_NUMBER()
---
GREATEST() , ;
:SELECT GREATEST(‘ALPHA’,’BRAVO’,’FOXTROT’,’DELTA’,’FP’) FROM
LEAST() !
:SELECT DISTINCT LEAST(34,567,3,45,1090) FROM
USER()
:SELECT DISTINCT USER FROM
------------------- ---------------
EXISTS
,EXIST true。 ,EXIST false。
:
SELECT NAME FROM ORDERS
WHERE EXISTS(SELECT * FROM ORDERS WHERE NAME ='MOSTLY HARMLESS')
ANY/SOME ANY SOME
ANY , TRUE
:
IN ,IN 。
ANY SOME 。
:
SELECT NAME FROM ORDERS WHERE NAME > ANY
(SELECT NAME FROM ORDERS WHERE NAME ='JACKS BIKE')
ALL TRUE,ALL 。
:
SELECT NAME FROM ORDERS WHERE NAME <> ALL
(SELECT NAME FROM ORDERS WHERE NAME ='JACKS BIKE')
------------------- --------------------
“@” , DECLARE 。
:DECLARE @
SELECT SET
: SELECT @ =
SET @ =
, 。
。
, “@@” 。
、
---------------------- - - ------------------
, 。
4 : (Atomicity)、 (Consistency)、 (Isolation) (Durability), ACID 。
: , , 。
: , 。
: , , 。
, 。
。
: , , , , 。
a、
T-SQL (begin transaction) (commit transaction) (rollback transaction)
b、
, T-SQL 。
, , , 。
:set implicit_transaction on;
c、
,SQL Server 。 , begin transaction ,
T-SQL 。
, set implicit_transaction on , , , 。
: begin transaction
: commit transaction
: rollback transaction
:create view as <select >
:drop view
select :
1.order by , select top
2.into
3.
:create unique 【clustered | nonclustered】 index on ( ) 【with fillfactor=x】
unique ,
clustered , nonclustered ,
fillfactor , , 0-100 ,
:drop index .
( )。
(order by)
------------------------- ----------------------
SQL :
DDL 、 , , , — (CREATE,ALTER,DROP,DECLARE)
DML , , , — (SELECT,DELETE,UPDATE,INSERT)
DCL , , , — (GRANT,REVOKE,COMMIT,ROLLBACK)
, :
1、 :
CREATE DATABASE db1(db1 , )
on primary -- primary ,
(
--
name='MySchool_data', --
filename='D:\project\MySchool_data.mdf', --
size=5MB, --
maxsize=100MB, --
filegrowth=15% --
)
log on
(
-- ,
name='MySchool_log',
filename='D:\project\MySchool_data.ldf',
size=2MB,
filegrowth=1MB
)
2、 :
drop database db1(db1 , )
3、 : sql server
--- device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
---
BACKUP DATABASE pubs TO testBack
4、 :
create table tb1
(
Id int not null primary key, --
one int identity(1,1), --
name varchar not null, --
phone nvarchar(100), --
...
)
:
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 tb1
use MySchool -- MySchool
if exists(select * from MySchool where name='Student') --exist ,
drop table Student
6、 :
:Alter table add /
:
alter table
add constraint
-- ( StudentNo )
alter table Student
add constraint PK_stuNo primary key (StudentNo)
-- ( )
alter table Student
add constraint UQ_stuID unique ( )
-- ( , “ ”)
alter table Student
add constraint DF_stuAddress default (' ') for Address
-- ( 1980 1 1 )
alter table Student
add constraint CK_stuBornDate check (BornDate >= '1980-01-01')
-- ( Student Result , StudentNo)
alter table Result
add constraint FK_stuNo
foreign key (stuNo) references Student(stuNo)
:
, , ( ), :
ALTER TABLE DROP CONSTRAINT
GO
ALTER TABLE DROP COLUMN
GO
:
alter table Student
drop constraint
:
alter table Student
add constraint PK_stuNo
7、 :
:Alter table tabname add primary key(ID)( ,ID , )
:
:Alter table tabname drop primary key(ID)( )
8、 :
:create [unique] index idxname on tabname(col….)
:drop index idxname
: , 。
9、 :
:create view viewname as select statement
alter view yourviewname as...
drop view yourviewname as...
alter view yourviewname with encryption as...
10、 : sql
:select * from table1 where Id=1(Id=1 , )
: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 outer join:
: , 。
, sql
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.
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、 :
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、 :
select name from sysobjects where type='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
( Randomize , SQL )
, , 。
ASP“ ” 。 :
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... ...
end if
objRec.MoveNext
Wend
。 , 1 500 ( 500 )。
, ID 、 RNumber。 THEN 。
RNumber 495, 。
500 , ,
。 ?
SQL, recordset, :
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
RNumber ID, 。 , “ ” 。
Recordset , 。
Random , 。
Random SQL 。
recordset , , :
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
10 ( 10 ), BETWEEN 。
, SELECT ( ID ):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
: 9 。
,
Access :SELECT top 10 * From ORDER BY Rnd(id)
Sql server:select top n * from order by newid()
mysql select * From Order By rand() Limit n
Access ( ,Access , Access SQL , , )
select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
SQL ...
:
SQL :select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access :SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute
Execute
SQL 。 SQL , :
1. SQL , 。 :
Set = .Execute("SQL ")
Execute , , , Set , , 。
2. SQL , 。 :
.Execute "SQL " [, RecordAffected][, Option]
·RecordAffected , ,SQL , 。 , SQL 。
·Option , adCMDText, ADO, Execute 。 , 。
·BeginTrans、RollbackTrans、CommitTrans
。BeginTrans ;RollbackTrans ;CommitTrans , 。
, , ; , , 。
BeginTrans CommitTrans , , 。
, Error , Error 0, , 。
Error Error , 。
SQL
DELETE
DELETE : , FROM , WHERE , DELETE 。
:DELETE [table.*] FROM table WHERE criteria
:DELETE * FROM table WHERE criteria=' '
:table 。
criteria , 。
Execute DROP 。 , , 。
DELETE, ; , 。
UPDATE
UPDATE, !!!!!!!!!!!
ORACLE
A ( ID ,FIRSTNAME,LASTNAME )
B( ID,LASTNAME)
A ID,FIRSTNAME
B ID,LASTNAME
B LASTNAME A LASTNAME 。 ID 。
update a set a.lastname=(select b.lastname from b where a.id=b.id)
sql
1.
select @@version
2.
exec master..xp_msver
3.
sp_configure
4.
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
print 'Server Name...............:' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................:' + convert(varchar(30),@@SERVICENAME)
5.
sp_helpdb
SQL
sp_renamedb 'old_dbname', 'new_dbname'
6.
sp_helplogins
sp_helpsrvrolemember
, fix_orphan_user LoneUser
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
: 。
add_login_to_aserver
,
sp_helprotect
7.
sp_helplinkedsrvlogin
sp_helpremotelogin
8.
sp_spaceused @objname
sp_toptables N( 50)
sp_helpindex @objname
SP_NChelpindex
SP_NChelpindex @objname
clustered , 。
DML clustered ,fillfactor 。
sp_helpconstraint @objname
9.
use @database_name
sp_stored_procedures
sp_helptext '@procedure_name'
@str
select distinct object_name(id) from syscomments where text like '%@str%'
AS WITH ENCRYPTION
sp_decrypt
10.
sp_who
SQL Server
sp_who 'active'
SQL Server
sp_lock
1--50 SQL Server , 50 .
spid ,dbid ,objid
SQL
dbcc inputbuffer ()
sp_who3 SQL
sp_who3
sp_who_lock
sp_who_lock
11.
dbcc sqlperf(logspace)
, , @database_name_log M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12. SQL Server SQL :
set statistics time {on | off}
set statistics io {on | off}
-> -> (D)-Ctrl-L
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
13. ,NT 3624 ,
,
alter database [@error_database_name] set single_user
dbcc checktable('@error_table_name',repair_allow_data_loss)
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 3 :
repair_allow_data_loss 、 , , 。
。
, , 。
, 。
, 。
repai*_**st 、 , 。
, 。
repair_rebuild repai*_**st , ( )。
。