본문 바로가기

DB & SQL20

[SQL] DDL, DML, DCL,TCL DDL (Data Definition Language, 데이터 정의어) - Auto Commit - 데이터베이스 구조 또는 스키마(schema)를 정의하는 데 사용됨 - 직접 데이터베이스의 테이블에 영향을 미치기 때문에, DDL 명령어를 입력하는 순간 명령어에 해당하는 작업이 즉시(AUTO COMMIT) 완료된다는 것을 주의해야 함 DDL 설명 CREATE 데이터베이스의 객체를 생성 ALTER 데이터베이스의 구조를 변경 DROP 데이터베이스의 객체를 삭제 (테이블의 모든 데이터와 구조를 삭제) TRUNCATE 테이블에 할당된 모든 공간을 포함하여 모든 레코드를 제거 (테이블 객체의 저장공간 재사용 가능) - 테이블의 전체 데이터를 삭제하는 경우, 시스템 활용 측면에서는 삭제된 데이터를 로그로 저장하는 D.. 2024. 4. 23.
[MSSQL] 날짜 형식 포맷 (CONVERT, GETDATE) 사용 형식과 예시 MSSQL에서의 날짜 추출 시 노출되는 형식을 CONVERT([데이터타입],[날짜값],[변환형식]) 의 형식으로 지정할 수 있습니다. [변환형식]에 따라 노출되는 날짜 형식을 변경할 수 있습니다. 아래와 같이 사용 예시를 확인할 수 있습니다. SELECT CONVERT(VARCHAR(10),GETDATE(),105) -- 2024-04-16 SELECT CONVERT(VARCHAR(10),GETDATE(),120) -- 2024-04-16 12:00:00 다양한 날짜 형식 쿼리 날짜 형식 결과 CONVERT(CHAR(19), GETDATE(), 0) MM DD YYYY H:MM 04 16 2024 10:01AM CONVERT(CHAR(10), GETDATE(), 1) MM/DD/YYYY.. 2024. 4. 16.
[MSSQL] VIEW 테이블의 정의와 사용 방법 VIEW 테이블이란? 뷰는 다른 말로 가상테이블이라고 하는데, 말 그대로 데이터를 저장하는 테이블이 아니라 가상으로 존재하는 테이블입니다. 데이터 베이스 내에 존재하는 데이터들을 가공해서 가상의 테이블에 정의해 가지고 있는 것입니다. 정리해서 뷰테이블이란 아래와 같이 정의할 수 있습니다. 1. 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블 2. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주 3. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용 4. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 VIEW 테이블의 특징 1. 뷰는 기본테이블로부터 유도된 테이블이기.. 2024. 3. 28.
[MyBatis] MyBatis란? MyBatis란? MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 액세스 하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거합니다. 즉, Spring Framework에서 제공하는 JDBC 라이브러리를 보다 쉽게 작업할 수 있도록 만든 라이브러리를 말하며 Mapper의 역할을 확장하여 쿼리문 작성을 모두 Mapper에서 할 수 있도록 지원하는 Spring Framework의 대표적 JDBC 라이브러리입니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 .. 2024. 3. 14.
[SQL] JOIN의 정의와 사용법 조인이란? 조인은 SQL Server에서 특정 테이블의 데이터를 사용하여 다른 테이블의 행을 선택하는 방법을 나타냅니다. 조인을 사용하면 테이블 간의 논리적 관계를 기준으로 둘 이상의 테이블에서 데이터를 검색할 수 있습니다. 쉽게 말해, 두 개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 주로 Primary key혹은 Foreign key로 두 테이블을 연결합니다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야 합니다. INNER JOIN INNER JOIN은 위 벤다이어그램과 같이 두 테이블의 교집합을 나타냅니다. 기준 테이블과 Join 한 테이블의 중복된 값을 보여줍니다. 결과값은 A의 테이블과 B테이블이 공통적으로 가지고 있는 데이터만 검색됩니다. 문법과 예.. 2023. 7. 13.
[MSSQL] IN과 NOT IN 사용하기 IN과 NOT IN 데이터베이스의 데이터를 추출할 때 조건을 붙여 사용하는데, 하나의 대상에 조건이 여러개일 경우 OR조건을 사용할수도 있지만 아래와 같이 IN과 NOT IN을 사용하여 더욱 간결하게 쿼리를 작성할 수 있습니다. -- IN SELECT * FROM [테이블명] WHERE [컬럼명] IN ( [조건1],[조건2],[조건3] ) -- NOT IN SELECT * FROM [테이블명] WHERE [컬럼명] NOT IN ( [조건1],[조건2],[조건3] ) IN은 컬럼의 값 = 조건1 혹은 컬럼의 값 = 조건2 혹은 컬럼의 값 = 조건 3 일 경우에 조회가 됩니다. NOT IN은 그 반대로 조건 1,2,3을 제외한 나머지를 조회할 수 있습니다. ※ NOT IN을 사용할 경우 주의해야 할 점이 .. 2023. 4. 11.
[MSSQL] Table과 Column의 Description 추가, 수정하기 테이블과 컬럼의 디스크립션 확인 아래의 쿼리를 통하여 테이블과 컬럼의 디스크립션이 있는지 확인을 한 뒤, 테이블과 컬럼의 디스크립션을 추가, 수정할 수 있습니다. SELECT TA.[OBJECT_ID] AS '테이블 ID' , TA.[NAME] AS '테이블 명' , TC.[VALUE] AS '테이블 설명' , TB.[COLUMN_ID] AS '컬럼 ID' , TB.[NAME] AS '컬럼 명' , TD.[VALUE] AS '컬럼 설명' FROM sys.objects TA INNER JOIN sys.columns TB ON TA.[object_id] = TB.[object_id] LEFT OUTER JOIN sys.extended_properties TC ON TA.[object_id] = TC.majo.. 2022. 12. 16.
SQL에서의 WHERE 1=1 WHERE 1=1 이란? WHERE 1=1은 항상 참을 의미합니다. 즉, 의미 없는 조건입니다. 2=2, 3=3도 동일한 기능을 수행합니다. WHERE 1=1을 사용하는 이유 주석처리가 편하며, WHERE 문을 유동적으로 작성해야 할 때 편리합니다. 먼저 WHERE 1=1로 조건을 걸고 그 이후 AND 조건을 사용하여 다음 조건을 작성한다면, WHERE 문을 신경 쓰지 않고 AND 조건문을 편리하게 작성할 수 있습니다. 아래와 같이 조건이 2개인 질의문이 있습니다. AND절의 goal이 40이 맞는지 우선적으로 확인하고 싶다면, WHERE 조건 playerName = 'kane'을 주석 처리해야 합니다. SELECT playerName , playerNum , goal , assist FROM playe.. 2022. 12. 13.
[MSSQL] WITH(NOLOCK) - 테이블 잠금 해제 LOCK이란? MSSQL 데이터베이스의 테이블을 업데이트하는 경우에는 해당 테이블은 잠겨있게 됩니다. 이러한 상태를 LOCK이라고 하는데, LOCK이 걸리게 되는 이유는 MSSQL의 기본 격리 수준이 Read Committed 이기 때문입니다. INSERT, UPDATE, DELETE 와 같은 DML 작업 중인 ROW 나 TABLE에 SELECT 하는 경우, 진행 중인 DML 작업이 끝나야 SELECT 가 가능합니다. 즉, 완전히 COMMIT 된 데이터만 읽게됩니다. 따라서, LOCK이 걸려있는 동안 SELECT 작업을 수행하게 되면 이 SELECT 작업이 후순위로 밀려나게 되고 데이터베이스의 성능이 떨어질 수 있습니다. LOCK ↔ WITH(NOLOCK) 사용자 입장에서는 SELECT 작업이 후순위로 .. 2022. 9. 7.
반응형