Structured Query Language의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어이다.
데이터베이스 프로그램의 종류는 다음과 같이 다양하다.

' 나 겹따옴표" 로 지정; 을 붙여서 끝냄_ 와 $ 사용 가능.실습을 하기 위해선 먼저 XAMPP에서 MySQL의 Start버튼을 누르고 Shell을 실행시키고 Shell창에 mysql -uroot -p를 입력하여 MySQL을 실행시킨다.


create database DB명;

연습용으로 sql_practice라는 DB를 하나 생성해보았다.
show databases;

전 후를 비교해보면 없던 sql_practice이름의 DB가 생성된 것을 확인할 수 있다.
use DB명;

create table 테이블명(
name char(20),
gender char(10),
age int,
birth date
);
이런식으로 괄호 안에 컬럼명과 데이터타입을 명시해주면 된다.
int auto_increment int뒤에 저 속성을 넣어주면 데이터 입력시 null이나 ''로 빈 값을 넣어도 자동으로 값을 생성한다.

show tables;

desc 테이블명;

insert into 테이블명 values(데이터1, 데이터2, ...);

데이터를 여러 행 넣을 경우
//1번 방법
insert into 테이블명 values();
insert into 테이블명 values();
insert into 테이블명 values();
//2번 방법
insert into 테이블명 values(), (), ();
1번 방법처럼 데이터 행마다 insert into 테이블명 values();를 사용하거나, 2번 방법처럼 콤마,를 이용해 괄호를 여러개 붙일 수도 있다.
update 테이블명 set 컬럼명 = 수정할 값 where 조건;
입력된 데이터를 수정할 때 사용한다.
수정할 값 뒤에 set 컬럼명1 = 수정할 값1, 컬럼명2 = 수정할 값2 콤마,로 이어붙여 여러개를 한번에 수정할수도 있다.
alter table 테이블명 add 컬럼명 자료형;
예) alter table member add address char(30);
alter table 테이블명 add 컬럼명 자료형 after 기존컬럼명;
//기존컬럼명 옆에 추가
alter table 테이블명 add 컬럼명 자료형 first;
//맨앞에 추가
위와 같이 after, first옵션을 이용하면 원하는 곳에 컬럼을 추가할 수 있다.
alter table 테이블명 change 기존컬럼이름 수정할이름 자료형;
change는 이름과 자료형 모두 변경할 수 있다.
alter table 테이블명 modify 컬럼 자료형;
modify는 이름은 그대로 유지한 채 자료형만 변경할 경우 사용한다.
alter table 테이블명 drop 컬럼명;
해당 컬럼을 삭제한다.
alter table 테이블명 rename 변경할이름;
테이블의 이름을 변경한다.
drop table 테이블명;
alter table 테이블명 drop 컬럼명; 명령어와 헷갈리지 않게 조심하자.
테이블의 컬럼을 하나 삭제하는것과 테이블을 통째로 삭제하는 아주 큰 차이이다.
DB를 사용중이라면 exit명령어를 이용하며 빠져나간 후
백업
mysqldump –uroot –p 데이터베이스명 테이블명 > 백업파일명.sql
복원
mysql –uroot -p 데이터베이스명 < 백업파일명.sql
스프레드시트나 txt데이터를 DB로 옮길 때 사용한다.
load data local infile '파일명.txt' into table 테이블명;
TAB이 아닌 다른 구분자로 구분되었을 경우, fields terminated by ‘구분자’를 추가해야한다.
load data local infile '파일명.txt' into table 테이블명 fields terminated by ',';
select 컬럼명 from 테이블명 where 조건;
기본적으로 select, from, where을 이용하여 검색할 수 있다.
예제를 몇개 풀면서 익히는게 빠르다.

예제1. member테이블의 모든 정보 출력
select * from member;
예제2. member테이블에서 이름이 park인사람의 이름과 생일 출력;
select name, birth from member where name = 'park';
예제3. member테이블에서 주소가 gwangju인 사람의 생일 출력
select birth from member where address = 'gwangju';
이렇게 select뒤에는 내가 출력하고자 하는 컬럼명, from뒤에는 내가 찾고자 하는 테이블명, where뒤에는 조건을 입력하면 된다.
select * from 테이블명 where name like “a%”;
a로 시작하는 모든 데이터를 검색한다.
select * from 테이블명 where name not like “%b”;
b로 끝나는 모든 데이터를 제외하고 검색한다.
select * from 테이블명 where name like “_c_”;
세글자인 데이터 중에서 가운데 글자가 c인 데이터를 검색한다.
%는 글자수 제한이 없지만 _는 개수만큼 글자수 제한이 있다.
select count(*) from 테이블명;
해당 테이블의 레코드 수를 출력한다.
명시한 컬럼명을 기준으로 오름차순 또는 내림차순 정렬한다.
//내림차순 정렬
select * from 테이블명 order by 컬럼명 desc;
//오름차순 정렬
select * from 테이블명 order by 컬럼명 asc;
order by는 기본값이 오름차순이라 asc는 쓰지 않아도 무방하다.
order by 컬럼명1 asc, 컬럼명2 desc;
이렇게 만약 정렬기준을 두개 적는다면 첫 번째 기준으로 정렬했을 때 중복이 생기면 두번재 기준으로 정렬해준다.
select * from 테이블명 where 조건 limit 숫자;