select [destinct] 테이블명 {, 테이블명} * from 필드명 {. 필드명} * [where 검색조건] [order by 필드명 [asc or desc] {, 필드명 [asc or desc]} *] [group by 필드명 {, 필드명} *] [having 검색조건] ;
1. 일반적 검색
mysql> select name, id from uncle where level='a' ;
=> uncle 테이블에 level이 a인 데이터의 name, id을 보여준다.
mysql> select * from uncle;
=> uncle 테이블에 있는 모든 데이터를 보여준다.
2. 결과 레코드의 중복 제거
mysql> select distinct level from uncle;
=> uncle 데이블에 level의 종류가 몇개인지 알수가 있다.
3. 조건검색
mysql> select name, id from uncle where age > 20 and level = 'a';
=> uncle 데이블에 age가 20보다 크고 level 이 a인 name, id을 보여준다.
(검색조건을 표시하는 where절에는 비교연산자 > , >=, <, <=, = 와 논리연산자 and, or, not 을 사용할수 있다.
4. 검색 결과의 정렬
mysql> select name, id from uncle where age > 20 order by level desc;
=> uncle 데이블에 age가 20보다 큰 name, id을 level 내림차순으로 보여준다.
(asc 는 오름차순, desc는 내림차순 asc나 desc가 없이 order by만 쓴다면 기본값 asc로 설정된다.)
5. 검색 결과에 대한 산술 계산 및 문자열 처리
mysql> select name, '님의 아이디는', id, '입니다.' from uncle where age > 20 order by level ;
=> uncle 데이블에 age가 20보다 큰 name, id을 level 오림차순으로 보여준다.
결과는 ' name 님의 아이디는 id 입니다. ' 이렇게 보인다.
mysql> select name, age+5 from uncle where id = 'uncle' ;
=> uncle 데이블에 id가 uncle 인 레코드의 name, 원래 age보다 +5 해서 결과를 보여준다.
6. 그룹함수(group function)를 이용한 검색
mysql> select count(*) from uncle where level = 'a' ;
=> uncle 데이블에 level 이 a을 만족하는 레코드 결과를 보여준다.
* count(필드명) : 조건을 만족하는 레코드의 개수
* sum(필드명) : 해당 필드의 합
* min(필드명) : 해당 필드의 최대값
* max(필드명) : 해당 필드의 최소값
* avg(필드명) : 해당 필드의 평균값
7. group by를 이용한 검색
mysql> select level max(age), min(age), avg(age) from uncle group by level ;
=> uncle 데이블에 level 과 최대 age값, 최소 age값, 평균 age 값을 level 별로 결과를 보여준다.
8. having을 이용한 검색
mysql> select level max(age), min(age), avg(age) from uncle group by level having level = 'a' ;
=> uncle 데이블에 level 과 최대 age값, 최소 age값, 평균 age 값을 level a의 결과만 보여준다.
(having문은 group by에서 지정한 필드에 대한 검색 조건문이다.)
9. between 연산자를 이용한 검색
mysql> select name, id from uncle where level = 'a' and age between 20 and 25 ;
=> uncle 데이블에 age가 20 ~ 25 이고 level 이 a 인 레코드의 name, id 을 보여준다.
* mysql> select name, id from uncle where level = 'a' and age >= 20 and age <=25 ; 와 같다.
mysql> select name, id from uncle where level in ('a', 'b') ;
=> uncle 데이블에 level이 a, b 인 name, id을 보여준다.
mysql> select name, id from uncle where level not in ('a', 'b') ;
=> uncle 데이블에 level이 a, b 을 제외한 name, id을 보여준다.
10. like을 이용한 검색
mysql> select name, id from uncle where name like '%용%' ;
=> uncle 데이블에 name에 '용' 포함되어 있는 name, id을 보여준다.
('%용' 이면 용으로 끝나는 레코드를 '용%'이면 용으로 시작하는 레코드를 보여준다.)
11. null 값을 이용한 검색
mysql> select name, id from uncle where level is null ;
=> uncle 데이블에 level 값이 null 인 name, id을 보여준다.
'데이터베이스 > Mysql' 카테고리의 다른 글
Mysql 테이블 컬럼 수정 - ALTER TABLE 편 (0) | 2015.07.02 |
---|---|
Mysql 함수 - 날짜관련,날짜변환 (0) | 2015.07.01 |
mysql 열 추가 삭제 (기본 쿼리) (0) | 2014.05.20 |
Mysql 데이터베이스 생성 (0) | 2014.05.18 |
sql 레코드 변경 및 삭제 (0) | 2014.05.15 |