본문 바로가기

분류 전체보기

(518)
트랜젝션(transaction) -- 하나의 db에서 이루어지는 논리적인 작업단위 -- MS는 오토커밋 시스템으로 oracle과 다르게 commit할 필요없고 Rollback()도 불가능 -- C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA -- 8k 기준으로 파일관리 -- ldf : log 파일 -- mdf : 실제 데이터 파일 -- 트랜젝션이 3번 실행됨 update customersTbl set addr = '천안' where custId = 'aaaaaaaa'; update customersTbl set addr = '천안' where custId = 'kkkkkkkk'; update customersTbl set addr = '천안' where custI..
#, ## --어느 DB에서든 접근 가능한 임시 테이블 #table, ##table --#, ##을 테이블 이름 앞에 붙여 테이블 접근 --# : 로컬 임시 테이블(생성한 사용자의 연결이 끊기면 삭제됨, 세션에서 나만 볼 수 있음, 내가 접속 종료하면 없어짐) --## : 전역 임시테이블(사용중인 사용자가 없으면 삭제됨: 사용중일때만 보여짐, 남들이랑 같이 볼 수 있음) --table 생성(앞에 #,##)을 붙여줌 create table #tempTbl (id int, txt nvarchar(10)); create table ##tempTbl (id int, txt nvarchar(10)); --값 넣기 insert into #tempTbl values(1,N'지역 임시 테이블'); insert into ##tem..
View --VIEW 를 사용하는 이유 --1. 자주 쓰는 쿼리문을 단순화 하기 위하여 --2. 보안을 위해 : 불필요한정보들/민감한 정보들을 제외하고 정보를 제공하기 위하여 --view생성 create view v_userTbl as select custId, custName, addr from customersTbl--이 안에내용만 바꾸면 됨 go --1. 에 해당할 때 --셀렉문 먼저 확인하기 select C.custName, s.saleDate, G.goodsName, S.sales from customersTbl C inner join salesTbl S ON C.custId = S.custId inner join goodsTbl G ON S.goodsId = G.goodsId --뷰로 만들기 creat..
인덱스 index --**장점 --검색속도 향상(그렇지 않은 경우도 있음) --쿼리 부하 감소 --**단점 --대략 10%정도의 추가공간 필요 --최초 인덱스 생성시간 필요 --데이터 변경 작업시 성능 저하 --**인덱스 종류 --1. 클러스터형 인덱스(Clustered) - 테이블 당 한개만 생성됨 --2. 비클러스터형 인덱스(Nonclustered) --clustered : 책의 목차 목록 --nonclustered : 책 맨 뒷장의 단어 찾기 --OnlineShopDB의 customersTbl 생성시 custId를 primary key로 지정 -- 따라서 custId 컬럼에 클러스터형 인덱스 자동 생성 --primary key에 비 클러스터형 인덱스 생성 가능 -- 방법 : primary key nonclustere..
update FK가 연결되고 cascade설정이 되지 않은 테이블의 내용을 수정하려 할 때 에러가 난다. 아래 방법을 사용하면 됨 --update문 update customersTbl set custId = 'kkkk1111' where custId = 'kkkkkkkk' --먼저 세일즈테이블의 FK를 날린다 alter table salesTbl drop constraint FK__salesTbl__custId__3B75D760 --constraint를 새로 만든다(cascade로 동일하게 변동되게 함) alter table salesTbl add constraint FK_salesTbl_custId foreign key (custId) references customersTbl (custId) on update c..
column --column 추가 alter table customersTbl add email nvarchar(50) null; --column 삭제 alter table customersTbl drop column email --column 변경 alter table customersTbl alter column addr nvarchar(20) null; --제약조건 날리기 alter table customersTbl drop constraint DF__customers__grade__36B12243 --제약조건 연습 create table testTbl(id int, name nvarchar(10)); --등록 alter table testTbl add constraint PK_testTbl_id primary..
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..