MySQL28 MySQL - SQL의 like 와 문자열 컬럼에 fulltext 설정을 하는 이유 select m.title, count(r.movie_id), ifnull(avg(r.rating), 0) from movie m left join review r on m.id = r.movie_id where m.title like '%high%' group by r.movie_id; -- like 와 같은 기능은 데이터가 많으면 많을수록 찾는 시간이 오래 걸리게 되는데 -- like로 검색할 컬럼에다가 테이블 설정 - 인덱스에서 해당 컬럼을 fulltext 로 바꿔주면 -- 속도가 빨라진다. 해당 쿼리문은 영화 제목을 검색하여, 영화 목록을 가져오는 쿼리문이다. 이 때 중간에 like를 그냥 사용하게 되면 데이터를 불러오는 시간이 오래 걸리게 된다. 그 이유는 문자열 컬럼을 일일이 like를 통해 .. 2022. 5. 18. MySQL - Error Code: 1062. Duplicate entry 가 나오는 이유 / 해결방법 select * from user; insert into user (email, password, name) values ('abc@naver.com', '1234qwer', '전호호' ); Error Code: 1062. Duplicate entry 가 나오는 이유에 대해 알아보자. 보통 이 경우는 컬럼 중에 하나가 unique 타입일 때 발생하게 된다. 해당 컬럼에 현재 입력된 데이터의 값이 이미 존재한다는 뜻이다. 보통의 경우 중복값을 피하기 위해 다른 값을 입력하겠지만 때에 따라 중복값을 무시하고 진행해야할 때가 있으니 그 방법에 대해 알아보자. 1. ignore INSERT IGNORE INTO user (`email`, `name`) VALUES ('abc@naver.com', '전호호'); .. 2022. 5. 18. MySQL - 테이블의 unique 를 설정하는 방법 데이터베이스의 데이터를 관리하다보면 다른 데이터들과 중복되면 안되는 데이터들이 있다. 특히 회원정보에서의 email 과 같은 정보는 다른 회원정보와 중복되선 절대 안되는 데이터이므로 중복값이 들어왔을 때 데이터베이스에서 정보를 입력하지 않도록 설정해주는 것이 좋다. 이를 unique라 한다. unique의 설정 방법은 다음과 같다. 테이블의 컬럼 설정을 끝마친 뒤 하단에 Indexes 로 들어간다. 1. 인덱스의 이름을 정한다. 알아보기 쉬운 이름이면 상관없다. 2. type 을 unique 로 바꾼다. 3. 이 설정을 적용할 컬럼을 체크한다. 그리고 Apply로 적용시키면 위와 같이 UQ(unique) 가 적용된 것을 확인할 수 있다. 2022. 5. 18. MySQL - Null인 데이터를 찾는 방법과 Null 이 아닌 데이터를 가져오는 방법 : is select title as unreviewed_series from series s left join reviews r on s.id = r.series_id where rating is NULL; where 뒤에 is 로 NULL 을 찾을 수 있다. select title as unreviewed_series from series s left join reviews r on s.id = r.series_id where rating is not NULL; where 뒤에 is not 으로 NULL이 아닌 데이터를 찾을 수 있다. 2022. 5. 17. MySQL - group by에서 where 안 먹힐 때 해결방법! : having 사용 -- 각 고객별로 주문 금액 평균이 300달러 이상인 데이터만 가져오시오. select c.first_name, c.last_name, avg(o.amount) from customers c left join orders o on c.id = o.customer_id group by c.id where avg(o.amount) > 300 ; -- group by 한 후의 결과를 가져올 때에는 where이 아닌 having 을 쓴다. 기존에 알던 대로 group by 에 where 을 사용하면 오류가 나게 된다. 이 때는 아래와 같이 group by 뒤에 having 을 사용하면 해결된다. -- 각 고객별로 주문 금액 평균이 300달러 이상인 데이터만 가져오시오. select c.first_name, c... 2022. 5. 17. MySQL - Join 과 Left Join하는 방법 다른 두 개의 테이블을 하나로 합쳐서 가져올 수 있는 함수 join과 left join에 대해 알아보자. -- 두 개 테이블을 하나로 합쳐서 가져오시오. join 사용 select * from customers join orders on customers.id = orders.customer_id; join 문장은 from 문장 뒤에 적고 from과 join 뒤에 적힌 테이블 두 개를 연결하게 된다. on 은 테이블 연결할 때 연결고리, 기준점을 적어준다. select * from customers c join orders o on c.id = o.customer_id; 또 다른 방법 : 테이블 이름을 줄여서 사용하는 방법 테이블 이름 옆에 한 칸 띄고 사용할 줄임말을 적는다. as 는 적어도 되고 안 .. 2022. 5. 17. 이전 1 2 3 4 5 다음