본문 바로가기

분류 전체보기

(518)
키 만들기( 복합키, 유니크, 체크제약 등) 제약조건이란? 열에 넣을 값에 대해서 잘못된 값이 들어가지 않도록 제한하는 것. 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 ..
join --cross join select * from salesTbl cross join goodsTbl --inner join select * from salesTbl, goodsTbl where salesTbl.goodsId = goodsTbl.goodsId select * from salesTbl inner join goodsTbl ON salesTbl.goodsId = goodsTbl.goodsId --고객이 언제 어떤 상품을 얼만큼 사갔다 select custId, saleDate, salesTbl.goodsId, goodsName, sales from salesTbl, goodsTbl select custId, saleDate, salesTbl.goodsId, goodsName, sales from..
if문, case문 --변수 declare로 선언하고 set으로 할당한다 --if문 if ..else 안에 begin...end문을 반복하여 사용한다 --1. declare @var1 int set @var1=100 --if문 if @var1 = 100 begin print '@var1 = ' + cast(@var1 as char(4))--cast로 문자로 변환해줌 end else begin print '@var1 != ' + cast(@var1 as char(4)) end --@var1 = 100 --2. use AdventureWorks2019 declare @hireDate smalldatetime; declare @curDate smalldatetime; declare @years decimal(5,2); decla..