본문 바로가기

WEB

MySQL 개념, 명령어

728x90
반응형

 

SQL

데이터베이스를 다루는 표준 프로그래밍 언어

관계형 데이터베이스 관리시스템의 데이터를 관리하기 위해 설계

DDL
데이터 정의어, 테이블 생성(create), 삭제(drop), 스키마(구조), 수정(alter)
DML
데이터 조작어, 데이터 추가(insert), 조회(select), 삭제(delete), 수정(update)
DCL
데이터 제어어, 데이터 변경 최종 확인(commit), 데이터를 조작하는 권한을 사용자에게 제공(grant), 권한을 제거(revoke), 데이터 변경 취소(rollback)

<데이터형>

데이터형
설명
Bool
참, 거짓 (True, False)
int
일반 정수
Double
일반 부동소수점수
char
문자열 (0~255)
varchar
문자열 (0~65535)
text
최대 65,535 길이의 텍스트
data
연-월-일 모양의 날짜

<옵션>

옵션
설명
null, not null
널 값 허용 여부
auto increment
자동으로 1씩 증가
dafualt [값]
기본 값
primary key()
기본 키

<Database 명령어>

생성
create database DBNAME;
삭제
drop database DBNAME;
선택
use DBNAME;
확인
show databases;

<Table>

생성
create table TBLNAME ( COLUMN TYPE OPTION, ….)
ex) create table storage(seq int auto_increment primary key, name varchar(100) not null, count int);
삭제
drop table TBLNAMEL;
삭제
Truncate table TBLNAME;

<Column>

추가
alter table TBLNAME add column COLUMN TYPE OPTION;
수정
alter table TBLNAME change [컬럼명] [변경할컬럼명] TYPE OPTION;
삭제
alter table TBLNAME drop [컬럼명];

<Data>

추가
insert into TBLNAME(COLUMN1, COLUMN2, …) values (‘VALUE1’, ‘VALUE2’, …);
삭제
delete from TBLNAME where COLUMN1 = ‘VALUE1’
*) where 구문은 특정 컬럼에 조건을 주어 조건에 부합하는 데이터들만 지정할 때 사용
조회
select COLUMN1, COLUMN2, from TBLNAME where COLUMN=‘VALUE3’;
수정
update TBLNAME set COLUMN1 = ‘VALUE1’ where COLUMN=‘VALUE’;

Limit
  • 조회한 테이블의 행을 잘라서 출력해준다.
limit 시작행, 마지막행
select * from TBLNAME limit 0,10

<정렬, 그룹화>

Order by
  • 컬럼을 특정 기준으로 정렬해준다.
ASC(오름차순), DESC(내림차순)
select * from TBLNAME order by COLUMN asc;
Group by
  • 컬럼을 특정 기준으로 그룹핑해준다.
select count(*), age from TBLNAME group by age;
Union
  • 여러 조회 쿼리를 합쳐서 보여주는 방법, 위 아래로 연결됨
select column1, column2, from TBLNAME union select column1, column2 from TBLNAME
Alias
  • 테이블에 또 다른 이름을 지어주는 것
select s.column1 from (select * from TBLNAME1 union select * from TBLNAME2) s
select s.column1 from (select * from TBLNAME1 union select * from TBLNAME2) as s

 

 

Join
  • 여러 테이블에서 가져온 레코드를 조합해 연관 관계가 있는 결과 값을 조회할 때 사용
  • join의 종류: inner join, left join, right join, pull join(mysql 미지원)
Inner
join
  • ON 절과 함께 사용되며, ON의 조건을 만족하는 데이터만 가져온다.
  • MySQL에서는 JOIN, INNER JOIN, CROSS JOIN이 모두 같은 의미로 사용된다.
SELECT * FROM TBLNAME1 INNER JOIN TBLNAME2 ON 조건 WHERE 조건
Left join
  • 첫 번째 테이블을 기준으로 두 번째 테이블을 조합한다.
ON 의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져오고 두 번째 테이블의 필드 값은 모두 NULL로 표시된다.
  • SELECT * FROM TBLNAME1 LEFT JOIN TBLNAME2 ON 조건 WHERE 조건
Right
join
  • LEFT JOIN과 반대로 두 번째 테이블을 기준으로 첫 번째 테이블을 조합한다.
ON 의 조건을 만족하지 않는 경우에는 두 번째 테이블의 필드 값은 그대로 가져오고 첫 번째 테이블의 필드 값은 모두 NULL로 표시된다.
  • SELECT * FROM TBLNAME1 RIGHT JOIN TBLNAME2 ON 조건 WHERE 조건

 

<테이블 생성 예시>

CREATE TABLE member_table (
 seq        INT NOT NULL AUTO_INCREMENT,
 id     VARCHAR(10),
 pw    VARCHAR(20),
 phone   VARCHAR(50),
 mail    VARCHAR(50),  
  PRIMARY KEY(seq)
) ENGINE=MYISAM CHARSET=utf8;
 
728x90
반응형

'WEB' 카테고리의 다른 글

정규표현식  (0) 2022.12.29
HTTP METHOD  (0) 2022.12.29
Sever Side & Client Side  (0) 2022.12.29
Network, Web  (1) 2022.12.05
Ubuntu란? / 설치 방법  (0) 2022.12.04