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 [TABLE] ADD CONSTRAINT [명] PRIMARY KEY CLUSTERED(컬럼) PRIMARY KEY 삭제 ALTER TABLE [TABLE] DROP CONSTRAINT [명] FOREIGN KEY 적용 ALTER TABLE [TABLE] CONSTRAINT [명] FOREIGN KEY (컬럼) REFERENCES 참조[TABLE](컬럼) FOREIGN KEY 삭제 ALTER TABLE [TABLE] DROP [명] 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](30) null /*특정컬럼에 다른 테이블 데이터 삽입*/ 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,1) NOT 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,1) NOT 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 |
'SQL' 카테고리의 다른 글
[MSSQL] 해당 월 마지막 날 구하기 (0) | 2012.07.12 |
---|---|
[MSSQL] 프로시져 내에서 sql파일 실행하기 (0) | 2012.06.20 |
[MSSQL] 주,기간 구하기 week (0) | 2012.05.08 |
[MSSQL] JOIN UPDATE (2) | 2012.05.04 |
[MSSQL]int(4) 와 tinyint(4), smallint(4)의 차이점은? (0) | 2012.03.27 |