SELECT문
- 데이터 조회. CRUD의 R
- select문 사용시 조회 컬럼의 순서는 임의로 나열할 수 있으며 나열된 순으로 조회된다
- 만약 테이블의 전체 컬럼을 조회하고 싶은 경우 컬럼위치에 * 기호를 사용할 수 있다
- 데이터베이스 안에 존재하는 테이블 조회시 데이터베이스명 생략 가능하다
- 조회 결과 가로축은 컬럼의 나열이 되며 세로축은 조회 데이터 객체들이 된다
- 조회시 반드시 전체 컬럼을 명시할 필요는 없다(필요한 컬럼만 조회 가능)
select [조회 컬럼1],[조회 컬럼2],... from [데이터베이스].[테이블명];
sample 테이블 전체 데이터 조회하기
select subject, name, age, sample_data from board.sample;
데이터베이스 안에 존재하는 테이블이라 데이터베이스명 생략
select subject, name, age, sample_data from sample;
*를 사용할 경우 전체 데이터 조회(테이블 생성할때 컬럼 순서)
select * from sample;
테이블 부분 컬럼 데이터 조회하기
sample 테이블 이름과 나이 조회
select name, age from sample;
user 테이블의 아이디, 비밀번호, 이름 컬럼을 조회
select uid,upw,uname from user;
AS(별칭)
as 문법을 사용하면 조회되는 컬럼명에 별칭을 부여할 수 있다
실제 컬럼명에는 영향을 주지 않는다
별칭 중간에 공백이 있을 경우 꼭 작은 따옴표로 별칭을 감싸줘야한다
select uid as 'id', upw 'password', uname 'name' from user;
조건이 존재하는 데이터 조회하기
조회 테이블에서 조회 조건이 일치하는 조회 컬럼들 출력
select [조회컬럼들..]
from [조회 테이블]
where [조회 조건]
and [추가 조건] (무조건 일치)
or [추가 조건] (이거나 아니거나);
user 테이블에서 uno 필드가 4인 데이터 조회
select * from user where uno = 4;
user 테이블에서 이름이 '홍길동'인 데이터의 모든 컬럼을 조회
select * from user where uname = '홍길동';
user 테이블에서 상태가 활성화인 데이터의 회원번호, 아이디, 이름 컬럼을 조회
select uno, uid, uname from user where ustate = 'E';
user 테이블에서 상태가 활성화이며 이름이 홍길동인 데이터의 모든 컬럼을 조회
select * from user where uname = '홍길동' and ustate = 'E';
user 테이블에서 이름이 홍길동이거나 아이디가 admin인 데이터의 모든 컬럼을 조회
select * from user where uname = '홍길동' or uid = 'admin';
조건이 여러개인 경우 위에서부터 순서대로 조건을 비교하여 만족하는 데이터를 조회한다
select * from user where uname = '홍길동' and uid = 'tester1' or uid = 'admin';
위의 코드는 밑의 코드처럼 적용되 조회된 결과인 것이다
select * from user where (uname = '홍길동' and uid = 'tester1') or uid = 'admin';
공지사항 테이블에서 작성자 번호가 3이며 상단 노출데이터 이거나 상태가 D인 데이터의 모든 컬럼을 조회
select * from notice_board where uno = 3 and top_yn = 'Y' or state = 'D';
where절의 조건 선언 순서에 따라 시스템의 성능이 달라진다
성능향상 : 적게 검색될 조건부터 많이 검색될 조건 순으로 나열하면 된다
hit = 0 으로 조회하여 5개가 나오고, 그 5 개중 top_yn = 'Y'이 몇개인지 조회됨
select * from notice_board where hit = 0 and top_yn = 'Y';
전체 데이터 5개에서 top_yn = 'Y'이 2개 나오고, 그 2개에서 hit = 0인 데이터가 몇개인지 조회됨
select * from notice_board where top_yn = 'Y' and hit = 0;
where절 사용시 관계연산자를 사용하여 범위를 조건으로 걸 수 있다
숫자 타입 또는 날짜 타입에서 사용 가능
회원 번호가 4보다 큰 회원 데이터 조회
select * from user where uno > 4;
날짜 조회
날짜까지만 적으면 시간은 00:00:00 으로 됨
select * from user where urdate >= '2024-08-27' and urdate < '2024-08-29';
select * from user where urdate = '2024-08-28 17:12:52';
select * from user where urdate >= '2024-08-28 17:00:00' and urdate < '2024-08-28 17:20:00';
'MySQL' 카테고리의 다른 글
[MySQL] DML 데이터조작어 UPDATE, DELETE (0) | 2024.09.04 |
---|---|
[MySQL] SELECT문 WHERE BETWEEN, IN(),LIKE, 서브쿼리 (0) | 2024.09.03 |
[MySQL] DML 데이터조작어 INSERT문 (0) | 2024.09.01 |
[MySQL] DDL 데이터 정의어 (0) | 2024.08.31 |
[MySQL] 유저 생성, 권한 부여 (0) | 2024.08.31 |