본문 바로가기

DB/문법31

MySQL is 키워드 SQL에서 NULL은 "알 수 없는 값" 또는 "값이 없음"을 의미합니다.그럼 Null이라는 데이터값을 찾으려면 어떤 키워드를 써야할까?-- 재고가 null인 데이터를 가져오세요.SELECT *FROM books bWHERE stock_quantity = null ????? 여태 문자, 숫자를 = 로 불러왔으니 null도 = 일까? No!SELECT *FROM books bWHERE stock_quantity is null; 이전글에서도 like는 문장이니까 not을 사용했던거처럼null은 문장이기때문에 is, is not을 사용합니다.  그렇다면 True, False같은 논리값은?Boolean을 지원하는 데이터베이스 시스템에서는 SELECT * FROM Orders WHERE IsShipped IS T.. 2024. 11. 29.
MySQL Not 키워드 -- 출간년도가 2017년이 아닌 데이터를 가져오세요. 부등호 사용 SELECT *FROM books bWHERE released_year !=2017; 연산자 사용SELECT *FROM books bWHERE released_year 2017; 완전일치하는 데이터는 와 !=로 그 데이터를 제외하고 불러올 수 있습니다.SELECT *FROM books bWHERE title ??? '%w%' 그럼 like로 불러왔던 '%w%' 같은 경우엔 제외데이터를 어떻게 불러오지? like? like =!?? Not 키워드-- 책 제목에 w가 포함되지 않은 책을 가져오세요SELECT *FROM books bWHERE title not like '%w%';Not like로 불러오면 '%w%' 를 제외한 데이터를 불러.. 2024. 11. 29.
MySQL Sub Query -- 페이지수가 가장 긴 책의 제목, 작가이름, 페이지 수를 보여주세요.SELECT title, concat(author_lname,' ',author_fname)as fullname, pagesFROM books border by pages desclimit 1;order by 후 limit 1??그런데... 페이지수가 같은 책이 여러권이면? ★pages의 max값을 구해서 그 데이터를 불러오기1)  pages의 max값을 구한 다음에SELECT max(pages)from books b ;634페이지가 제일 긴걸 확인해서 2) pages컬럼 맥스값인 634 데이터를 가져오세요.SELECT *from books bwhere pages=634;위 두 쿼리를 한번에 쓸 수 있는 서브쿼리! SELECT tit.. 2024. 11. 29.
MySQL Max()와 Min() 함수 -- 최대값 구하는 함수 max()SELECT title, max(pages)FROM books b ; -- 최소값 구하는 함수 min()SELECT title, min(pages)from books b ; -- 페이지 컬럼의 최대값, 최소값, 토탈값, 평균값을 보여주세요.SELECT max(pages), min(pages), sum(pages), avg(pages)FROM books b ; 2024. 11. 29.
MySQL Substring_index() 함수 문자열을 특정 구분자(delimiter)를 기준으로 나누고, 지정된 횟수만큼의 구분자 이전 또는 이후의 부분 문자열을 반환하는 함수 -Substringindex()email주소의 도메인은 제외하고 아이디만  얻고싶다!ex) marurun@naver.com > marurunSELECT SUBSTRING_INDEX(email,'@',1)FROM users u ; email  - 컬럼'@'  - 문자열을 나누기위한 구분자1  - 양수일 경우 구분자 기준 왼쪽부터 반환  -- 이메일의 도메인만 조회하기 SELECT SUBSTRING_INDEX(email,'@',-1)FROM users u ; 음수일경우 구분자 기준 오른쪽 반환-- ㅁ국가가 'usa'인 사용자의 이메일 도메인을 'us.com'으로 변경하세요. U.. 2024. 11. 28.
MySQL Avg() 함수 컬럼 데이터의 평균을 구해주는 함수 Avg() SELECT avg(pages)FROM books; -- 작가별로 자신이 쓴 책의 평균 페이지수는?SELECT author_lname, avg(pages)as page_avgFROM booksgroup by author_lnameorder by page_avg desc; 2024. 11. 28.
MySQL Sum() 함수 테이블의 특정 숫자 열에 있는 값들의 합을 계산하는 데 사용되는 집계 함수 Sum() -- 모든 pages의 합계는?SELECT sum(pages)FROM books; -- 각 작가별로 자신이 쓴 책의 페이지수를 더하면?SELECT concat(author_fname,' ',author_lname)as full_name,sum(pages)as sumpagesFROM booksgroup by concat(author_fname,' ',author_lname); concat과 group by, sum을 적절히 활용하면 가장 많은 글을 쓰신 작가님 확인도 가능하다~ 2024. 11. 28.
MySQL Count() 함수 -- 데이터의 갯수를 세는 함수 : count()-- 책은 총 몇권인가요SELECT count(*)FROM books;-- (author_lname) 작가는 총 몇명인가요SELECT count(DISTINCT author_lname)FROM books;-- 책 제목에 the가 들어간 책은 몇권인가요SELECT count(*)FROM bookswhere title like '%the%';와일드카드 문자 알아보기 그러면... 작가별로 몇권의 책을 작성했나요는?~별로? count로 어떻게쓰지?group by 키워드 MySQL group by 키워드-- ~별로 묶에서 처리하는 경우 : 집계하기 group by 키워드-- author_lname 별로 몇권의 책을 썼는지,  작가의 author_lname과 책의 개.. 2024. 11. 28.
MySQL Like 키워드 -- 문자열 안에 원하는 문자열이 들어있는지 검색하는 키워드 like와일드문자와 함께 활용!%0개 이상의 임의의 문자를 나타냅니다a%: 'a'로 시작하는 모든 문자열%a: 'a'로 끝나는 모든 문자열%a%: 'a'를 포함하는 모든 문자열_ (언더스코어)정확히 하나의 임의의 문자를 나타냅니다c_t: 'cat', 'cot', 'cut' 등과 일치[] (대괄호)대괄호 안의 문자 중 하나와 일치[abc]: 'a', 'b', 또는 'c' 중 하나와 일치[a-z]: 소문자 알파벳 중 하나와 일치[^] (대괄호와 캐럿)대괄호 안의 문자를 제외한 모든 문자와 일치합니다[^0-9]: 숫자가 아닌 모든 문자와 일치 -- 책제목에 the가 들어있는 책 데이터를 가져오세요.SELECT *FROM bookswhere title.. 2024. 11. 28.