Language/SQL

· Language/SQL
USE sqldb; CREATE TABLE userTBL( userID CHAR(8) PRIMARY KEY, NAME VARCHAR(10) NOT NULL, birthYear INT NOT NULL CHECK(birthyear between 1900 AND 2024), addr CHAR(2) NOT NULL, mobile1 CHAR(3) CHECK (mobile1 IN('011','016','018','019')), -- 011,016,018,019 mobile2 CHAR(8), height SMALLINT, mDate DATE, grade CHAR(1) DEFAULT 'A' check(grade IN('A','B','C')) ); CREATE TABLE buyTBL( num INT AUTO_INCREM..
· Language/SQL
CREATE TABLE prod( pid CHAR(3) PRIMARY KEY, pname VARCHAR(20) ); INSERT INTO prod VALUES('p01','A'),('p02','B'),('p03','C'); CREATE TABLE incoming( pid CHAR(3), qty INT, FOREIGN KEY(pid) REFERENCES prod(pid) ); INSERT INTO incoming VALUES('p01',10),('p01',5),('p02',3); CREATE TABLE outgoing( pid CHAR(3), qty INT, FOREIGN KEY (pid) REFERENCES prod(pid) ); INSERT INTO outgoing VALUES('p01',5),('p0..
· Language/SQL
-- 제어 흐름 함수 -- 1) if(수식, 참, 거짓) SELECT if(100>200, '참이군','거짓이군'); -- 2) ifnull(수식1, 수식2) SELECT IFNULL(NULL, '널이군'); SELECT IFNULL('aaa','널이군'); -- 3) nullif(수식1, 수식2) SELECT NULLIF(100,100); -- 수식1과 수식2가 같으면 null 반환 SELECT NULLIF(100,50); -- 4) case ~ when ~ else ~ end SELECT case 10 when 1 then '일' when 5 then '오' when 10 then '십' ELSE '모름' END; -- 문자열 함수(중요!!!) -- 1) ASCII(아스키코드), CHAR(숫자) SE..
· Language/SQL
-- 4일차 DDL, DML -- 테이블 생성 /* NAMING RULE - 문자로 시작하고 30자 이하 - 중복된 테이블 이름 사용 불가 - 예약 키워드 사용불가 - 특수문자 ( _, $, #) 사용 가능 CREATE TABLE 테이블명 ( 컬럼명 DATA_TYPE [DEFAULT] [CONSTRAINT TYPE] , ) ; -- 제약조건 : NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK -- INSERT INSERT INTO 테이블명 ([COLUMN]) VALUES (DATA, DATA ) ; -- UPDATE UPDATE 테이블명 SET COLUMN_NAME = VALUE WHERE 조건식 ; -- DELETE DELETE 테이블명 WHERE 조건식; */..
· Language/SQL
-- 3일차 JOIN & SUBQUERY /* SELECT * FROM TABLE [INNER] JOIN TABLE ON(조건식) [INNER] JOIN TABLE USING(공통의 컬럼명) */ SELECT EMP_NAME, JOB_TITLE, DEPT_NAME, LOC_DESCRIBE, COUNTRY_NAME FROM JOB J JOIN EMPLOYEE E ON (J.JOB_ID=E.JOB_ID) JOIN DEPARTMENT D USING(DEPT_ID) JOIN LOCATION L ON (D.LOC_ID = L.LOCATION_ID) JOIN COUNTRY C USING(COUNTRY_ID); -- 누락된 데이터까지를 포함하는 조인구문을 작성하고 싶다면? -- OUTER JOIN /* SELECT ..
· Language/SQL
-- 2일차 함수 /* 함수의 종류 - 단일행 함수(문자함수, 날짜함수, 숫자함수, 기타함수) - 복수행 함수(min, max, sum, avg, count) */ SELECT * FROM EMPLOYEE; -- 문자열 함수 SUBSTR : 특정위치의 문자만 추출하는 함수 -- 형 변환(TO_NUMBER, TO_CHAR, TO_DATE) SELECT HIRE_DATE, SUBSTR(HIRE_DATE,1,2) FROM EMPLOYEE WHERE TO_NUMBER(SUBSTR(HIRE_DATE,1,2)) >= 98; SELECT EMP_NO, SUBSTR(EMP_NO,8,1) FROM EMPLOYEE; -- 숫자함수(ROUND, TRUNC) -- DUAL(DUMMY TABLE) SELECT ROUND(123..
· Language/SQL
/* 주석문 검색 : SELECT DML : INSERT , UPDATE , DELETE DDL : CREATE , DROP , ALTER TCL : COMMIT , ROLLBACK */ -- 1. SELECT /* SELECT [열이름 | * | 열이름 AS 별칭 | 표현식] FROM 대상테이블; */ SELECT DEPT_ID, DEPT_NAME FROM DEPARTMENT ; SELECT * FROM JOB; SELECT JOB_ID,DEPT_ID FROM EMPLOYEE; SELECT EMP_NO AS "이 름" FROM EMPLOYEE ; -- 즉, 별칭을 사용할 때는 공백이 없어야한다. -- 만약, 공백을 넣고싶으면 "" SELECT * FROM EMPLOYEE ; --사원테이블로부터 사원이름..
· Language/SQL
방학동안 SQL 공부를 향상시키기 위해 자주 이용하는 프로그래머스 사이트에서 알고리즘 문제들이 여러 개 있어 기초부터 차근차근 풀어보려한다 :) SELECT - 3월에 태어난 여성 회원 목록 출력하기 문제 문제 설명 다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column nameTypeNullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GEND..
· Language/SQL
2. 두 순위의 유사도 계산하기 데이터 분석에서는 앞에서 소개한대로 방문 횟수, 방문자 수, 페이지 뷰로 각 페이지의 순위를 작성하는 경우가 많다. 그런데 이를 어떻게 조합해야 가장 적합한 점수를 부여할 수 있을까? 이번 절에서는 순위들의 유사도를 계산해서 어떤 순위가 효율적이며 순위를 정량적으로 평가하는 방법에 대해 알아보겠다. 1) 지표들의 순위 작성하기 다음 코드 예는 방문횟수, 방문자수, 페이지뷰를 기반으로 순위를 작성하는 쿼리이다. with path_stat as ( --경로별 방문횟수, 방문자수, 페이지뷰 계산하기 select path , count(distinct long_session) as access_users , count(distinct short_session) as access_..
· Language/SQL
집계 작업에서는 여러 개의 데이터셋을 비교해서 어떤 판단을 내리는 경우가 많다. 이번 절에선 여러 개의 데이터셋을 비교해서 데이터가 변화한 부분을 확인하거나 어떤 차이가 있는지 확인해보겠다. 우선, 여러 개의 데이터셋을 비교해야 하는 경우를 살펴보자. 1) 데이터의 차이를 추출하는 경우 같은 성질의 데이터 또는 같은 SQL로 만들어진 다른 기간의 집계 결과를 비교해서 추가/변경이 없는지, 삭제/결손이 없는지 확인하는 상황은 꽤 많다. 수십 개의 마스터 데이터라면 눈으로 내용을 확인할 수 있겠지만, 대량의 마스터 데이터에서는 눈으로 확인하기가 사실상 불가능하다. 눈으로 확인하는 것은 불가능하지만, SQL을 사용하면 효율적으로 사용이 가능하다. 2) 데이터의 순위를 비교하는 경우 순위를 비교하는 경우 순위 ..
송 이
'Language/SQL' 카테고리의 글 목록