전체 글119 MySQL null 을 채워주는 ifnull함수 null 데이터를 채워주는 ifnull함수가 있다. 아래의 두개의 테이블이 있다. 위의 두 테이블을 left join 으로 합쳐 students 테이블의 first_name, papers 테이블의 title, grade 컬럼을 보려 한다. (papers 테이블의 student_id 는 foreign key 로 students 테이블의 id컬럼을 참조한다) 1 2 3 4 select s.first_name, p.title, p.grade from students s left join papers p on s.id = p.student_id; cs 위의 코드로 조인을 하게 되면, 아래와 같이 null 데이터가 존재한다. 이러한 null 데이터는 ifnull 함수로 처리할 수 있다. 1 2 3 4 select.. 2021. 3. 17. MySQL 여러 테이블에서 foreign key 사용법 앞서 두개의 테이블을 연결해서 사용해봤다. 이번에는 두개가 아닌 여러개의 테이블에서의 foreign key 사용법에 대해 보겠다. tv 프로그램에 관한 리뷰 앱을 개발한다고 가정하면, 아래와 같은 테이블들과 , 그 테이블들의 연결이 필요하다. 리뷰를 쓴 사람들의 정보가 있고, tv프로그램에 관한 정보가 있고, 리뷰에 관한 정보를 담은 테이블을 만드는데, 여기서 리뷰정보 테이블은, 어떤 프로그램 리뷰를 썼는지 , 누가 썼는지 알아야 한다. 그렇기에 리뷰 테이블에서는 두개의 테이블과 연결이 되어야 한다. (리뷰쓴사람의 정보와, tv프로그램을 가져와 연결이 되도록 해야한다.) 이렇게 테이블을 만들어 보겠다. 1 2 3 4 5 6 7 create table reviewers (id int auto_increme.. 2021. 3. 17. MySQL 정규화, 테이블의 연결 join MySQL 에서는 테이블을 설계할때 모든 필요한 데이터를 한꺼번에 테이블로 설계하지 않고, 관련되어 있는 데이터끼리 중복되지 않게 따로 테이블을 여러개로 나눈다. 그리고 각 테이블의 유니크한 primary key를 가져와서 서로 연결하는 형식을 띈다. 이렇게 테이블을 설계하는 것을 정규화라고 한다.. 테이블을 만들어보겠다. 1 2 3 4 create table students( id int auto_increment primary key, first_name varchar(100) ); create table papers ( title varchar(100), grade int, student_id int, foreign key(student_id) references students(id) on del.. 2021. 3. 17. MySQL case end 조건식 MySQL에서는 조건을 만드는 식은 case 가 있다. case 다음에 원하는 조건을 입력 후 end로 닫으며 조건을 마무리 한다. 아래의 테이블에서 한번 사용해 보겠다. 위는 books 테이블이다. 위에서 조건하에 데이터를 찾아보자. 1 2 3 4 5 6 select title, released_year, case when released_year >= 2000 then 'Modern' else '20th Century' end as genre from books; Colored by Color Scripter cs 위의 코드를 입력하면 하나의 새로운 컬럼을 만들고 그 안에 조건에 맞춰 데이터가 추가 된다. 새로운 컬럼이 생기는 것이기때문에 case end 는 select 옆의 컬럼명 자리에 들어가게 .. 2021. 3. 17. MySQL에서의 in 과 not in 테이블을 보고 아래의 코드를 보자. select * from books where released_year = 2017 or released_year = 1985 or released_year = 2010 or released_year = 2014 or released_year = 2008 ; 위의 코드는 books 테이블에서 출판년도가 2017년 이거나, 1985년 이거나 2010년 이거나 2014년 이거나 2008년인 책의 데이터를 찾는다. 이렇게 or 가 많이 필요로 하는 코드에서는 in() 으로 대체할 수 있다. in() 의 사용법으로 위의 코드를 바꿔보면 select * from books where released_year in ( 2017, 1985, 2010, 2014, 2008 ) ; 로.. 2021. 3. 17. MySQL between , not between 우리는 테이블에서 우리가 원하는 데이터를 가져올 수 있다. 예를 들어 이런 테이블이 있다고 하자. 위의 테이블에서 내가 만약 출판년도가 2017년인 책의 정보를 가져오고 싶다면, python과 마찬가지로 부등호를 이용한다. select * from books where released_year = 2017; 위와 같은 코드를 적용하면, 출판년도가 2017년인 책의 데이터가 반환된다. 입력 가능한 부등호 종류는 = 2017 2017과 같다. > 2017 2017보다 크다. = 2017 2017보다 크거나 같다 (순서 중요) = 2004 and released_year = , =, 2021. 3. 17. 이전 1 ··· 11 12 13 14 15 16 17 ··· 20 다음 728x90