※ 조회
● Select Order By
order by는 값을 정렬시키는 명령문이다. 기본은 오름차순이다,
● asc : 오름차순
● desc : 내림차순
select * from usertbl order by mDate asc; 는 mDate를 기준으로 오름차순이다.
select * from usertbl order by mDate desc; 은 mDate를 기준으로 내림차순하는 것이다.
order by하면 같은 값에 한해 내림차순이되는데 뒤에 ', name'이 붙으면 같은 값을 오름차순으로 변경해준다.
● distinct : 단일 열 값을 기준으로 중복값 없애기(단, 같은 열에 같은 값이 들어있어도 다른 열에 다른 값이 들어있으면 안 사라짐)
select distinct addr, name from usertbl; 하면 이런 표가 나온다. 'distinct addr'을 쓰더라도 name에 다른 값들이 들어가 있으므로 중복 addr들이 없어지지 않는 것이다.
그래서 select distinct addr from usertbl; 이렇게 단일 값으로만 중복값을 없앨 수 있다.
● limit : 제한해서 조회하기
기본 select * from usertbl하면 이런 표들이 나온다.
여기서 limit 3을 쓰면 위에서 3번째 행까지 조회할 수 있다.
select * from usertbl limit 3;
select * from usertbl limit 2,3; 는 2번째 행부터 3개의 행을 조회할 수 있다.
※ 복사
● 구조와 값 복사(단. 개인키와 외래키는 복사되지 않음)
새로운 테이블을 만들어주는 명령어 안에 괄호를 사용해 복사 할 테이블을 넣어준다.
create table 테이블명 ( select 복사할 열 from 복사 할 테이블명);
desc 테이블명 으로 구조를 조회해보면 관계형에 대한 속성값들은 들어가지 않는다.(ex 기본키, 외래키)
create table tbl_buy_copy2(select userid, prodname, amount from buytbl);
select * from tbl_buy_copy2;
● 구조만 복사 (값, 외래키는 복사 x / 기본키와 index는 복사 o)
like 뒤에 복사할 테이블을 적으면 된다.
create table tbl_buy_copy3 like buytbl;
- 구조만 복사
- desc해서 구조 확인
- 인덱스 확인
- foreign key는 없는 걸 볼 수 있다.
● 복사된 구조물에 값 삽입 (데이터만 복사)
위에 만든 테이블에 값을 삽입해볼 것이다.
insert into tbl_buy_copy3 select * from buytbl where amount >= 3; amount 값이 3이상인 값들만 삽입
※ 연습 문제
1. select * from buytbl order by userid asc;
2. select * from buytbl order by price desc;
3. select * from buytbl order by amount asc, prodname desc;
4. select distinct prodname from buytbl order by prodname asc;
5. select distinct userid from buytbl;
6. select * from buytbl where amount >= 3 order by prodname desc;
7. create table cusertbl (select * from usertbl where addr in('서울', '경기'));
select * from cusertbl;
'IT수업 > 데이터베이스' 카테고리의 다른 글
it 수업 6주차 (13) insert문 (0) | 2024.01.31 |
---|---|
it 수업 6주차 (12) Group By 절 (1) | 2024.01.30 |
it 수업 6주차 (10) SQL문 (SELECT) (1) | 2024.01.29 |
it 수업 6주차 (9) ER다이어그램으로 리버싱하기 (0) | 2024.01.29 |
it 수업 5주차 (8) ER다이어그램 (1) | 2024.01.25 |