본문 바로가기
728x90
반응형

Skills/MsSQL14

MSSQL PK 제약조건 생성하는 법 PK 제약조건은 수정할 수 없고, 삭제하고 재 생성하는 방식을 사용한다. // PK 생성 방법 ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY (컬럼명) ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] PRIMARY KEY ([칼럼1], [칼럼2], [칼럼3] ...) // PK 변경 방법 // 1. PK 삭제 ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 // 2. PK 재생성 ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY ([칼럼1], [칼럼2]) 2023. 9. 18.
MSSQL 데이터베이스, 테이블, 컬럼, 제약조건 정보 조회 // 전체 데이터베이스 조회 SELECT * FROM SYS.SYSDATABASES // 테이터베이스 테이블 정보 확인 SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_CATALOG = '' // 테이블 컬럼 정보 확인 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '' // 테이블 제약조건 확인 SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = '' 2023. 9. 18.
동적 쿼리 사용 이유, 예시, 장단점, 플랜캐시, 주의점 흔히 동적 쿼리, 다이나믹 쿼리라는 것이 존재한다. 언제 동적 쿼리를 사용하는 걸까? 동적 쿼리는 주로 비즈니스 로직이 복잡해져서 where 조건절에서 조건이 너무 다양해지고 많아지는 경우, 유용하게 사용할 수 있다. 예를 들면, 검색이나, 페이징 처리 등의 상황이 있다. 그렇다면 예시를 살펴보자. 아래 예시는 @MinPrice 및 @MaxPrice 매개 변수에 따라 제품 테이블에서 가격 범위 내의 제품을 검색하는 쿼리이다. 예시) DECLARE @MinPrice DECIMAL(10, 2) = 100.00 DECLARE @MaxPrice DECIMAL(10, 2) = 500.00 DECLARE @DynamicSQL NVARCHAR(MAX) SET @DynamicSQL = N' SELECT ProductN.. 2023. 9. 6.
WHERE 1=1 조건절 사용 이유 "WHERE 1=1" 조건절은 항상 참인 조건을 나타낸다. 항상 참을 나타내는 조건을 왜 굳이 넣는걸까? 크게 2가지 이유가 있는 것 같다. 동적 쿼리 "WHERE 1=1"을 사용하면 동적 쿼리의 WHERE 절에 조건을 쉽게 추가하거나 제거할 수 있다. 또한 가독성과 유지보수에도 좋다. 예시) DECLARE @DynamicSQL NVARCHAR(MAX) = N' SELECT Column1, Column2 FROM MyTable WHERE 1=1' -- 동적으로 조건 추가 IF @Condition1 = 1 BEGIN SET @DynamicSQL = @DynamicSQL + N' AND Column1 = @Value1' END IF @Condition2 = 1 BEGIN SET @DynamicSQL = @D.. 2023. 9. 6.
SQL Server 테이블, 프로시저 조회 해당 특정 데이터베이스에 저장된 모든 데이터 개체에 대한 메타데이터가 들어 있는 정보 스키마 뷰는 INFORMATION_SCHEMA라는 이름으로 정의되어 있다. INFORMATION_SCHEMA는 각 데이터베이스에 존재한다. // 테이블 조회 select * from INFORMATION_SCHEMA.TABLES // 프로시저, 함수 조회 select * from INFORMATION_SCHEMA.ROUTINES 출처) https://learn.microsoft.com/ko-kr/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-ver16 시스템.. 2023. 9. 6.
인덱스를 타지 않는 10가지 CASE와 예제 1. 인덱스 컬럼의 변형 FULL SCAN -- 인덱스 컬럼의 변형 (인덱스 컬럼과 검색 조건 컬럼이 다른 데이터 형식) CREATE TABLE ExampleTable ( ID INT PRIMARY KEY, Name VARCHAR(50) ) -- 인덱스 컬럼은 Name이지만 검색 조건에서 변형된 데이터 형식 사용 SELECT * FROM ExampleTable WHERE UPPER(Name) = 'JOHN' 2. 데이터 형 변환이 일어난 경우 FULL SCAN -- 데이터 형 변환이 일어난 경우 (인덱스 컬럼과 검색 조건 컬럼의 데이터 형식이 다름) CREATE TABLE ExampleTable ( ID INT PRIMARY KEY, Age INT ) -- 인덱스 컬럼은 INT이지만 검색 조건에서 문자열.. 2023. 9. 5.
728x90
반응형