SQL이란 DBMS(DataBase Management System)에 접근하기 위한 구조화된 질의어, 프로그래밍 언어이다.
데이터베이스에서 자료를 좀 더 쉽게 검색하고, 편집하기 위해 고안되었고 백엔드 및 데이터를 다루는 분야에서 가장 기초가 되는 언어로 자리잡았다.
MySQL 기초문법
SQL은 정의,조작,제어,질의 등으로 구분된 영역이 존재한다.
# 접근언어
- 접속 명령어 :
mysql -u root -p Enter password:********
- use 데이터베이스명 : 해당 데이터베이스을 사용하도록 명령한다.show (databases, tables) : 데이터베이스 목록 혹은 테이블 목록을 나타낸다.
- desc( = describe, explain) 테이블명 : 해당 테이블의 구조를 나타낸다.
# DDL(데이터 정의어)
- create (database) A : A이름을 가진 데이터베이스를 생성한다.
- create A (필드,자료형..) : 매개변수로 주어진 구조들을 가진 테이블(이름 A)을 신규로 생성한다.
- drop (database, table) A : A이름을 가진 데이터베이스 혹은 테이블을 삭제한다. 정보, 데이터를 포함한 모든 자료가 소거되므로 주의해서 사용할 것.
#DML(데이터 조작어)
- insert into A(필드명1, 필드명2, 필드명3,...) values (필드1값, 필드2값, 필드3값, ...): 해당 테이블에 지정된 값의 데이터를 삽입한다. NOT NULL 속성의 필드는 반드시 입력해주어야 한다.
- update A set 필드1 = 새로운 필드1값 : A테이블의 필드1의 값을 새로운 값으로 업데이트한다.
- delete from A : A테이블에 포함된 모든 데이터를 삭제한다. (모든 데이터를 지우고싶지 않으면, where절을 사용해 지정해주어야 한다.)
#DQL(데이터 질의어)
- select A from B : B 테이블의 A구조의 데이터를 나타낸다. (A = *이면 테이블에 속한 모든 데이터를 나타낸다.)
예제
앞서 설명한 명령어들을 통해서 간단한 수준의 예제를 구현해볼 것이다.
- mysql에 접근한 후 존재하는 데이터베이스 목록을 모두 나타내라.
- 새로운 데이터베이스를 생성해라. (이름은 test)
- test에 user table을 생성해라. ( user : id, password, name, addr, phone을 가짐. id~name = not null)
- user table에 데이터("gildong", "1234", "홍길동", "서울", "010-0000-0000")을 삽입하라.
- select를 이용해 user table의 데이터 목록을 나타낸 후, u_name = "홍길동" 을 우선 삭제 후, user tale을 삭제하라.