MSSQL 기본 구문


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*기본키설정*/
CREATE TABLE dbo.SalesPerson 
(   EmpNo    smallint       NOT NULL,
    EmpName  varchar  (25)  NOT NULL 
CONSTRAINT  PK_SalesPerson  PRIMARY KEY CLUSTERED (EmpNo) )
GO
 
ALTER TABLE SalesPerson
ADD CONSTRAINT PK_SalesPerson PRIMARY KEY CLUSTERED (EmpNo)
GO
 
 
PRIMARY KEY 적용?
ALTER TABLE [TABLEADD CONSTRAINT [명] PRIMARY KEY CLUSTERED(컬럼)
 
 PRIMARY KEY 삭제
ALTER TABLE [TABLEDROP CONSTRAINT [명]
 
FOREIGN KEY 적용
ALTER TABLE [TABLECONSTRAINT [명] FOREIGN KEY (컬럼) REFERENCES 참조[TABLE](컬럼)
 
FOREIGN KEY 삭제
ALTER TABLE [TABLEDROP [명]
 
INDEX 생성
CREATE INDEX [인덱스명] ON [TABLE](컬럼 ASC) 
 
INDEX 삭제
DROP INDEX [테이블명].[인덱스명]
 
 
 
 
/*업데이트*/
update DimensionDosageForm
set DrugFormID = 141
where [Route] ='단일.주사제' and MonoCombo = '단일' and DrugForm  = '단일.주사제.주사제'
    
/*컬럼속성변경*/
alter table DimensionDosageForm alter column DrugForm [varchar](30null
 
/*특정컬럼에 다른 테이블 데이터 삽입*/
insert into DimensionDosageForm (MonoCombo, MonoComboEnglish, [Route], RouteEnglish, DrugForm, DrugFormEnglish)
select distinct sindiv as MonoCombo, '' as MonoComboEnglish, spath as [Route], '' as RouteEnglish, smat as [DrugForm], '' as DrugFormEnglish
from libin
where smat <> ''
order by sindiv, spath, smat
/*컬럼 추가 (IDENTITY)*/
ALTER TABLE LibDrugtemptemp
ADD drugID int IDENTITY(1,1NOT NULL;
 
/*컬럼 추가 기본값적용*/
ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO
/*컬럼삭제*/
ALTER TABLE LibDrug
Drop COLUMN drugID
 
/*ITENTITY 테이블 생성(컬럼)*/
CREATE TABLE LibDrugTemp(
   drugID int IDENTITY(1,1NOT NULL,
  )
 
/*테이블 전체 복사*/
SELECT * INTO LibDrugTempTEMP FROM LibDrug
 
 /*데이터만 복사*/
INSERT INTO LibDrugTemp 
SELECT *
FROM LibDrug
/*구조만 복사*/
SELECT *INTO LibDrugTemptemp FROM LibDrug WHERE 1=2
 
/*identity 속성의 컬럼 찾기*/
select identitycol from LIbdrugTemp
 
/*WHERE vs HAVING 차이*/
WHERE 절은 조건에 맞는 레코드를 뽑아내지만
HAVING 절은 데이터베이스에서 데이터를 미리 뽑은 다음에 그 행들만 가지고 조건을 비교한다.
 
HAVING 예; SELECT rank, AVG(salary) FROM people 
                 GROUP BY rank HAVING AVG(salary) > 100000.00
WHERE + HAVING 예:  SELECT rank, AVG(salary) FROM people 
                                WHERE rank <> 'Private'
                                GROUP BY rank HAVING AVG (salary) > 100000.00
 
/*컬럼명 변경*/
 MEMBER테이블에 있는 mName 컬럼을 customer 라는 이름으로 변경하고자 할 경우
 sp_rename 'MEMBER.[mName]','customer''COLUMN'
 
/*테이블명 변경*/
 MEMBER테이블명을 CUSTOMER라는 이름으로 변경하고자 할 경우
 sp_rename 'MEMBER''CUSTOMER'
 
/*컬럼타입 변경*/
 MEMBER테이블의 mName 컬럼을 nvarchar(20)으로 변경하고자 할 경우
 ALTER TABLE MEMBER
 ALTER COLUMN mName nvarchar(20)
cs


Posted by 요지
,