sql 12

[MSSQL] 중복 제거 조회 (distinct, group by)

SELECT문으로 데이터를 조회 시 중복된 값이 조회되는 경우가 있습니다. 중복된 값을 제거하고 조회할 수 있는 방법에 대해서 스크립트를 통해 소개해드리도록 하겠습니다. 우선 테스트할 테이블을 조회 합니다. SELECT country FROM dbo.CUST_TABLE 국가(country) 컬럼에 중복된 값들이 조회되는 것을 확인할 수 있습니다. 그럼 이제 중복된 값들을 제거 해보겠습니다. Distinct distinct 구문은 지정된 집합의 중복 튜플을 제거해서 결과 집합을 반환합니다. SELECT distinct country FROM dbo.CUST_TABLE 쿼리 수행 시 중복 튜플이었던 denmark 와 germany가 한 개씩만 남고 사라지는 것을 확인할 수 있습니다. 이번에는 다른 방법으로 ..

IT 이야기/DB 2022.09.16

[MSSQL] 문자열 자르기 (SUBSTRING, RIGHT, LEFT)

SQL Server에서는 문자열 잘라내기 기능을 제공합니다. 테스트를 위해 테이블을 생성합니다. CREATE TABLE dbo.PROD_TABLE ( prod_cd varchar(10) ) INSERT INTO PROD_TABLE(prod_cd) VALUES ('DP0312'); INSERT INTO PROD_TABLE(prod_cd) VALUES ('AP0312T'); INSERT INTO PROD_TABLE(prod_cd) VALUES ('AP0312C'); SUBSTRING 문자열에 대해 시작 위치 위치부터 지정된 만큼의 문자를 잘라내어 출력할 수 있습니다. -- 첫번째 문자부터 문자 2개를 잘라낸다. SELECT SUBSTRING(prod_cd, 1, 2) AS cd1 FROM PROD_TABLE..

IT 이야기/DB 2022.09.13

[MSSQL] INSERT문 다양한 사용법

SQL에는 데이터 조작 언어 (DML)가 있으며 DML에는 데이터를 삽입, 입력, 추가하는 INSERT문이 있습니다. 지금부터 INSERT문에 대한 다양한 사용법을 MS-SQL 기준으로 소개해 드리겠습니다. 우선 데이터를 입력할 테이블을 하나 생성합니다. CREATE TABLE dbo.CUST_TABLE ( custid int , custname varchar(10) , country varchar(10) ) INSERT INTO VALUE 가장 기본적인 INSERT문 입니다. 특정 값을 가지는 행들을 테이블에 입력합니다. INSERT INTO dbo.CUST_TABLE(custid, custname, country) VALUES (1, 'test', 'korea'); VALUES절 기능이 확대되어 쉼표..

IT 이야기/DB 2022.09.07

[MSSQL] 테이블 및 컬럼 디스크립션(Description) 추가, 수정, 조회

테이블 및 컬럼에 디스크립션 (또는 코멘트) 추가하는 방법과 추가한 내용을 조회하는 방법을 소개해 드리겠습니다. SQL Server에서 디스크립션을 추가하고 수정하는 명령어는 아래와 같습니다. sp_addextendedproperty sp_updateextendedproperty 컬럼 디스크립션(Description) 추가, 수정 스크립트 -- 테이블 생성 CREATE TABLE dbo.CUST_TABLE ( custid varchar(10) , custname varchar(20) , country varchar(20) ) GO -- 데이터 입력 INSERT INTO CUST_TABLE(custid, custname, country) VALUES ('C2455', 'junsu', 'korea'); IN..

IT 이야기/DB 2022.09.06

[MSSQL] 데이터베이스 정렬 방식 (COLLATE, COLLATION)

SQL을 사용하다보면 일반적으로 대소문자를 구분하지 않고 작동한다는 것을 알 수 있습니다. 왜 그럴까요? 데이터베이스에는 Collation이라는 개념이 있는데 보통 대소문자를 구분하지 않도록 설정 해놓고 SQL을 사용하기 때문입니다. 1. 정렬 방식 (Collation) 이란 정렬 방식 (Collation)은 지원 언어, 정렬 순서, 대소문자 구분, 악센트 구분 등과 같은 문자형 데이터에 대한 여러 측면을 포괄하는 특성입니다. 다음과 같이 테이블 함수를 사용해서 시스템에서 지원하는 collation 정보를 확인할 수 있습니다. SELECT name , description FROM sys.fn_helpcollations(); 예를 들어 Latin1_General_CI_AS 정렬 방식은 다음과 같은 특징을..

IT 이야기/DB 2022.09.05

[DB 기술면접] 인덱스(index)란 무엇인가, 생성 방법과 원리

데이터베이스에서 인덱스란 테이블에서 데이터를 더 빨리 찾게 해주는 자료구조입니다. 그리고 일반적으로 인덱스의 자료구조는 B-Tree 를 뜻합니다. 인덱스 생성 방법 인덱스 (B-Tree)가 테이블에서 데이터를 더 빨리 찾을 수 있는 이유 인덱스 생성의 장단점 인덱스 생성 방법 우선 인덱스를 만들기 위해서 테이블을 생성하고 데이터를 입력합니다. (MS SQL 기준) -- 테이블 생성 CREATE TABLE dbo.CUST_TABLE ( custid int , custname varchar(10) , country varchar(10) ) DECLARE @i int = 1 -- 데이터 입력 WHILE (@i

IT 이야기/DB 2022.09.04

SQLP 자격증의 가치와 공부하는 이유

SQLD 자격증이 있는데 SQLP도 따야할까? 데이터 직무의 중요성과 인기가 커지면서 많은 분들이 SQLD를 응시하고 있습니다. 실제로 SQLD 자격증 응시자 수는2016년 4,256명에서 2021년 23,391명으로 약 5배 이상이나 증가했으며 올해 2022년까지도 꾸준히 증가할 것으로 예상됩니다. 그 원인 중 하나는 비IT 직군의 직원들도 본인들의 기업 환경에서 데이터를 직접 뽑아 활용할 수 있어야만 유능한 직원으로 인정받고, 그런 직원들이 속한 기업만이 선도적인 기업으로 설장할 수 있는 시대가 왔기 때문이 아닐까 싶습니다. 그러나 문제는 자격증의 가치입니다. 다양한 직군의 사람들이 SQLD 자격증을 취득하면서 SQL이 기본 소양이 되는 이러한 변화는 사회 전반적으로 매우 바람직하지만 IT/데이터를 ..

IT 이야기/DB 2022.09.02

[MSSQL] 로컬서버 접속 후 DB와 사용자 생성 방법

안녕하세요. 마술공입니다. SQL Server 설치 후 로컬서버에 접속하여 DB와 사용자를 생성하는 방법에 대해서 소개해 드리겠습니다. 우선 SQL Server의 로컬 DB로 Connect합니다. 서버에 연결되면 Databases > New Database... 로 접근합니다. 새롭게 생성할 데이터베이스의 명칭과 초기 사이즈 등을 설정합니다. DB가 만들어졌다면 사용자를 생성할 차례입니다. Security > Logins > New Login... 으로 접근합니다. Login name과 password를 입력합니다. 그리고 디폴트 데이터베이스를 설정합니다. 해당 사용자가 생성된 것을 확인할 수 있습니다. 이제 사용자에게 권한을 부여할 차례입니다. 해당 사용자를 우클릭하여 Properties로 접근합니다...

IT 이야기/DB 2022.09.01

[MSSQL] EXISTS문 사용법 및 예제

안녕하세요. 마술공입니다. MS-SQL에서 EXISTS문을 사용하는 스크립트를 소개해드리겠습니다. 스크립트를 직접 보면 직관적으로 의미를 파악할 수 있으니 작업에 참고하시기 바랍니다. EXISTS 문은 서브 쿼리를 입력받아 하나의 행이라도 반환하면 TRUE를 그렇지 않으면 FALSE를 반환합니다. 그렇다면 어떤 경우에 EXISTS 문을 활용할 수 있을까요? 우선 테스트에 사용할 테이블을 만들겠습니다. 예제 스크립트 (테이블 생성) CREATE TABLE dbo.ORDER_TABLE ( orderid varchar(10) , orderdate datetime , empid varchar(10) , custid varchar(10) ) INSERT INTO ORDER_TABLE(orderid, orderda..

IT 이야기/DB 2022.08.31

[MSSQL] CASE문 표현식 (case when)

안녕하세요. 마술공입니다. MS-SQL에서 CASE문, 표현식 스크립트를 소개해드리겠습니다. 스크립트를 직접 보면 직관적으로 의미를 파악할 수 있으니 작업에 참고하시기 바랍니다. CASE 표현식은 조건 논리를 기반으로 값을 출력하는 스칼라 표현식 입니다. CASE 표현식은 스킬라 표현식을 사용할 수 있는 SELECT, WHERE, HAVING, ORDER BY 절, 체크 제약 조건 등에서 모두 사용할 수 있으며 작성 방법에 따라 단순형, 검색형으로 나눌 수 있습니다. 단순형 CASE 방식 SELECT cust_nm , CASE cust_type WHEN 'S1' THEN N'일반' WHEN 'S2' THEN N'우수' ELSE '최우수' END AS cust_type FROM CUSTOMER_INFO 특..

IT 이야기/DB 2022.08.29
반응형