본문 바로가기

Database/MSSQL work

(47)
table SELECT SELECT * FROM 테이블명 WHERE 필드='조건' AND 필드2='조건2' SELECT 필드1, 필드2, 필드3 FROM 테이블명 SELECT * FROM TAB; 존재하는 모든 테이블 보기 SELECT DISTINCT 필드1 FROM 테이블명; 중복제거하기 SELECT 필드1 FROM 테이블 WHERE 필드2 BETWEEN 00 AND 00; //00부터 00사이에서 SELECT 필드1 FROM 테이블 WHERE 필드2 IN (00, 00); //00과 00중에서 SELECT 필드1 FROM 테이블 WHERE 필드2 LIKE '%단어%'; SELECT 필드1 FROM 테이블 WHERE 필드2 IS NULL; or NoT IS NULL UPDATE UPDATE 테이블명 SET 필드=..
AdventureWorks 연습 시험 1.다음의 내용을 출력 ● 고객의 주문번호, 주문상세번호, 주문일, 주문수량, 주문상품명, 판매지역명,판매직원(first middle last), 선적회사명 ● 주문번호 오름차순 정렬 select S.SalesOrderNumber as [주문번호] , SD.SalesOrderDetailID as [주문상세번호] , S.OrderDate as [주문일] , SD.OrderQty as [주문수량] , PD.Name as [주문상품명] , ST.Name [판매지역명] , CONCAT(PP.FirstName, ' ', PP.MiddleName, ' ', PP.LastName) as [판매직원] , SH.Name as [선적회사명] from Sales.SalesOrderHeader S join Sales.S..
키 만들기( 복합키, 유니크, 체크제약 등) 제약조건이란? 열에 넣을 값에 대해서 잘못된 값이 들어가지 않도록 제한하는 것. NOT NULL : NULL값이 들어가지 않는다. PRIMARY KEY : 기본 키. FOREING KEY : 참조 키. UNIQUE : 중복값 없음. CHECK : ~~~아래 적음 --PK키 생성 create table temp1 ( userIdchar(8) primary key, namenvarchar(8) ); GO --PK키에 이름지어 생성 create table temp2 ( userIdchar(8)constraint PK_temp2_userId primary key, namenvarchar(10) ); GO --복합키만들기 create table goodsTbl ( prodCodevarchar(10)not null..
반복문 while, continue ----while 문 1~100까지 더한 값 구하기 i를 선언 후 1으로 초기화 한다 sum을 선언 후 0으로 초기화 한다 i가 100이 될 때 까지 sum에 더해준다 sum을 출력하면 1~100을 더한값이 나온다 declare @i int = 1 declare @sum bigint = 0 while(@i 0) begin if( @i % 49 = 0 ) begin print N'49의 배수: ' + cast(@i as char(3)) set @i += 1 continue end set @sum += @i set @i += 1 if( @i > 100) break end print @sum GO
exec 쿼리문 실행 exec함수를 가지고 변수 선언 후 쿼리를 넣고 함수를 실행하면 입력한 쿼리의 값이 출력된다 --변수 선언 후 쿼리를 넣고 declare @sql varchar(100) set @sql = 'select * from customersTbl where custId = ''kkkkkkkk''' --쿼리문 실행 exec(@sql) GO
에러상태 확인하기 이클립스 등에서는 에러가나면 어떻게 에러가 나는지 보여준다, MSSQL에도 상응하는 기능이 있다. (try and catch) --에러 상태, 메세지 출력하기 begin try insert into customersTbl values('kkkkkkkk', '나훈아', '1967-01-01', '01081819191', '인천', '2018-10-10', default) print N'정상입력' end try begin catch print N'입력오류' print error_number() print error_message() print error_state() print error_severity()--심각도 print error_line()--에러 위치 end catch GO --try and ca..
다른테이블을 내가 등급나눠 업뎃하기 --문제 : customersTbl에있는 grade라는 란이 NULL로 비어있다 salesTbl에서 구매한 금액의 총 합이 1만원이상일때 A, 5천원 이상일때 B, 10원 이상일때 C, 구매이력이 없으면 D라고 customersTbl에 저장하려 한다, update.. set.. from절을 사용하여 업데이트 한다 --join 하여 조건절 확인 후 업뎃 update customersTbl set customersTbl.grade = S.grade from customersTbl as C, ( select C.custId, case when sum(sales) >= 10000 then 'A' when sum(sales) >= 5000 then 'B' when sum(sales) >= 10 then 'C' e..
union, union all, intersect, except --UNION 연산자 (컬럼의 갯수만 맞으면 됨) select C.custId, C.custName, G.goodsName from customersTbl C inner join salesTbl S ON C.custId = S.custId inner join goodsTbl G On S.goodsId = g.goodsId where C.custId='kkkkkkkk' --union --union all --union all은 중복데이터를 걸러주지 않음 --intersect --intersect는 교집합을 의미(inner) --except --except는 차집합을 의미한다(outer) select C.custId, C.custName, G.goodsName from customersTbl C inner ..