네이버지식인에 올라온 걸 테스트도 해볼겸 윈도우 기반 AutoSet9 의 phpmyadmin 기능 확인도 해볼겸 해서 간단한 테이블을 하나 만들었다.
-- 테이블 구조 `date`
CREATE TABLE IF NOT EXISTS `date` (
`uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`classcode` varchar(20) NOT NULL,
`meeting_date` varchar(14) NOT NULL,
`appointment_date` varchar(14) NOT NULL,
PRIMARY KEY (`uid`),
KEY `classcode` (`classcode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
테이블 생성과 동시에 Index 까지 설정했다.
phpmyadmin 에서는 인덱스 설정하는 것이 무척 쉽다.
하지만 테이블 설계하면서 인덱스(Index)까지 설정해주는 것이 좋다.
MySQL 명령어 상에서 데이터 Insert 는 아래와 같이 하면 된다.
INSERT INTO `date` (`uid`, `classcode`, `meeting_date`, `appointment_date`) VALUES
(1, 'y0001', '2015-06-01', '2015-05-01'),
(2, 'y0002', '2015-06-01', '2015-05-02');
테스트용으로 데이터를 추가한다고 하면 phpmyadmin 에서 쉽게 할 수 있다.
먼저 데이터베이스와 테이블을 선택한 다음에 아래 번호 순서대로 데이터를 입력해주기만 하면 된다.
4번을 눌러서 실행을 하고 나면 데이터가 입력되고
실제 MySQL Insert 명령을 통해서 입력되는 구문 형태를 보여준다.
여기서 uid 는 NULL 이라고 표기되면서 입력이 된 것을 알 수 있다.
이 의미는 자동으로 알아서 증가되도록 테이블 구조 설계를 했기 때문이다.
만약, php 와 연동하여 게시판 같은 테이블을 만든다고 하면, uid 칼럼은 데이터 입력시에는 고려하지 않아도 된다는 의미다. 물론 uid는 primary 키값이기 때문에 중요하다.
데이터가 잘 입력되었는지 확인해보자.
이제 지식인에 문의된 걸 해보자.
datediff 기능을 확인하기 위해 http://www.w3schools.com/sql/default.asp 에 접속하여
정의 및 사용법이 나온다. (http://www.w3schools.com/sql/func_datediff_mysql.asp 참조)
DATEDIFF(date1,date2) -- MySQL
DATEDIFF(datepart,startdate,enddate) -- MS-SQL Server
datepart : day, week, month, hour 등 어떤 기준으로 결과를 뽑아낼지 나온다.
이제 date 테이블에서 select 해보자.
select datediff(meeting_date, appointment_date) from date where classcode='y0001';
결과가 나왔다.
이제 테이블에서 약속일자(meeting_date) 와 약속(appointment_date) 날짜의 차이가 20 보다 작은 코드를 뽑아내고 싶다면 WHERE 조건절에 datediff 함수를 적용하면 된다.
select * from date where datediff(meeting_date, appointment_date) < 20;
윈도우 cmd 창을 띄우지 않고도 phpmyadmin 상에서 MySQL query 문 테스트가 얼마든지 가능하며 편하다.
MySQL 테이블 구조와 데이터를 내보내기를 하고 싶다면
본 게시글 작성을 위해 테스트한 테이블 구조 첨부하니 필요한 분은 받아서 테스트 해보세요..
'SQL' 카테고리의 다른 글
MySQL 테이블간 참조무결성 (0) | 2015.09.28 |
---|---|
[MySQL] 두개의 테이블의 데이터 조인하여 내용 Update (0) | 2015.09.16 |
[MySQL] explain 실행계획(SQL 성능 튜닝) ★★★★ (0) | 2015.08.21 |
[MySQL] DB 데이터 전체 백업 및 다른 DB로 옮기기 (0) | 2015.08.19 |
[MySQL] 테이블 생성하고 데이터 전부 복사하기 (0) | 2015.08.14 |