본문 바로가기

프로그래밍 언어/MySQL

[MySQL] 중복값 입력 방지: Unique 설정 중복값 입력 방지: Unique 설정 - 테이블 설정시 - 일부 컬럼은 중복되면 안된다. ex) user_id, photo_id 컬럼 - 중복 방지: 유니크 해야한다. - 중복적으로 데이터 적용이 안되게끔, 데이터베이스가 막아줘야한다. 기본적으로 하단의 ‘Index’에서 처리한다. - Index에서 새로운 Index Name 설정: 테이블 이름의 첫 글자 + 설정하고자 하는 컬럼명으로 작성 (보통은 이렇게 작성) ex) like 테이블의 user_id, photo_id 컬럼이 중복되면 안된다. -> l_user_id_photo_id - Type에 Unique 설정 - 우측에 적용하려는 컬럼 체크 아래는 실행 이미지 - foreign key를 먼저 만들면, foreign key개수만큼 index가 생성되어.. 더보기
[MySQL] 데이터 입력 실시간 시간 기록: now() 데이터 입력 실시간 시간 기록: now() - 테이블 설정시 - 컬럼 데이터 타입은 Timestamp로 설정 - default/ expression에 now() 혹은 current_timestamp로 입력 - Apply 및 Finish로 적용시에, default/ expression에는 자동으로 대문자로 CURRENT_TIMESTAMP 표시된다. 더보기
RDBMS와 NoSQL 간단 설명 1 1. 관계형 데이터 베이스: RDBMS - Relational DataBase Management System - 관계형 데이터 베이스 시스템 - 트랜잭션(Transaction) 처리가 가능함 - MySQL, Oracle, MS-SQL -> 데이터를 저장할 때 테이블을 다 쪼개서 저장하는 방식 -> 공간의 낭비를 가장 적게 활용하는 방식 -> 하드디스크가 지금처럼 발달 되지 않았던 시절, DB는 디스크(SSD)에 저장되는 데, 디스크의 용량은 한계가 있음 -> 데이터를 최소화 했어야했다. 그래야 불러오는 속도도 빠르다. -> RDBMS 원래 개발할 때 분산되어있는 데이터를 처리하지 않게 개발한다. 그러므로, 나눠서 처리하는 게 되게 어렵다. -> 분산 처리를 clustering(분집)이라고 한다. 분산처.. 더보기
[MySQL] 多대多관계, null인 데이터를 가져오는 법 MANY : MANY 다 대 다 관계 해당 데이터에 foreign key를 연결해준다. 테이블 reviewer, series, reviews 상기 이미지처럼 생성 및 foreign key 적용 하기 데이터 입력 use yh_db; INSERT INTO series (title, released_year, genre) VALUES ('Archer', 2009, 'Animation'), ('Arrested Development', 2003, 'Comedy'), ("Bob's Burgers", 2011, 'Animation'), ('Bojack Horseman', 2014, 'Animation'), ("Breaking Bad", 2008, 'Drama'), ('Curb Your Enthusiasm', 2000.. 더보기
[MySQL] 그룹/묶음 뒤에 조건: group by..having, 실습문제 Group by뒤의 조건: having -- group by의 결과에 대해서 조건을 걸 때는 having을 사용한다. 그 뒤에 and 및 or도 사용 가능하다. group by 컬럼명 having 묶음 후의 조건 -- 각 고객별로 주문 금액 평균이 300 달러 이상인 데이터만 가져오시오. select c.first_name, c.last_name, avg(o.amount) as AVG from customers c join orders o on c.id = o.customer_id group by c.id having avg(o.amount) >= 300; -- 실습 students, papers 테이블 생성 후, INSERT INTO students (first_name) VALUES ('Caleb').. 더보기
[MySQL] 관계형 데이터베이스 합치기: join, left join MySQL에서 많은 데이터 insert 时 - 번개모양 클릭 - 처음부터 끝까지 자동으로 실행해준다. 데이터 입력: customers 입력값: https://yeo0616.tistory.com/113 orders 입력값: https://yeo0616.tistory.com/114 use yh_db; select * from orders; select * from customers; -- 100 명 고객 select count(*) from customers; -- 700개 주문 select count(*) from orders; ㄴ 입력한 데이터 값 확인 관계형 데이터베이스 합치기: join -- join 뒤에 갖다 붙일 테이블 명을 쓴다. 하나 더 키워드 on을 쓴다. ㄴ 두개가 같은 컬럼. 연결시키는 .. 더보기
[MySQL] Foreign key 생성 관계형 종류 1. 1대 1 2. 1대 多 3. 多 대 多 - 1대 多 - 어떤 데이터들은 묶음으로 묶어줄 수있다. - 다른 데이터의 정보를 id를 맞추어 묶음을 불러오는 형식으로 진행한다. -> 참고한다고 한다. -> reference -> foreign key 설정 - 테이블 생성 화면 중, 기본 설정 후에, 하단에 Foreign Key 페이지 클릭. - 해당 페이지 진입 후에, 이름을 입력해준다. Foreign Key Name: o_customer_id -> order 테이블의 customer_id이다. 라는 뜻 refenrenced table: 어떤 테이블을 참고할건데? - refenrenced table에 참고할 테이블 선택 후에, 우측, 연결할 컬럼을 정해준다. 해당 컬럼은 데이터 타입이 INT.. 더보기
[MySQL] if() 함수, ifnull() 함수 , 실습 풀이 use yh_db; select * from yh_db.books; use yh_db; select * from books; if() 함수 -- pages가 300보다 크면 long, 그렇지 않으면 short -- if( 조건, 조건이 맞으면~하겠다,조건이 맞지 않으면 ~하겠다. ) ㄴ 첫번째 파라미터: 컬럼이름 및 조건 , ㄴ 두번째 파라미터 : ~하겠다 ㄴ 세번째 파라미터: 그렇지 않으면~하겠다. select *, if( pages >=300, 'long','short') as 'long/short' from books; select * from people; insert into people (first_name) values ('Mike'); ifnull() 함수 -- null이라는 값이 있으면,.. 더보기