MySQL 21

[MySQL] 데이터 그룹화하여 처리 group by, having

group by : 그룹화된 데이터를 기반으로 데이터를 집계하거나 분류하는데 사용-- ~별로 묶어서 ... 하자 : group by 키워드-- author_lname 별로 몇권의 책을 썼는지-- author_lname 과 책의 권수를 보여주세요.select author_lname, count(author_lname) as book_cntfrom booksgroup by author_lname; -- 년도별로 각각 몇권의 책이 출간되었는지-- 년도와 책의 수를 보여주세요.select released_year, count(released_year)from booksgroup by released_yearorder by released_year asc;  group by 로 그룹화된 데이터에 대한 조건을 설정..

MySQL 2024.05.14

[MySQL] 데이터 집계 함수 count, sum, avg, max, min

count: 행의 수를 세는 함수-- 갯수를 세는 함수 count 함수-- books 테이블의 데이터의 갯수는?select count(*)from books;-- author_lname 은 중복 데이터가 있다.-- author_lname 기준으로는 몇 명인가?select count(distinct author_lname)from books;-- 책 제목에 the 가 들어간 책은 몇권입니까?select count(*)from bookswhere title like '%the%';  max: 숫자 열에서 최댓값을 찾는 함수-- 최대값 구하는 함수 max()-- 페이지 수가 가장 많은 책은, 몇 페이지 입니까?select max(pages)from books;  min: 숫자 열에서 최솟값을 찾는 함수-- 최..

MySQL 2024.05.14

[MySQL] 문자열 검색에 유용한 like

like : 문자열 안에 원하는 문자가 들어있는지 검색 -- 책 제목에 the 가 들어있는 데이터를 가져오시오.-- 책 제목이 the 인거 가져오시오. 와는 완 전 히 다른것!!select *from bookswhere title = 'the';select *from bookswhere title like '%the%';-- %는 "the" 앞, 뒤, 또는 둘 다의 어떤 문자열이든 올 수 있다는 것을 의미  -- 책 제목에 시작이 the 로 시작하는 데이터를 가져오시오.select *from bookswhere title like 'the%'; -- stock_quantity 의 숫자가, 두 자리인 데이터만 가져오시오.-- 언더스코어 사용! __select *from bookswhere stock_qu..

MySQL 2024.05.14

[MySQL] 데이터를 가공 키워드 distinct, order by, limit

distinct : 데이터를 유니크하게 만든다. (중복을 제거) -- 데이터를 유니크하게 만드는 키워드 distinct-- author_lname 이 카테고리컬 데이터다. 유니크한 데이터를 확인하자.select distinct author_lnamefrom books;-- fname 과 lname 을 합친 full_name 으로 중복 제거해서 확인해보자.select distinct concat(author_fname, ' ' , author_lname) full_namefrom books; order by : 데이터를 정렬-- 정렬 : order by 키워드 => 위치가 중요!-- author_lname 으로 정렬select *from booksorder by author_lname;-- full_nam..

MySQL 2024.05.14

[MySQL] 문자열 컬럼 데이터 가공 함수 concat(), substring(), replace(), reverse(), char_length(), upper(), lower()

concat(): 문자열을 합친다.select *, concat(author_fname,' ',author_lname) full_namefrom books;-- 이름 두 개를 붙혀서, full_name 을 만들고,-- 책 제목과 출간년도를 같이 보여주시오.select concat(author_fname,' ', author_lname) full_name, title, released_yearfrom books; concat_ws(): 구분자로 문자열을 합친다. (여러 문자열 컬럼을 합칠때 그 사이를 첫번째 입력한 파라미터로 합친다.)-- concat_ws() 함수를 사용하는 방법 : 첫번째 파라미터가 문자열 붙일 때 사용할 문자열select title, pages, concat_ws(' ..

MySQL 2024.05.13

[MySQL] 테이블 원하는 컬럼, 데이터만 Select 하기

테이블 데이터 CRUDCreate > insert intoRead > selectUpdate > updateDelete > delete Read > select -- select 옆 자리는 컬럼-- * => 모든 컬럼select*from cats; -- id, name 컬럼만 가져오기select id, namefrom cats; -- age, name, id 컬럼순으로 가져오기select age, name, idfrom cats; -- id와 name 컬럼을 가져오되, name 컬럼의 이름을 cat name 으로 바꿔서 데이터를 가져오자.-- 예시로 사용했지만 공백은 사용하지 않는 것이 좋다.select id, name as 'cat name'from cats;select id as 'cat id' , ..

MySQL 2024.05.13

[MySQL] Null, Not Null, Default

테이블 생성시 NN ( Not Null) 를 체크하면 null 값 허용 XNN을 체크하고 디폴트값을 주지 않으면INT 타입의 경우 기본값으로 0을 사용하고, VARCHAR 타입의 경우 기본값으로 빈 문자열('') 로 표시insert into cats(name)values('키티');insert into cats(age)values(5);insert into cats(age)values(10);   Default 칸에 입력시 빈 데이터에 해당 데이터로 입력된다.insert into cats(name)values('길동이');insert into cats(age)values(3);

MySQL 2024.05.13

[MySQL] 테이블에 데이터 insert 하기

insert into 뒤에 테이블명, 테이블 컬럼명을 입력하고(순서는 상관없음)values () 괄호 안에 저장할 데이터 컬럼명 입력 순서대로 입력 -- 데이터베이스 지정use yhdb;-- 테이블에 데이터 저장insert into cats(name, age)values('야옹이', 7);-- 테이블의 데이터를 확인(가져오는) 방법-- select 오른쪽에는 컬럼 이름을 작성하는 것이다.-- * 은, 모든 컬럼을 말한다.select * from cats;-- 하나의 SQL 문으로 여러 개의 데이터를 넣는 방법insert into cats(name, age)values('찰리', 3), ('Sadie', 8), ('Bear', 4);-- VARCHAR(8)로 지정된 문자열 길이 제한으로 인해 입력된 값이 ..

MySQL 2024.05.13