Data Base Study

Yun·2021년 3월 27일
1

DataBase

목록 보기
1/3
post-thumbnail

CREATE SCHEMA 'database 이름' - 스키마 생성, DB 생성

SELECT * FROM dbname.tabelname; - 테이블 조회

SCHEMA 이름에 - 가 포함된 경우 `` 로 감싸줍니다.

특정 컬럼만 보고 싶은경우

SELECT email, age, address FROM SCHEMA.table;

전체 테이블에서 원하는 ROW 만 찾고 싶을때

SELECT * FROM table WHERE email = 'popawaw@naver.com';

원하는 구간을 찾고 싶을때는 BETWEEN

SELECT * FROM member WHERE age BETWEEN 30 AND 39;

30대만 제외 하고 싶을땐

SELECT * FROM member WHERE age NOT BETWEEN 30 AND 39;

DATE 컬럼의 경우

SELECT * FROM member WHERE sign_up_day > '2019-01-01';

주소가 서울로 시작하는 row 를 찾고싶을때

SELECT * FROM member WHERE address LIKE '서울%';

특정 단어가 포함된 row를 찾고 싶을때

SELECT * FROM member WHERE address LIKE '%세종%';

% 는 임의의 문자 길이를 나타냅니다

알면좋은 조건 표현식

  1. 같지 않음 (!=, <>)
  2. 이 중에 있는~ (IN)
  3. 한 글자를 나타내는 _

1. 연도, 월, 일 추출하기

(1) 1992년에 태어난 회원들만 조회하기

(2) 여름(6, 7, 8월)에 가입한 회원들만 조회하기

(3) 각 달의 후반부(15일~31일)에 가입했던 회원들만 조회하기

2. 날짜 간의 차이 구하기

DATEDIFF(날짜 a, 날짜 b)를 사용하면 '날짜 a - 날짜 b'를 해서 그 차이 일수를 알려줍니다. 예를 들어,
DATEDIFF(’2018-01-05’, ’2018-01-03’)의 값은 2입니다.
member 테이블에서 각 회원이 가입한 일자가 2019년 1월 1일을 기준으로 몇 일 이후인지를 알아보겠습니다. 아래 SQL 문을 자세히 살펴보세요.

그리고 이것 말고도 오늘 날짜를 기준으로 살펴보는 것도 가능한데요. 오늘 날짜를 구하는 함수는 CURDATE()입니다.

CURRENT DATE 의 줄임말 인거 같네요

가입일(sign_up_day)-생일(birthday) 값을, 1년이 365일이니까 365로 나눠주면 각 회원이 몇 살일 때, 코팡에 가입했는지 알 수 있습니다.

3. 날짜 더하기 빼기

날짜에서 며칠을 더하고 빼는 것도 가능한데요. 더하는 함수는 DATE_ADD(), 빼는 함수는 DATE_SUB()입니다.
예를 들어, 가입일(sign_up_day) 기준으로 300일 이후의 날짜를 구하려면 이렇게 쓰면 됩니다.

지금 DATE_ADD(sign_up_day, INTERVAL 300 DAY)라고 적힌 부분은 sign_up_day 컬럼의 값에 300일을 더한 날짜를 나타냅니다.
만약 가입일(sign_up_day) 기준 250일 이전의 날짜를 구하고 싶으면 이렇게 쓰면 됩니다.

4. UNIX Timestamp 값

지금 member 테이블에서 날짜를 나타내는 컬럼(birthday, sign_up_day)은 있지만, 시간을 별도로 나타내는 컬럼은 없습니다. 날짜뿐만 아니라 시간까지 포함하는 컬럼이라면 DATETIME이라는 데이터 타입을 사용해야하는데요. DATETIME 타입의 컬럼에는 보통 '2018-12-31 23:54:59’ 이런 식으로 값들이 저장되어 있습니다.
그런데 문제는 어떤 테이블에는 날짜와 시간이 이렇게 예쁜 형식으로 적혀있는게 아니라, 1553526000 이런 식으로 상당히 큰 숫자값이 적혀있는 경우들이 꽤 많다는 겁니다. 이것 또한 날짜와 시간을 나타내는 값인데요. 이런 형식의 날짜시간 값을 UNIX Timestamp라고 합니다. UNIX Timestamp는 특정 날짜의 특정 시간을, 1970년 1월 1일을 기준으로, 총 몇 초가 지났는지로 나타낸 값입니다.
정확히 어떤 건지 보여드리겠습니다. DATE 타입의 값을 Unix Timestamp로 바꿔주는 함수가 있는데요. sign_up_day 컬럼의 날짜값을 한번 Unix Timestamp로 변환해보겠습니다.

profile
개발 재밌따..ㅎ

0개의 댓글