use cookDB;
create table testTBL1 (id int, userName char(3), age int);
insert into testTBL1 values(1,'뽀로로' , 16);
insert into testTBL1 (id, userName) values(2,'크롱');
insert into testTBL1 (userName, age, id) values('루피', 14,3);
SELECT * FROM testTBL1;
use cookDB;
create table testTBL2(
id int auto_increment primary key, userName char(3), age int);
insert into testTBL2 values (null, '에디', 15), (null, '포비', 12), (null, '통통이', 11);
insert into testTBL2 values (null, '포비', 12);
insert into testTBL2 values (null, '통이', 13);
select * from testTBL2;
SELECT LAST_INSERT_ID();
alter table testTBL2 auto_increment=100;
insert into testTBL2 values (null, '패티', 13);
select * from testTBL2;
use cookDB;
create table testTBL3(
id int auto_increment primary key, userName char(3), age int);
alter table testTBL3 auto_increment=1000;
set @@auto_increment_increment=3;
insert into testTBL3 values (null, '우디', 20);
insert into testTBL3 values (null, '버즈', 18);
insert into testTBL3 values (null, '제시', 19);
select * from testTBL3;
insert into testTBL3 values (null, '토이', 17), (null, '스토리', 18), (null, '무비', 19);
select * from testTBL3;
use cookDB;
create table testTBL4 (id int, fname varchar(50), lname varchar(50));
insert into testtbl4 select emp_no, first_name, last_name from employees.employees;
select * from testTBL4;
create table examTable3(select emp_no as "id", first_name as "Fname", last_name as "Lname" from employees.employees);
select * from examTable3;
create table testTBL5 (select emp_no, first_name, last_name from employees.employees);
select * from testTBL5 limit 3;
create table testTBL6 (select emp_no as id, first_name as Fname, last_name as Lname from employees.employees);
select * from testTBL6 limit 3;
use cookDB;
update testTBL4 set Lname='없음' where Fname = 'Kyoichi';
update buyTBL set price = price*1.5;
select * from buyTBL;
use cookDB;
SELECT * FROM testTBL4 where Fname = "Aamer" and id = 11800;
delete from testTBL4 where Fname ='Aamer' and id = 11800;
delete from testTBL4 where Fname ='Aamer' limit 5;
select count(Fname) from testTBl4 where Fname = "Aamer";
use cookDB;
create table bigTBL1 (select * from employees.employees);
create table bigTBL2 (select * from employees.employees);
create table bigTBL3 (select * from employees.employees);
delete from bigTBL1;
drop table bigTBL2;
truncate table bigTBL3;
use cookDB;
create table memberTBL (select userID, userName, addr from userTBL limit 3);
alter table memberTBL add constraint pk_memberTBL primary key (userID);
select * from memberTBL;
insert into memberTBL values ('KHD', '강후덜', '미국');
insert into memberTBL values ('LSM', '이상민', '서울');
insert into memberTBL values ('KSJ', '김성주', '경기');
insert ignore into memberTBL values ('KHD', '강후덜', '미국');
insert ignore into memberTBL values ('LSM', '이상민', '서울');
insert ignore into memberTBL values ('KSJ', '김성주', '경기');
select * from memberTBL;
insert into memberTBL values ('KHD', '강후덜', '미국') on duplicate key update userName ='강후덜', addr='미국';
insert into memberTBL values ('DJM', '동짜몽', '일본') on duplicate key update userName ='동짜몽', addr='일본';
select * from memberTBL;
insert into memberTBL values ('KHD', '강후덜', '미국') on duplicate key update userName ='강후덜', addr='미국';
insert into memberTBL values ('DJM', '동짜몽', '일본') on duplicate key update userName ='동짜몽', addr='일본';
select * from memberTBL;
USE cookDB;
select addr, row_number() over(PARTITION BY addr order by mDate ASC) as "지역별 가입일 빠른 순위", userName, mdate from userTBL;
select row_number() over (order by height DESC) "키큰 순위", userName, addr, height from userTBL;
select row_number() over (order by height DESC, userName) "키큰 순위", userName, addr, height from userTBL;
select addr, row_number() over(partition by addr order by height desc, userName asc) "지역별키큰순위" , userName, height from userTBL;
select dense_rank() over (order by height DESC) "키큰 순위", userName, addr, height from userTBL;
select rank() over (order by height DESC) "키큰 순위", userName, addr, height from userTBL;
select ntile(2) over (order by height DESC) "반번호", userName, addr, height from userTBL;
select ntile(4) over (order by height DESC) "반번호", userName, addr, height from userTBL;
USE cookDB;
SELECT userName, addr, height AS "키", height - (LEAD(height, 1, 0) OVER(ORDER BY height DESC)) AS "다음 사람과 키 차이" FROM userTBL;
select addr, userName, height as "키", height - (first_value(height) over(partition by addr order by height desc))
as "지역별 최대키와 차이" from userTBL;
select addr, userName, height as "키", (cume_dist() over (partition by addr order by height desc)) * 100 as "누적인원 백분율%" from userTBL;
use cookDB;
create table pivotTest(uName char(3), season char(2), amount int);
insert into pivotTest values('유재석', '겨울', 10);
insert into pivotTest values('강호동', '여름', 15);
insert into pivotTest values('유재석', '가을', 25);
insert into pivotTest values('유재석', '봄', 3);
insert into pivotTest values('유재석', '봄', 37);
insert into pivotTest values('강호동', '겨울', 40);
insert into pivotTest values('유재석', '여름', 14);
insert into pivotTest values('유재석', '겨울', 22);
insert into pivotTest values('강호동', '여름', 64);
select uName, sum(case when season='봄' then amount end) as'봄', sum(case when season='여름' then amount end) as'여름',
sum(case when season='가을' then amount end) as'가을', sum(case when season='겨울' then amount end) as'겨울' from pivotTest group by uName;
select userid as '사용자', sum(price*amount) as '총 구매액' from buyTBL group by userid;
with abc(userid, total) as (select userid, sum(price*amount) from buyTBL group by userid) select * from abc order by total DESC;
with cte_userTBL (addr, maxHeight) as (select addr, max(height) from userTBL group by addr) select avg(maxHeight * 1.0) as '각 지역별 최고키의 평균' from cte_userTBL;