본문 바로가기

MYSQL30

MYSQL - null 확인법 is null( ), null 처리법 ifnull( ) insert into books(title, author_fname, author_lname, released_year, pages)values('좋은책','길동','홍',2024,240);를 입력하여   null 데이터가 생겼다고 하자null 데이터가 있는 행을 찾으려면? select *from bookswhere stock_quantity = null;기존에 배운대로라면 이렇게 입력을 할 것이고이렇게 나오게 된다보통 잘 못 썼다면 에러가 날텐데 이 경우에는 버그로 취급한다이때 =나 like가 아닌 is 라고 입력해줘야 정상적으로 출력이 된다select *from bookswhere stock_quantity is null;  그렇다면 null이 아닌 데이터를 가져오려면? select *from boo.. 2024. 5. 14.
MYSQL - ㅁㅁ별로 묶어서 Group by, having 작성법, 서브 쿼리 Sub Query author_lname 별로 몇권의 책을 썼는지, author_lname과 책의 권수를 보여달라 라는 질문이 있을때 group by를 사용 하면 되겠다 우선 select 부분에서 author_lname과 책의 권수를 카운트 해야하겠고 마지막에 그룹바이를 해준다select author_lname , count(author_lname)as 'Book_cnt' from books group by author_lname;이렇게 하면 lname이 중복되는 결과값들이 뭉쳐서 카운트 해주게 된다 having 사용법 년도별 stock_quantity 의 평균값이 70보다 큰 책들의 년도와 평균값을 보여달라 라는 질문이 왔을때select released_year , avg(stock_quantity) avg from b.. 2024. 5. 14.
MYSQL - 숫자를 세는 count( ),합산sum( ), 평균avg( ), 최대/최소값 max( ),min( ) 이런 데이터가 있다 사실 이 데이터는 몇개 되지않아 눈으로 3초 안에 몇개의 데이터가 있는지 확인이 가능하지만수천개라고 할때몇개인지 일일히 셀 수 없다 그럴때는 count()  보통 전체의 데이터를 확인할때select *from books;이렇게 확인하는데 이 books 테이블안의 데이터가 몇개인지 확인해야할때는*을 count( )로 감싸주면 되겠다select count(*)from books;  그러면 이렇게 몇개의 행을 가지고 있는지 알려준다 그렇다면 만약책 제목에 the가 들어간 책의 갯수 같은것을 알려고 할때에는?select count(title)from bookswhere title like '%the%';라고 카운트로 감싸주기만 하면 해당하는 컬럼의 숫자를 카운트 할 수 있다물론 저것만 보면 .. 2024. 5. 14.
MYSQL - 원하는 조건을 '찾는' like, 중첩 and,둘 중 하나True or, 제외 not 책 제목에 the가 들어있는 데이터를 가져와보자 책 제목이 the인거 가져오시오 와는 다르다select * from books where title like '%the%';일단 이렇게 작성되며 %%은 이렇게 해석된다 앞의 %는 앞에 무엇이 와도 상관없다 뒤의 %는 뒤에 무엇이 와도 상관없다 즉, 앞에 무엇이 있든 뒤에 무엇이 있든 the가 들어있는 데이터를 가져와라 라는 의미 만약 the로 시작하는 데이터를 가져오고 싶다 라면? select * from books where title like 'the%';앞에 무엇이 없어야 하니까 앞의 %를 빼주면 되겠다 2자리 숫자의 데이터만 가져와라그럼 이번엔 이런 자료에서 stock_quantity의 데이터가 3자리 숫자도 2자리 숫자도 있다 이럴때 2자리 숫자의.. 2024. 5. 14.
MYSQL - 데이터를 끊어 보여주는 Paging- limit, offset 데이터가 1000개 3000개 있다고 하면 한번에 그 모든것을 보여주게 되면 네트워크 문제, 데이터 문제, 지연시간문제등 보통 25개, 30개씩 끊어서 보여주게 된다 그것을 페이징 paging 이라고 하며 이 때 사용하는 키워드가 바로 limit이다 만약 이런 화면에서 5개씩 끊어 보고 싶다 하면 select * from books limit 0, 5;0(처음)부터 5개 보여줘 라는 뜻이고다음 5개씩 보여줘 라고 명령이 온다면 select * from books limit 5, 5; select * from books limit 10, 5; 이렇게 표현이 되고 이때 리미트 첫번째 숫자가 offset 이라고 불리며 시작 숫자를 의미하고 보통 변수 처리가 된다 그리고 두번째 숫자는 몇개씩 보여주는 숫자이다 .. 2024. 5. 14.
MYSQL - 유니크 distinct, 정렬 order by, 내림차순/오름차순 desc,asc 유니크 키워드 distinct함수와는 다르다 함수 사용법은 ( ) 가 있어 파라미터를 적지만 괄호가 없다 사용법은 아래와 같다select author_lname from books;라고했을때이렇게 중복된 데이터들이 나오게 되는데 중복된 데이터들을 유니크하게 보고 싶을때 select distinct author_lname from books;이렇게 앞에 적어준다그러면 이렇게 중복데이터들은 하나씩만 보여준다 정렬 키워드 order by 이런 모습으로 있다고 할 때 author_lname로 정렬을 하고자 한다면 select * from books order by author_lname; 이렇게 정렬을 해주게 된다 그렇다면 응용으로 full_name으로 정렬해보자 select * from books order .. 2024. 5. 14.