MySQL(1)

김수민·2022년 11월 21일
0

NodeJs

목록 보기
1/3
post-thumbnail

DB

DB 보기

show databases;

DB 추가하기

create database DB명;

DB 제거

drop database DB명;

DB명 변경

rename database DB명

사용할 DB 지정

use DB명;


테이블

테이블 보기

show tables; 생성되어있는 모든 테이블의 명 확인

desc 테이블 명; 테이블 1개의 구조 확인

select * from 테이블명; 테이블 1개에 저장되어있는 column 및 값 확인

테이블 생성

사용할 DB를 지정한 채로 아래와 같이 입력한다.

create table 테이블명(
	 column이름 타입지정 제약조건,
     column이름 타입지정 제약조건,
     column이름 타입지정 제약조건
);

타입지정

  • int 정수형 데이터 타입, 숫자로 작성, 0은 맨앞에 올 수 없다.
  • text 문자형 데이터 타입, 문자로 작성
  • varchar(최대글자갯수) 가변길이의 문자형 데이터 타입, ""로 묶어서 작성
  • datetime 시간 [년-월-일 시:분:초.123] : 시스템의 타임존의 영향을 받지 않는다.
  • timestamp 시간 [년-월-일 시:분:초.123] : 시스템의 타임존이 바뀌면 변경된다.

제약조건

  • PK: primary key
    해당 column을 기본 키로 설정함 (한개에만 작성, 입력必, 타 제약조건과 중복 작성 가능)
  • AI: auto_increment 자동증가 값 지정
  • enum() ()안의 값만 입력가능
license enum('y','n')
  • unique 해당 필드는 서로 다른 값을 가져야 함
  • default 해당 필드의 기본값 설정
  • not null 입력必(null값을 허용하지 않음)
  • null null값을 허용함

레코드 값 지정

insert into 테이블명(컬럼이름,컬럼이름,...)
values(값1,값2,...);

컬럼 수정/삭제/추가

  • 수정 modify column
alter table 테이블명
modify column 컬럼명 타입지정;
  • 삭제 drop
alter table 테이블명
drop 컬럼명
  • 추가 add
alter table 테이블명
add 컬럼명 타입지정

테이블 제거

drop table 테이블명;

DB내의 데이터만 삭제

truncate(database DB명)
DB는 그대로 남고 table만 삭제된다.


데이터 조작 DML

DB에 입력된 레코드 수정, 삭제, 조회

레코드 삽입

insert into 테이블명(컬럼이름,컬럼이름,...)
values(값1,값2,...);

❗ 테이블명과 일치하는 컬럼이름이 있을 경우 입력되지 않을 수 있다.

레코드 수정

[where 필드이름= 데이터값]에 해당하는 경우에만 set에 입력한 값으로 변경한다.

update 테이블명
set 필드이름= 데이터값, 필드이름=데이터값...
where 필드이름= 데이터값;

레코드 삭제

[where 필드이름= 데이터값]에 해당하는 경우에만 레코드를 삭제한다.

delete from 테이블명
where 필드이름=데이터값;

레코드 조회

select * from 테이블 명
모든 컬럼의 레코드 조회

select 컬럼명 from 테이블 명
해당하는 컬럼의 레코드 조회

select 컬럼명,컬럼명 from 테이블 명
해당하는 컬럼들의 레코드 조회

select * from 테이블명
where 컬럼명 조건절

해당하는 조건절의 레코드 조회


조건

집계

  • 최대값 max(컬럼명)
  • 최소값 min(컬럼명)
  • 합계 sum(컬럼명)
  • 평균 avg(컬럼명)
  • 개수 count(컬럼명)

정렬

  • 구문 order by 컬럼명 asc 오름차순
  • 구문 order by 컬럼명 desc 내림차순

중복행 제거

  • 구문 select destinct 컬럼명 from 테이블명

제한된 행 출력

  • 구문 select * from 테이블명 limit 숫자;
  • 구문 select * from 테이블명 limit 시작숫자, 출력할 양;

비교

연산자
>크다
>=크거나 같다
<작다
<=작거나 같다
=같다
<>같지않다.

조건절

조건절
and그리고
or또는
not아니다
between A and BA와 B 사이의 값
like A%A로 시작하는 값
in(조건A,조건B)조건A 또는 B일때
is nullnull일 때
is not nullnull이 아닐 때

별칭 지정

  • as '별칭'

subQury

where절에서 qury안에 qury를 작성할 수 있다.

👉 김진수의 job과 job이 똑같은 사람의 perno, pname, job을 출력했다.

👉 가장 적은 sal을 가지는 사람의 pname, sal, datpno을 출력했다.

join

두개 이상의 테이블을 묶어서 하나의 결과 집합으로 나타냄

inner join

select 열 목록 from 테이블A
inner join 테이블B
on 조인될 조건
where 검색 조건

buyTable의 Id가 userTable의 Id와 일치하는 값을 join한 값들 중
userTable.Id가 BBK인 것을 반환한다.


buyTable의 Id가 userTable의 Id와 일치하는 값을 join한 값들 중
buyTalble.수량이 2인 것을 반환한다.

profile
sumin0gig

0개의 댓글