
show
desc
create database 데이터베이스명;
drop database 데이터베이스명;
drop database if exists 데이터베이스명;
create table article {
title varchar(100),
body text
};
insert into 테이블명(컬럼명) values(값);
insert into article(title, body) values ("제목1","내용1");
select 컬럼명 from 테이블명;
select title from article; // 선택조회
select * from article; // 전체조회
alter table 테이블명 add column 컬럼명 자료형;
alter talbe article add column people varchar(10);
update 테이블명 set 컬럼명 = 값;
update article set people = '김모씨' where title='제목1';
delete from 테이블명;
delete from article where people='김모씨';
now()
select now() -> 현재시간
#4. 사원테이블에 있는 직책의 목록을 조회하시오. (hint : distinct, group by)
group by -> 자동 정렬 기능 있음
select distinct 직책 from 사원;
select 직책 from 사원 group by 직책;
#5. 총 사원수를 구하시오. (hint : count)
select count(*) from 사원;
#20. 부서별 전체 사원수와 커미션을 받는 사원들의 수를 구하는 쿼리 (hint : group by, count())
select 부서번호, count(*), count(커미션) from 사원 group by 부서번호;
#7. 월급여가 2500이상 되는 사원을 조회하시오.
select * from 사원 where 월급여 >= 2500;
#9. 사원들 중 이름이 S로 시작하는 사원의 사원번호와 이름을 조회하시오. (hint : like)
select 사원번호,이름 from 사원 where 이름 like 'S%';
#11. 커미션이 300, 500, 1400 인 사원의 사번,이름,커미션을 조회하시오. (hint : OR, in )
select 사번,이름,커미션 from 사원 where 커미션 IN(300,500,1400);
#12. 월급여가 1200 에서 3500 사이의 사원의 사번,이름,월급여를 조회하시오. (hint : AND, between)
select 사번,이름,월급여 from 사원 where 월급여 between 1200 and 3500;
#15. 커미션이 300, 500, 1400 이 모두 아닌 사원의 사번,이름,커미션을 조회하시오. (hint : not in)
select 사번,이름,커미션 from 사원 where 커미션 not in(300,500,1400);
#16. 이름에 S가 포함되지 않는 사원의 사번,이름을 조회하시오. (hint : not like)
select 사번,이름 from 사원 where 이름 not like '%S%';
#17. 급여가 1200보다 미만이거나 3700 초과하는 사원의 사번,이름,월급여를 조회하시오. (hint : not, between)
select 사번,이름,월급여 from 사원 where 급여 not between 1200 and 3700;
alter table article modify id int not null;
alter table article modify column reDate DATETIME NOT NULL;
#18. 직속상사가 NULL 인 사원의 이름과 직급을 조회하시오. (hint : is null, is not null)
select 이름,직급 from 사원 where 직속상사 is null;
#19. 부서별 평균월급여를 구하는 쿼리 (hint : group by, avg())
select 부서번호, avg(월급여) as 평균월급여 from 사원 group by 부서번호;
#21. 부서별 최대 급여와 최소 급여를 구하는 쿼리 (hint : group by, min(), max())
select 부서번호, max(급여), min(급여) from 사원 group by 부서번호;
#22. 부서별로 급여 평균 (단, 부서별 급여 평균이 2000 이상만) (hint : group by, having)
select 부서번호, avg(급여) from 사원 group by 부서번호 having avg(급여)>=2000;
#23. 월급여가 1000 이상인 사원만을 대상으로 부서별로 월급여 평균을 구하라. 단, 평균값이 2000 이상인 레코드만 구하라. (hint : group by, having)
select 부서번호, avg(급여) from 사원 where 급여 >= 1000 group by 부서번호 having avg(급여) >= 2000;
생각해 보니 모든 행(row)의 id 값은 유니크 해야한다.(ADD PRIMARY KEY(id))
오류가 난다. 왜냐하면 기존의 데이터 중에서 중복되는게 있기 때문에
id가 0인 것 중에서 1개를 id 1로 바꾼다.
update article set id = 1;
id가 0인것을 id 2로 바꾼다.
생각해 보니 모든 행(row)의 id 값은 유니크 해야한다.(ADD PRIMARY KEY(id))
alter table article add primary key(id);
alter table article modify column id int unsigned not null;
// id 컬럼을 int 에서 unsigend int 로 변경
article 테이블에 데이터 추가(regDate = NOW(), title = '제목6', body = '내용6', nickname = '임꺽정', hit = 100)
조회수 가장 많은 게시물 3개 만 보여주세요., 힌트 : ORDER BY, LIMIT
select * from article order by hit desc limit 3;
작성자명이 '홍길'로 시작하는 게시물만 보여주세요., 힌트 : LIKE '홍길%'
select * from article where nickname like '홍길%';
조회수가 10 이상 55 이하 인것만 보여주세요., 힌트 : WHERE 조건1 AND 조건2
select * from article where hit>=10 AND hit <=55;
작성자가 '무명'이 아니고 조회수가 50 이하인 것만 보여주세요., 힌트 : !=
select * from article where 작성자 != '무명' and hit <=50;
작성자가 '무명' 이거나 조회수가 55 이상인 게시물을 보여주세요. 힌트 : OR
select * from article where 작성자 ='무명' or hit >= 55;
작성자(writer) 칼럼을 title 칼럼 다음에 추가해주세요.
alter table article add column writer varchar(100) not null after title;