6. 일대 다 관계 One-to-Many 1:N 일대다 관계란? 하나의 데이터가 여러의 데이터를 포함하는 관계 예) 장바구니 상품목록DB 예) 기사글과 댓글 DB 등.. DB에서 어떻게 관리되는걸까? 데이터의 대표값을 PK, PK를 가리키는 컬럼을 FK 라고한다. PK 와 FK의 연결을 통해서 데이터의 관계가 형성된다. 거꾸로도 해석할수있다. One-to-Many 를 거꾸로 해석하면 Many-to-One 대표값인 PK와 이를 가리키는 FK의 연결을 통해 형성된다. DB/PostgreSQL 2022.10.29
5. 문자열 병합/연결 함수 ||, CONCAT || 'HOME' || ' '||'STUDY' -> HOME STUDY 'VALUE :' || 56 -> VALUE : 56 'ABC' || Null || 43 -> 빈값(Null) 함수형식 : 인자1 || 인자2 || - 인자1, 인자2 등의 입력 인자들은 문자열이나 비문자열 모두 가능 반환값 데이터 형식 : text 힘수설명 : 문자열을 병함 또는 연결하며, 입력 인자 중 하나라도 빈값이 있으면 결과는 빈값이 된다 CONCAT CONCAT('HOME',' ','STUDY') -> HOME STUDY CONCAT ('Value :',56) -> Value : 56 CONCAT ('ABC',Null,34) -> ABC34 함수형식 : CONCAT(인자1, 인자2..) - 인자1, 인자2 등의 입력 인자들.. DB/PostgreSQL 2022.10.26
4. FETCH FIRST 절을 사용하여 TOP-N 쿼리를 처리할 수 있다. -- FETCH FIRST 절을 사용하는 문장의 예시 SELECT ... FROM 테이블 [WHERE ...] [ORDER BY ...] [OFFSET 건너뛸행수 {ROW | ROWS}] [FETCH {FIRST | NEXY} [출력할행수] {ROW | ROWS} ONLY]; 대괄호 [] 는 생략 가능함을 중괄호 {} 는 내부의 수직바 | 표시로 구분한 것들 중 하나를 선택해야 함을 나타낸다. 건너뛸행수는 0이상의 양수여야한다. 기본적으로 0이나 NULL은 OFFSET을 생략한 것과 같다. 건너뛸행수의 값이 결과 집합의 행 수보다 크면 공집합이 반환된다. 출력할행수는 1이상 이어야하며 출력할 행수를 지정하지 않으면 기본적으로 1로 처리한다. 또한 0을 지정면 공집합을 반환하며 빈값을 지정하면 FETCH .. DB/PostgreSQL 2022.10.26
3. 데이터 출력결과의 행 갯수를 제한 | LIMIT, OFFSET SELECT ... FROM 테이블 [WHERE ...] [OEDER BY ...] [LIMIT {출력행수 | ALL}] [OFFSET 건너뛸행수] 위 SELECT 문장의 5번 라인에 보이는 것처럼 LIMIT 다음에 출력할 행 수를 지정한다. 출력할 행 수는 일반적으로 양의 정수일 때 의미가 있으며, 출력할 행의 개수 대신 ALL이나 빈값(NULL)이 지정되면 LIMIT 절을 생략한 것과 동일하게 처리되어결과 집합의 모든 행이 출력된다. 출력할 행 수에 0을 지정하면 공집합(EMPTY SET) 이 반환된다. 위 SELECT 문장의 5번 라인에 제시된 OFFSET은 검색 결과 집합을 출력할때 건너뜀 행 수 를 지정한다. 즉, 검색결과 집합을 출력할 때 LIMIT 절을 사용하여 먼저 출력한 행이 있다면 그 .. DB/PostgreSQL 2022.10.26
2. 컬럼 값 중복제거 DISTINCT DISTINCT 문법 SELECT 시 DISTINCT를 사용하면 중복 값을 제외한 결과 값이 출력됩니다. 즉 같은 결과의 행이라면 중복을 제거할 수 있습니다. 사용 예시_COLUMN_1의 값이 중복 값 존재 시 중복 값을 제거 SELECT DISTINCT COLUMN_1 FROM TABLE_NAME; DB/PostgreSQL 2022.10.24
1. 대소문자 구별없이 LIKE문 사용하고 싶을때 ILIKE SQL에서 어떤 텍스트를 찾아낼 때 흔히 사용하는건 like와 ilike가 있다. some_text like 'pattern' some_text ilike 'pattern' Syntax는 위와 같습니다. some_text 속에 pattern과 일치하는 부분이 있다면 True를 반환하고, pattern과 일치하는 부분이 없다면 False를 반환합니다. some_text는 column 이름으로 대체 가능합니다. like와 ilike는 동일한 기능을 가지지만 차이점은 다음과 같습니다. like = 대소문자 구분(case sensitive) (e.g. a와 A는 다르다고 판단) ilike = 대소문자 구분 안함(case insensitive) (e.g. a와 A는 동일하다고 판단) 'apple' like 'ap.. DB/PostgreSQL 2022.10.24
메뉴 별 이번달 방문자 수 가져오는 쿼리 | 방법 4가지 (4번이 제일 좋음) 1. 첫번째 방법 select name, count(name) from member where gaipday between date_format(now(), '%Y-%m-01') and date_format(now(), '%Y-%m-%d') and name='메뉴1' group by name; select 메뉴컬럼명, count(메뉴컬럼명) from 테이블명 where 날짜컬럼명 between date_format(now(), '%Y-%m-01') and date_format(now(), '%Y-%m-%d') and 메뉴컬럼명='메뉴1' group by 메뉴컬럼명; 1. 두번째 방법 SELECT name, count(name) FROM member WHERE MONTH(gaipday) = MONTH(CU.. DB/mySQL 2022.08.21
답변형 게시판 만들때 DB 생성 create table reboard (num smallint auto_increment primary key, writer varchar(20), pass varchar(20), subject varchar(200), content varchar(2000), photo varchar(500), regroup smallint, restep smallint, relevel smallint, readcount smallint default 0, writeday datetime) 답변형 게시판 reboard num 오토 writer 작성자 pass 비번 subject 제목 content 내용 photo 사진 regroup 그룹번호 restep 그룹순서/ 출력할때 누구를 우선으로 둘까 relevel 들여쓰기 r.. DB/mySQL 2022.05.17
MySQL Delete join 하기 (2개 테이블에서 동시에 삭제하기)+(3~4개 테이블에서 동시에 삭제하기) delete member, cart from member inner join cart on member.mnum = cart.mnum where'51'; delete member, review from member inner join review on member.mnum = review.mnum where'51'; delete member, signup from member inner join signup on member.mnum = signup.mnum where'51'; member 와 mnum 를 공유하고 있는 cart, review, signup member에서 삭제시 조인 걸어서 cart, review, signup 도 삭제하게 만들려 했는데 delete 조인이 한 쿼리에 하나밖에 안된다. .. DB/mySQL 2022.05.02
상품, 장바구니 DB 연결 | 상품 삭제시 장바구니 내역도 함께 삭제 -상품 DB- create table shop2(shopnum smallint auto_increment primary key, category varchar(30), sangpum varchar(50), photo varchar(50), price int, ipgoday varchar(20)) -장바구니 DB- create table cart(idx smallint auto_increment primary key, shopnum int references shop2(shopnum) on delete cascade, num int references member(num) on delete cascade, cnt int, cartday date) https://icandoitprogramming.tisto.. DB/mySQL 2022.04.23