삼팔광땡~ MYSQL 입문기
자, 이제 첫 걸음이다. 칼을 뽑았으니 이제 무를 뽑으러 가자!
0. 이런 실수? 할 수 있다.
비전공자 또는 낙엽줄로 개발 공부하면서 섭섭하게 느끼는 점이 하나 있다면 너무 당연?한 것은 알려주지 않는다는 것이다. 매번 포스팅을 작성하기 앞서 그런 내용들을 기억나는 데로 적어두려한다.
1) sql 의 명령문 마지막엔 ' ; ' 를 꼭 기입한 후 엔터 키를 눌러야한다.
1. DESC
앞서 말하자면 DESC는 SQL 명령이 아니다
desc sample21;
결과 화면에 표현되는 테이블에는 field, type, null, key, default,extra 여섯 칼럼으로 구성되어있다
자세한 내용은 책을 참고하시면 될 것 같다
2. <> 연산자
일반적으로 특정 테이블의 모든 내용을 검색하는 경우
= 검색(select ) 모든것(* ) 시작되는곳은(from ) 테이블이름(sample21 )
= 여기서 테이블 이름은 변경되는 정보이다.
select * from sample21;
no 열의 값이 2가 아닌 행만 추출
select * from sample21 where no <> 2;
3. 정렬 후 리스트 출력 수 제한하기
정렬 후 리스트 수를 제한하는 명령은 LIMIT, TOP, ROWNUM 등이 있지만 각 명령어는 모든 환경에서 적용되는 것은 아니다.
LIMIT는 MySQL에서 사용가능하고 TOP은 SQL Server에서 ROWNUM+WHERE은 oracle에서 사용할 수 있다.
1) 이번 블로그는 MySQL 환경에서 하고 있으니 LIMIT 를 실습해보겠습니다.
select * from sample33 limit 3;
+ α ) 참고로 LIMIT 하기 전에 sample33 테이블의 리스트는 몇 개였을까요?
2번 예제를 참고해서 실행해보면 아래와 같습니다. 전체 7 줄이었군요~
2) 리스트 수를 제한하는 방법은 알겠다. 그런데 만약 리스트의 순서를 오름차순(1,2,3,4 또는 가,나,다..)이 아닌 내림차순(9,7,6 또는 하,타,파..) 으로 하려면? 어떻게해야하는지 실습해보자 .
select * from sample33 order by no desc limit 3;
3) 참고로 오라클에서는 rownum 명령과 >,<,=,<= 와 같은 연사자를 함께 사용합니다.
select * from sample33 where rownum<= 3;
4. LIMIT + OFFSET on MySQL
자, 바로 위에 있는 3-3) 리스트 정렬 순서를 조정하는 실습을 해보았는데요, 이번엔! 원하는 구간을 설정 해볼까요? 바로, offset 이라는 옵션을 통해 설정이 가능합니다. 참고(TMI 주의)로 '오프-셋'은 동일 오브젝트 안에서 오브젝트 처음부터 주어진 요소나 지점까지의 변위차를 나타내는 정수형이라는 뜻입니다.
1) 앞서 실습했던 select * from sample33 limit 3 명령은 사실, 아래와 같은 명령어였답니다.
select * from sample33 limit 3 offset 0;
2) 자, 이제 아래와 같이 변형해서 실습해보면 offset 이라는 옵션은 (본인은 포함하지 않는, 또는 본인 '+1 ') 시작하는 위치라는 것을 알 수 있습니다.
select * from sample33 limit 3 offset 3;
5. CURRENT_TIMESTAMP 시스템의 날짜 확인하기
이번엔 리스트에서 벗어나 새로운? 실습을 해볼까요? ;> 날짜를 다루는 sql 쿼리를 실습해보아요.
1) 그럼 먼저 오늘 날짜 정보를 불러와 볼까요?
* current_timestamp : 시스템(내 컴퓨터) 상의 오늘 날짜
select current_timestamp;
+ α ) 참고로 current_timestamp 함수는 표준 SQL 함수입니다. 당일 날짜정보를 특정하기 때문에서 인지? (1)인수를 지정할 필요가 없고 (2)oracle과 같은 전통적인 데이터베이스와 달리 from 구를 생략할 수 있습니다.
* current_date : 시스템(내 컴퓨터) 상의 오늘 날짜
select current_date;
+ α ) 참고로 CURRENT_TIME 와 CURRENT_TIME() 는 CURTIME()의 별칭입니다. 또한 함수가 문자열이나 숫자로 사용되었는지 문맥에 따라서 'YYYY-MM-DD'이나 YYYYMMDD 형식으로 현재 날짜를 반환한다.
관련 결과 ->
+ α ) 참고로 date 대신 time을 넣으면 시간 정보를 알 수 있습니다. 결과는 생략합니다 ;>
2) 이제 날짜를 더해봅시다. 아래 결과를 보면 아시겠지만 이번엔 두가지 방식을 실행해보았습니다. 실습 결과 interval 이라는 옵션은 넣어도 되고 안 넣어도 같은 결과를 도출하네요.
select current_date + 1 day;
검색해보니까, MySQL 날짜와 시간 함수에 대한 더욱 구체적인 예제와 정보는 나쥬니랩? 에서 확인해볼 수 있었습니다. 참고하실 분은 링크타고 고~ 고~ 해보셔도 좋을 것 같습니다. 그럼, 첫 실습은 여기서 끄읏~ ;D
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
삼팔광땡 MYSQL 입문기 03 - 복수열 갱신, 집계함수(count/sum/avg/min/max), 그룹화 group by (0) | 2019.02.11 |
---|---|
삼팔광땡 MYSQL 입문기 02 - CASE, COALESCE, WHEN절에서 NULL 변환, DEFAULT (0) | 2019.02.10 |
삼팔광땡 MYSQL 입문기 - 첫걸음 또는 목차 (0) | 2019.02.09 |
삼팔광땡 MYSQL 입문기 - 프롤로그 (0) | 2019.02.08 |
mac 에서 sql developer 실행을 위해 docker 를 설치하다 (0) | 2018.08.25 |
댓글