본문 바로가기

MySQL21

[MySQL] 서브쿼리 Sub Query 사용하기 📝MySQL Workbench Sub Query 사용하기 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 Sub Query (= 쿼리 내부에 포함되어 있는 SELETE 문) ※ 서브쿼리는 메인쿼리의 컬럼을 사용 가능 / 메인쿼리는 서브쿼리의 컬럼 사용 불가능 -- 페이지수가 가장 긴 책의 제목은? -- 잘못된 SQL select title, max(pages) from books ; -- max값 구해서 sub query 하기 select * from books where pages = (select max(pages) from books); -- 재고가 가장 적은 책의 책이름과 작가의 fname, lname를 가져오기 select title, author_fname, author_lname fro.. 2022. 12. 7.
[MySQL] 데이터 그룹하여 처리하기 group by 📝MySQL Workbench 데이터 그룹하기 group by 데이터를 집계하는 group by 키워드 ※ 유형별로 갯수를 알고 싶을 때 컬럼에 데이터를 그룹화시켜 사용 null값이 없는 컬럼에 사용 -- author_lname별로 몇권의 책을 썼는지 작가 이름과 책권수를 가져오기 select concat(author_fname, ' ', author_lname) as full_name, count(title) as count from books group by author_lname ; -- author_lname과 author_fname 별로 그 작가의 이름과 출간년도의 최소값을 가져오기 -- (각 작가별로 최초 책 발간한 년도가 언제인가) select min(released_year), concat.. 2022. 12. 7.
[MySQL] 데이터 집계함수 count, sum, avg, max, min 📝MySQL Workbench 데이터 집계함수 갯수를 세는 함수 count() 값을 모두 더해주는 함수 sum() 평균을 구하는 함수 avg() 최대값을 구하는 함수 max() 최소값을 구하는 함수 min() 갯수를 세는 함수 count() -- books 테이블의 데이터 갯수는 ? select count(*) from books ; -- author_lname의 유니크한 데이터의 갯수는 ? select count(distinct author_lname) from books ; -- 책 제목에 the가 들어간 책은 몇권 ? select count(*) from books where title like '%the%' ; 값을 모두 더해주는 함수 sum() -- books 테이블의 모든 책 페이지수를 다 더.. 2022. 12. 7.
[MySQL] 데이터를 가공하는 키워드 distinct, order by, limit, like 📝MySQL Workbench 데이터 가공 데이터를 유니크하게 만드는(중복제거) distinct 데이터를 정렬하는 order by 데이터를 끊어서 가져오는 limit 와 offset 문자열 안에 원하는 문자가 들어있는지 검색하는 like 데이터를 유니크하게 만드는(중복제거) distinct -- author_lname은 카테고리컬 데이터다 유니크한 데이터를 확인하기 select distinct author_lname from books; -- 작가의 퍼스트네임과 라스트네임을 합친 full name으로 유니크하게 확인하기 select distinct concat(author_fname, ' ', author_lname) as 'full name' from books; 데이터를 정렬하는 order by ※ .. 2022. 12. 7.
[MySQL] 문자열 컬럼의 데이터를 가공하는 함수들 concat(), substring(), replace(), reverse(), char_length(), upper(), lower() 📝MySQL Workbench 문자열 컬럼의 데이터를 가공하는 함수들 문자열을 합치는 concat() + 여러 문자열 컬럼을 합칠때 그 사이를 첫번째 입력한 파라미터로 합치는 concat_ws() 문자열의 일부분만 가져오는 substring() 문자열의 내용을 바꾸는 replace() 문자열의 순서를 역순으로 바꿔주는 reverse() 문자열의 갯수(길이)를 구하는 char_length() 문자열의 대소문자 처리하는 upper(), lower() 문자열을 합치는 함수 concat() ※ 공백이나 다른 문자열을 포함시킬 수 있다 -- author_fname 과 author_lname 컬러의 값을 합해서 full_name 이라고 보여주기 select concat(author_fname, ' ', author.. 2022. 12. 6.
[MySQL] 테이블 데이터 CRUD(Create, Read, Update, Delete) 📝MySQL Workbench 테이블 데이터 CRUD Create > insert into Read > select Update > update Delete > delete Create > insert into (데이터 추가) → 데이터 추가 insert into cats (name, breed, age) values ('Ringo', 'Tabby', 4), ('Cindy', 'Maine Coon', 10), ('Dumbledore', 'Maine Coon', 11), ('Egg', 'Persian', 4), ('Misty', 'Tabby', 13), ('George Michael', 'Ragdoll', 9), ('Jackson', 'Sphynx', 7); Read > select (데이터 가져오기) →.. 2022. 12. 6.
[MySQL] id 컬럼 만들기 📝MySQL Workbench id 컬럼 만들기 id컬럼을 만들때 PK(Primary Key), NN(Not Null), UN(Unsigned), AI(Auto Increment) 체크해서 생성하면 id가 1(양수)부터 순서대로 증가해 자동으로 입력된다 ※ Primary Key는 Not Null과 Uniqe 조건의 특징을 모두 가진다 (Null값을 가질 수 없으며 중복된 값을 가져서도 안됨) 원래 있던 데이터를 삭제하고 새로 추가하면 id숫자는 1부터 시작하는게 아니라 원래 있던 id값 이후의 숫자로 시작한다 2022. 12. 6.
[MySQL] Null, Not Null 과 Default의 동작 방식 📝MySQL Workbench Null, Not Null 과 Default의 동작 방식 테이블을 만들때 NN(Not Nul)을 체크하면 null값이 허용되지 않는다 NN을 체크하고 디폴트값을 주지 않으면 INT는 0, VARCHAR는 공백으로 표시된다 디폴트값, Default 칸에 입력시 빈 데이터에 해당 데이터로 입력된다 2022. 12. 6.
[MySQL] Varchar의 글자수 제한 📝MySQL Workbench Varchar 글자수 제한 테이블을 생성할때 Varchar() 값을 50으로 줬다면 50을 초과하는 글자수는 저장되지않으므로 주의 (글자가 잘려서 저장된다) 2022. 12. 6.
[MySQL] 테이블에 데이터 넣기 📝MySQL Workbench 테이블 데이터 넣기 (하나의 데이터 넣기 / 여러 데이터 넣기) 테이블에 데이터를 저장하는 방법 insert into 뒤에 테이블명, 테이블 컬럼명을 입력하고(순서는 상관없음) values() 괄호 안에 저장할 데이터 컬럼명 입력 순서대로 입력 데이터를 여러개 입력하고 싶을때는 values() 뒤에 ()를 더 써주면 된다 특정 컬럼의 값만 입력하고 싶을때는 해당컬럼만 작성하면 나머지는 null값이 된다 -- No database selected 에러발생시 데이터베이스를 지정해달라는 뜻 use YHDB; -- 테이블에 데이터를 저장하는 방법 insert into cats (name, age) values ('야옹이', 5); insert into YHDB.cats (age, .. 2022. 12. 6.