목록Database (36)
군침이 싹 도는 코딩
인덱스(Index)란? Index는 RDBMS ( 관계형 데이터베이스 관리 시스템 ) 에서 테이블에 대한 검색속도를 높여주는 자료 구조를 말하며 테이블내에 1개 또는 다수의 컬럼을 이용해 생성 가능합니다. 인덱스를 적용하지 않은 컬럼의 경우 검색을 할때 레코드를 처음부터 끝까지 다 읽으면서 검색 조건과 맞는지 비교해서 찾는데 이것을 'Full Table Scan' 이라고 한다 'Full Table Scan' 은 가장 느린 Scan 방법이며 전체 데이터를 읽는 과정에서 많은 자원을 소모하게 된다. 특정 테이블의 컬럼을 인덱싱 ( Indexing ) 하면 검색을 할 때 테이블 레코드를 전부 확인하는게 아닌 인덱싱 되어 있는 자료 구조를 통해서 검색되기 때문에 검색 속도가 빨라진다 흔히 우리가 보는 책의 '목..

select * from `favorite` # 물결 표시 (~) 쉬프트 누르지않고 누르는 (`) 이 기호를 사용해서 mysql 테이블을 쉽게 구분해줄수 있다 이것의 기능은 딱히 없는것같다 그냥 보기 편하게 구분해줄수 있다

-- 회원가입 insert into user (email,password,nickname,gender) values('abc@naver.com','1234abcd','홍길동', 1) ; # 인설트를 이용해 작성해준다 -- 리뷰 작성 insert into review (movie_id,user_id,content,rating) values (100,4,'재밌어요', 4); # 인설트를 이용해 작성해준다 -- 특정 영화의 리뷰 가져오기 (r.id 를 보내주는 이유는 수정을 위해서) select r.id, u.nickname, r.content, r.rating, r.created_at from review r join user u on u.id = r.user_id where movie_id = 10 ord..

# 우선 회원가입을 위해 필요한 테이블을 만들어준다. # 영화 정보에 관한 테이블도 만들어준다. # 리뷰에 관한 테이블을 만들어준다 # 즐겨찾기 기능을 위해 테이블을 만들어준다 # 검색어 저장을 위해 테이블을 만들어준다

# 3장의 화면 기획서를 보고 이것을 개발해보자 # 화면기획서를 보고 3개의 테이블을 만들어보았다 이제 화면기획서를 보고 조건에 따라서 SQL 문을 작성해보자 -- 1. 회원가입 SQL 작성 insert into user (email,password,nickname) values ('abc@naver.com','abcd1234','홍길동'); # insert를 이용해 회원가입하는 SQL을 작성한다 -- 2. 내 일정목록 나는 user_id 1번인 사람이다 라고 가정. select content,date,is_completed from schedule where user_id = 1 order by date desc limit 0,25; # 내가 1번이라고 가정하고 일정목록을 불러오는 SQL 을 작성하였다..

select s.first_name,ifnull(p.title,'MISSING') as title ,ifnull(p.grade,0) as grade from students s left join papers p on s.id = p.student_id ; # null 값을 대체하는 함수는 ifnull을 사용한다 파라미터로는 null이있는 컬럼을 써주고 무엇으로 바꿀지 써주면 된다. 해당 코드블럭에서는 title의 null 을 MISSING grade의 null 을 0으로 바꿔주었다

Foreign Keys 란 참조하는 키를 말한다 보통 다른 테이블 id 값을 가져와서 참조할때쓴다 예 ) 본문의 사진처럼 orders란 테이블에서 customer 테이블의 id 값을 참조할때 같은경우에 사용한다 # 먼저 Foreign Keys 로 지정할 컬럼을 UN(Unsigned)를 반드시 체크해준다 그 후 하단에 Foreign Keys 를 클릭한다 # Foreign Keys 로 지정할 컬럼과 Referenced Table 받아올 테이블을 지정하고 오른쪽으로 가서 Foreign Keys로 지정할 Column을 체크하고 Referenced Column 에 받아올 컬럼을 지정해주면 된다 # Foreign Keys 로 지정한 데이터를 삭제하고 싶으면 CASCADE를 설정해준다 그렇지 않으면 Foreign K..

select * from orders join customers on orders.customer_id = customers.id ; # 두 테이블을 하나로 합치기 위해 join 을 사용한다 먼저 두 테이블 사이에 같은 컬럼이 있어야한다 여기서는 orders 테이블의 customer_id (Foreign Keys) 와 customers 테이블의 id 가 같은것이므로 이것을 기준으로 하나로 합칠수있다. * Foreign Keys : 테이블을 만들때 컬럼의 값을 다른 테이블에서 가져오는것 select * from orders as o join customers as c on o.customer_id = c.id ; select * from orders o join customers c on o.custome..