본문 바로가기

SQL(Structured Query Language:)

(9)
SQL : 데이터 중복제거 distinct DISTINCT란 중복제거 키워드입니다. SELECT로 DB에서 컬럼을 조회할 때, 중복되는 값을 제거하고 조회할 때 사용합니다. 즉, DISTINCT 키워드를 붙인 필드(컬럼)는 중복 값을 합쳐 한 번만 출력합니다. -- 테이블에서 필드에 대해 중복제외하여 출력 SELECT DISTINCT 필드 FROM 테이블. use yh_db; SELECT * FROM yh_db.books; insert into books (title, author_fname, auther_lname, released_year, stock_quantity, pages) values ('10% Hppir', 'Dan', 'Harris', 2014, 29, 256), ('fake_book', 'Freida', 'Harris', 200..
SQL : CASE문 작성법 (and/or/when/where.......) AND : 조건을 모두 충족하는 것 페이지(pages)가 100이상이고 200이하인 데이터 출력 100이상이고 200이하의 조건을 모두 충족해야하므로 and 사용 select * from books where pages >= 100 and pages 1900 and title like '%novel%'; -- author_lname이 Egger 이거나 출간년도가 2010보다 큰 책을 -- 가져오시오. select * from books where author_lname = 'Eggers' or released_year > 2010; -- 무엇과 무엇 사이의 데이터를 가져올때 !! -- 년도가 2004년부터 2015년 사이의 책 데이터를 가져오시오. select * from books where relea..
SQL : MySQL에서 날짜 데이터를 저장하는 데이터타입/ DATE,TIME,DATETIME,TIMESTAMP -- 시간을 처리하는 방법 -- date, time, datetime -- date YYYY-MM-DD -- time HH:MM:SS -- datetime YYYY-MM-DD HH:MM:SS insert into people2 (name, birthdate, birthtime, birthdt) values ('Padma', '1988-11-11', '10:07:35', '1988-11-11 10:07:35'), ('Larry', '1994-04-22' , '04:10:42', '1994-04-22 04:10:42'); select * from people2; -- 현재 시간과 관련된 함수 3개, curdate(), curtime(), now() select now(); insert into people2..
SQL : Group by / Order by -- 각 작가별로, 자신이 쓴 책의 최소 년도는? -- 작가의 성과 이름, 그리고 최소년도가 나오도록 가져오세요. -- 각 작가별로, 자신이 쓴 책의 페이지가 가장 많은 책의 페이지 수를 -- 작가의 성과 이름, 그리고 최대 페이지 수로 나오도록 가져오세요. select author_fname, author_lname, min(released_year) from books group by author_fname, author_lname; select author_fname, author_lname, max(pages) from books group by author_fname, author_lname; -- 이 테이블의 페이지수 총 합은? select sum(pages) from books; -- 각 작..
SQL : 문자열 검색에 유용한 like 사용법 -- 문자열 포함 (Serach) : like 키워드 -- 내가 찾고자 하는 문자열이, 컬럼에 포함되어 있는지 확인하는 방법. -- 책 제목에 the 라고 들어있는 책만 가져오시오. select * from books where title like the; -- the로 시작하는 책만 가져오시오. select * from books where title like '%the' ; -- author_fname애 da라고 들어있는 작가의 -- 책 제목, author_fname, 페이지수를 가져오시오. select title, author_fname, pages from books where author_fname like '%da%' ; -- 언더스코어 기호를 이용한 쿼리문. -- 언더스코어 갯수만큼, 숫자가..
SQL : 페이징(paging)에 사용되는 limit와 offset -- 책테이블의 데이터를 3개만 가져오시오(방법1) select * from books limit 3; -- 최신책을 기준으로 3개만 가져오시오. (방법2) select * from books order by released_year desc limit 3, 3; -- 하나만 쓰면 갯수, 왼쪽이 오프셋, 오룬쪽이 갯수 select * from books order by released_year desc limit 6, 3 ; -- 최신책을 기준으로 10번째 책부터 끝까지 가져오시오. select * from books order by released_year desc limit 9, 1999999999;
SQL : 내림차순(desc),오름차순(아무것도 안쓰거나, asc) -- 내림차순 정렬은 desc 이고, -- 오름차순 정렬은 디폴트이므로, 아무것도 안쓰거나, asc라고 써주면 된다. 책제목 내림차순으로 가져오라 (desc) select * from books order by title desc; 책제목 오름차순으로 가져오라 (아무것도 안쓰거나, asc) select released_year, title from books order by released_year desc; -- full name을 내림차순으로 정렬하고, 책 페이지가 많은것부터 가져오세요. select *, concat(author_fname, ' ', author_lname) as full_name from books order by 8 desc, 7 desc;
SQL 진행중 select distinct / 데이터정렬 order by use yh_db; SELECT * FROM yh_db.books; insert into books (title, author_fname, auther_lname, released_year, stock_quantity, pages) values ('10% Hppir', 'Dan', 'Harris', 2014, 29, 256), ('fake_book', 'Freida', 'Harris', 2001, 287, 428), ('Lincoln In The Baardo', 'George', 'Saunders', 2017, 111, 388); select * from books; -- distinct 판다스의 유니크와 비슷함 -- author_lname의 이름을 중복없이 가져오세요. select distinct au..
SQL : MySQL Workbench를 이용해서 테이블 생성하기 use yh_db; SELECT * FROM yh_db.books; insert into books (title, author_fname, auther_lname, released_year, stock_quantity, pages) values ('10% Hppir', 'Dan', 'Harris', 2014, 29, 256), ('fake_book', 'Freida', 'Harris', 2001, 287, 428), ('Lincoln In The Baardo', 'George', 'Saunders', 2017, 111, 388); select * from books; -- distinct 판다스의 유니크와 비슷함 -- author_lname의 이름을 중복없이 가져오세요. select distinct au..