2022. 2. 16.ㆍ공부/SQL, R
CREATE TABLE userTbl (
user_id varchar(8) primary key,
user_name varchar(10) not null,
birth_year int(4) not null,
addr varchar(4) not null,
phone_number varchar(11),
height int(3),
reg_date date
);
CREATE TABLE buyTbl (
order_number INT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(8) NOT NULL,
prod_name VARCHAR(6) NOT NULL,
group_name VARCHAR(4),
price INT(7) NOT NULL,
amount INT(3) NOT NULL
FOREIGN KEY(user_id) REFERENCES userTbl(user_id)
);
가상의 쇼핑몰을 만든다고 가정해보자. 회원 정보는 userTbl, 회원의 구매 내역은 buyTbl에 저장해준다. 위의 코드를 해석해보면, userTbl과 buyTbl이라는 두 개의 테이블을 만들었으며 buyTbl에서 데이터 적재시마다 order_number가 1씩 증가하고, 적재 시 user_id가 userTbl의 user_id를 참조하여 일치하는지 확인하도록 하는 구조라고 이야기할 수 있다. 이렇게 테이블을 만들 때 사용할 수 있는 AUTO_INCREMENT와 FOREIGN KEY를 기억하자!
/* AUTO_INCREMENT는 기본적으로 1씩 증가하는데,
이 증가분을 수정하고 싶다면 서버측 변수인
@@auto_increment_incremet를 바꿔야 한다. */
-- testTbl3의 AUTO_INCREMENT 값을 0으로 수정
ALTER TABLE testTbl3 AUTO_INCREMENT = 0;
-- AUTO_INCREMENT의 증가분을 1이 아닌 3으로 세팅
SET @@auto_increment_increment = 3;
1. 테이블 만들 때 AUTO_INCREMENT라는 명령어를 통해 컬럼에 자동으로 1씩 증가하는 숫자를 배정시킬 수 있다. 해당 명령어는 int 자료형에만 붙일 수 있다. (+ 서버측 변수 @@auto_increment_increment의 값을 SET하여 자동으로 증가하는 값에 변화를 줄 수 있다.)
2. 테이블을 만들 때 FOREIGN KEY라는 명령어를 통해 컬럼에 제약 조건을 걸어줄 수 있다. 여기서 FOREIGN KEY(외래키)는 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키를 말한다.
만든 테이블에서 임의의 범위를 가진 데이터를 조회할 때는 어김없이 WHERE을 쓴다. WHERE 구문에서는 관계연산자를 이용한 대소비교가 가능하며 논리 연산자 AND, OR를 이용하여 조건 여러개를 연결할 수 있다. 또, WHERE 구문 안에 LIKE 연산자를 써서 범위 조회를 하기도 한다. LIKE 연산자는 %(와일드 카드), _(와일드 카드 문자)를 이용해 매칭되는 문자열/문자를 찾는다.
* BETWEEN ~ AND 키워드로 숫자 데이터 범위 조회
해당 컬럼이 숫자1과 숫자2에 해당하는 범위의 데이터를 조회하는데, 이때 조회되는 데이터의 범위는 쿼리문의 숫자1과 숫자2를 포함한다.
SELECT * FROM 테이블명 WHERE 컬럼명 BETWEEN 숫자1 AND 숫자2;
* IN 키워드로 특정 컬럼에 괄호가 담긴 데이터가 포함되는 경우 전부 조회
해당 컬럼이 서울, 화성, 경기에 해당하는 범위의 데이터를 조회한다.
SELECT * FROM 테이블명 WHERE 컬럼명 IN ('서울', '화성', '경기');
* LIKE 연산자로 채씨를 찾는 케이스 (% 이용)
해당 컬럼이 '채'로 시작하는 모든 데이터를 조회한다. '채' 한 글자도 포함. %를 쓰는 것은 문자열만 가능한듯한데, 테이블 만들 때 번호들어가는 컬럼같은 것을 그냥 문자열 데이터로 선언하고 그 쪽 컬럼에 데이터 넣어서 INSERT할 때 숫자를 소괄호에 담아서 넣어주면 숫자도 %로 찾을 수 있다.
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '채%';
* LIKE 연산자로 두 글자인 경우만 찾는 케이스 (_ 이용)
해당 컬럼이 두글자인 모든 데이터를 조회한다. 응용해서 '__H' 이렇게 써보면 해당 컬럼이 3글자이면서 H로 끝나는 케이스를 찾아달라는 말이 된다.
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '__';
'공부 > SQL, R' 카테고리의 다른 글
20220214_SQL 기초 4 (GROUP BY와 집계함수) (0) | 2022.02.17 |
---|---|
20220214_SQL 기초 4 (서브 쿼리와 alias) (0) | 2022.02.17 |
[Mysql] Mac의 CMD에서 Mysql 이용하기 (0) | 2022.02.16 |
20220210_SQL 기초 2 ( 특정 데이터 조회, 데이터 수정, 데이터 삭제) (0) | 2022.02.11 |
20220209_SQL 기초 1 (테이블 만들기, 데이터 적재, 데이터 조회) (0) | 2022.02.10 |