SQL기초

bitna's study note·2022년 4월 6일
0

SQL

목록 보기
4/12

4월 6일 내용정리

1."문자" 로 쌍따움표로 표기 숫자는 쌍따움표없이 숫자만 씀

2.pk는 유일하게 하나만 있어야 한다.

3.fk(foreign key)는 외래키 다른 테이블의 속성을 참조하여 사용(외부에서 불러와서 사용함), 중복허용

4.pk가 있는 테이블과 fk가 있는 테이블중에 fk가 있는 테이블을 먼저 삭제해줘야 참조연결 끊어지고 pk가 있는 테이블 삭제가 가능해짐.

5.pk와 fk는 타입과 크기는 꼭 같아야 한다!!

6.int(4byte)는 사이즈별로 smallint(2byte) 와 int(4byte), bigint(8byte)로 구분

7.char는 char 와varchar로 구분한다.

8.열이름 ->탭위에 있는 홑따움표 표시(베틱)를 표시한다.

9.foreign key(내 테이블의 외래키로 설정할 속성) references 참조할 테이블명(참조할 속성)

10.조회(select) select 열이름,열이름... from 테이블명 where 조건;

11.컴터처리 순서 from 테이블명-> where 조건 -> 열이름 순서로 처리

12.속성(열이름) as "별명" 또는 속성(열이름) (한칸띄기) 별명

13.관계연산자( >,>=,<,<=,=, is null(널이다.) is not null(널값이 아님), or, and 가 있음.

14.열이름 between 값1 and 값2 이거는 값1 <=열이름 and 열이름 <= 값2 열이름 같은뜻

15.속성="값1" or 속성="값2" or 속성="값3" 은 지정문자에 해당되는 데이터를 조회 할수 있음.

16.열이름 in (값1,값2,값3...) 이렇게 써줄수도 있음

17.like '김%' : 첫글자가 반드시 김, 나머지 뒷글자는 어떤거든 가능
like '%점' : 마지막글자는 반드시 점, 나머지 앞글자는 어떤거든 가능
like '%화%' 글자중에'화'가 포함되면 됨 예)화장실 백화점... 해당됨

drop database if exists market_db; -- 만약에 market_db 가 존재하면 지워죠!
create database market_db; -- market_db 를 만들어죠
use  market_db; -- 방안으로 들어가는 과정

drop table if exists memTBL;
create table memTBL(
mem_id char(8) not null primary key,
mem_name varchar(10) not null,
mem_number smallint not null,
addr varchar(100) not null,
phone1 char(3) null,
phone2 char(8) null,
height smallint,
debut_date date
);

select * from memTBL;

INSERT INTO memTBL VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19');
INSERT INTO memTBL VALUES('BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016.08.08');
INSERT INTO memTBL VALUES('WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015.01.15');
INSERT INTO memTBL VALUES('OMY', '오마이걸', 7, '서울', NULL, NULL, 160, '2015.04.21');
INSERT INTO memTBL VALUES('GRL', '소녀시대', 8, '서울', '02', '44444444', 168, '2007.08.02');
INSERT INTO memTBL VALUES('ITZ', '잇지', 5, '경남', NULL, NULL, 167, '2019.02.12');
INSERT INTO memTBL VALUES('RED', '레드벨벳', 4, '경북', '054', '55555555', 161, '2014.08.01');
INSERT INTO memTBL VALUES('APN', '에이핑크', 6, '경기', '031', '77777777', 164, '2011.02.10');
INSERT INTO memTBL VALUES('SPC', '우주소녀', 13, '서울', '02', '88888888', 162, '2016.02.25');
INSERT INTO memTBL VALUES('MMU', '마마무', 4, '전남', '061', '99999999', 16.5, '2014.06.19');
commit;

drop table if exists buyTBL;
create table buyTBL(
 num int auto_increment not null primary key,
 mem_id char(8) not null, 
 prod_namw char(6) not null, 
 group_name char(4) null,
 price int not null,
 amount smallint not null,
 foreign key(mem_id) references memTBL(mem_id)
 

select * from buyTBL;
insert into buyTBL values(NULL, 'BLK', '지갑', NULL, 30, 2);
INSERT INTO buyTBL VALUES(NULL, 'BLK', '맥북프로', '디지털', 1000, 1);
INSERT INTO buyTBL VALUES(NULL, 'APN', '아이폰', '디지털', 200, 1);
INSERT INTO buyTBL VALUES(NULL, 'MMU', '아이폰', '디지털', 200, 5);
INSERT INTO buyTBL VALUES(NULL, 'BLK', '청바지', '패션', 50, 3);
INSERT INTO buyTBL VALUES(NULL, 'MMU', '에어팟', '디지털', 80, 10);
INSERT INTO buyTBL VALUES(NULL, 'GRL', '혼공SQL', '서적', 15, 5);
INSERT INTO buyTBL VALUES(NULL, 'APN', '혼공SQL', '서적', 15, 2);
INSERT INTO buyTBL VALUES(NULL, 'APN', '청바지', '패션', 50, 1);
INSERT INTO buyTBL VALUES(NULL, 'MMU', '지갑', NULL, 30, 1);
INSERT INTO buyTBL VALUES(NULL, 'APN', '혼공SQL', '서적', 15, 1);
INSERT INTO buyTBL VALUES(NULL, 'MMU', '지갑', NULL, 30, 4);
commit; -- rollback으로 되돌리기가 안됨

select mem_name, addr,height from memTBL; -- 원하는 해당속성 데이터만 조회가능

select mem_name as "그룹명", addr as "주소", mem_number as "멤버수" from memTBL where mem_number<=6;

select mem_name, addr, mem_number from memTBL where mem_number<=6;

select prod_namw "상품명", price "가격" from buyTBL where 50< price and price<130 ;
select mem_id "멤버id", price "가격" , mount "주문수량" from buyTBL where prod_namw="아이폰" or prod_namw="청바지" or prod_namw="지갑";
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보