SQL

SQL

[SQL] IN 과 JOIN의 대한 궁금중

실무에서 query문을 짜면서 구글링을 하다가 흥미로운 질문을 발견해 퇴근 후 집에와서 찾아봤습니다. 위 이미지를 보게되면 JOIN과 IN절은 만일 컬럼이 유니크하지 않다면 다른 결과값을 나온다고 설명합니다.그래서 IN절과 WHERE이 같은 결과값을 같기 위해서는 JOIN에 DISTINCT를 사용해서 중복 제거 후 사용해야한다는 겁니다. 그래서 직접 궁금해서 query문을 적어 진행해보았습니다. CREATE TABLE IF NOT EXISTS a ( col INT, data VARCHAR(50));CREATE TABLE IF NOT EXISTS b ( col INT);INSERT INTO a (col, data) VALUES(1, 'A'),(2, 'B')..

SQL

[SQL] Date Format 함수 (formatting parameter)

Format Description %j n번째 일(100, 365) %H Hour 시(00, 01, 24) 24시간 형태 %h Hour 시 (01, 02, 12) 12시간 형태 %T hh:mm:ss %S, %s Second 초 %p AP, PM %w Day Of Week (0, 1, 2) 0부터 일요일 %U Week 주(시작: 일요일) %u Week 주(시작: 월요일) %M Month 월(Janeary, February etc...) %m Month 월(01, 02, 03) %W Day of Week 요일 (Sunday, Monday etc...) %D Month 월 (1st, 2dn, 3rd) %Y Year 연도(1990, 2010, 2021) %y Year 연도(90, 10, 21) %a Day of..

SQL

[MYSQL] 함수 만들기 (FUNCTION)

쿼리문법 함수 만들기 CREATE FUNCTION [함수이름] ([입력값 이름][데이터 타입],...) RETURNS [결과값 데이터 타입] BEGIN DECLARE [임시값 이름][데이터타입]; SET [임시값 이름]=[입력값 이름]; QUERY; RETURN 결과 값 END 함수 지우기 DROP FUNCTION [함수 이름]; MYSQL Workbench에서 함수를 처음 생성하기 전에 SET GLOBAL log_bin_trust_function_creators = 1; 위 명령어를 사용해서 권한을 생성한 후 함수를 사용하셔야 합니다! 또한 DELIMITER // 함수의 시작 정의 CREATE FUNCTION [함수이름] ([입력값 이름][데이터 타입],...) RETURNS [결과값 데이터 타입] B..

SQL

[MYSQL] 자주 사용하는 날짜형 함수 정리

NOW NOW() 현재 날짜와 시간 반환 SELECT NOW(); CURRENT_DATE CURRENT_DATE() 현재 날짜 반환 SELECT CURRENT_DATE(); CURRENT_TIME CURRENT_TIME() 현재 시간 반환 SELECT CURRENT_TIME(); YEAR YEAR(날짜) 날짜의 연도 반환 SELECT YEAR(NOW()); MONTH MONTH(날짜) 날짜의 월 반환 SELECT MONTH(NOW()); MONTHNAME MONTHNAME() 날짜의 월을 영어로 반환 SELECT MONTHNAME(NOW()); DAYNAME DAYNAME(날짜) 날짜의 요일을 영어로 반환 SELECT DAYNAME(NOW()); DAYOFMONTH DAYOFMONTH(날짜) 날짜의 일 ..

SQL

[MYSQL] 자주 사용하는 숫자형 함수

ABS ABS(숫자) 숫자의 절대 값 반환 SELECT ABS(columns_name) FROM use_table; - 다만 ABS를 사용할 때 FLOAT 타입이며면 입력 값의 근사치를 저장 후 보여줍니다. CEILING CEILING(숫자) 숫자를 정수로 올림해서 반환 SELECT CEILING(column_name) FROM use_table; FLOOR FLOOR(숫자) 숫자를 정수로 내림해서 반환 SELECT FLOOR(column_name) FROM use_table; ROUND ROUND(숫자, 자릿수) 숫자를 소수점 자릿수까지 반올리해서 반환 만일 자릿수를 0 입력 시 소수점 없이 정수만 반환 SELECT ROUND(column_name, 1) FROM use_table; TRUNCATE T..

SQL

[MYSQL] 자주 사용하는 문자형 함수

LOCATE - LOCATE("A", "ABC") - "ABC"에서 "A"는 몇번째에 위체해 있는지 검색해 위치 반환 - 문자가 여러 개라면 가장 먼저 찾은 문자의 위치를 반환 - 만약 찾는 문자가 없다면 0을 반환 SELECT *, LOCATE('a', `name`) FROM Artist; SUBSTRING - SUBSTRING("ABC", 2) - "ABC"에서 2번재 문자부터 반환 - 만약 입력한 숫자가 문자열의 길이보다 크다면 아무것도 반환하지 않음 SELECT *, SUBSTRING(`name`, 5) FROM Artist; RIGHT - RIGHT("ABC", 1) - "ABC"에서 오른쪽에서 1번째 문자까지 반환 SELECT *, RIGHT(`name`, 1) FROM Artist; LEFT..

Balang
'SQL' 카테고리의 글 목록