MySQL query문
  • 테이블(Table) : DB에서 데이터를 저장하는 곳으로  테이블은 열과 행을 구성된 표형식으로 구성
  • 데이터베이스(Database) : 데이터베이스란 테이블을 여러 개 모아놓은 집합
  • DBMS(Data Base Management System) : DBMS는 데이터베이스를 모아놓고 전체의 데이터베이스를 관리하는 시스템 (MySql, Oracle, MS-SQL 등의 프로그램)
  • SQL(Structured Query Language) : SQL은 데이터베이스에서 원하는 데이터를 뽑을 수 있도록 만든 일종의 질문 언어(Query Language) Select (조회) / Insert (삽입-레코드) / update (갱신) / Delete (삭제)

DB 생성 및 삭제
CREATE database <데이터베이스명>;
SHOW DATABASES;
DROP DATABASE? <데이터베이스명>;


테이블 생성 및 삭제
자신이 사용할 데이터베이스 선택하기
USE <데이터베이스명>;

테이블 생성 방법
CREATE TABLE <테이블이름> (컬럼1 데이터형, 컬럼2 데이터형, ... , 컬럼N 데이터형);
CREATE TABLE address(no INT, name VARCHAR(20), tel VARCHAR(20));

CREATE TABLE address(
??????????????? no INT,
??????????????? name VARCHAR(20),
??????????????? tel VARCHAR(20)
??????????????? );
INT : 4 Byte의 정수
CHAR(M) : 문자의 수가 최대 M개인 문자열
VARCHAR(M) : 문자의 수가 최대 M개인 문자열
TEXT : 문자의 수가 최대 65,535개의 문자열
VACM(M) : 문자의 수가 M개인 문자열
BLOB : 대용량의 바이너리 데이터를 저장할 때

describe? <테이블명>;
drop table <테이블명>;
show table;


테이블 구조 변경(alter) : 컬럼 추가, 변경, 삭제
테이블에 컬럼 추가
ALTER TABLE <테이블 이름> ADD <컬럼><데이터형>;
ALTER TABLE address ADD email VARCHAR(50);

테이블에 컬럼 변경
ALTER TABLE <테이블 이름> CHANGE <변경전 컬럼> <변경후 컬럼> <데이터형>;
ALTER TABLE address CHANGE email url VARCHAR(100);

테이블에 컬럼 삭제
ALTER TABLE <테이블 이름> DROP <삭제할 컬럼>;
ALTER TABLE address DROP url;


테이블에 데이터 삽입(insert into)
CREATE TABLE login_table (no INT, id VARCHAR(10), passwd VARCHAR(10));

테이블에 데이터 추가 (INSERT INTO)
INSERT INTO <테이블 이름> (컬럼1, 컬럼2, ..., 컬럼N) VALUES (데이터1, 데이터2, ..., 데이터N);
INSERT INTO login_table (no, id, passwd) VALUES ('1', 'kurakura', 'kurakura');
INSERT INTO login_table VALUES ('3', 'bobo', 'boboshop');


테이블에 데이터 조회(select)
insert_sql.txt  파일을 사용하여 테이블과 데이터를 입력합니다.

전체 항목 표시
SELECT * FROM 테이블;
SELECT * FROM student;

원하는 항목 표시
SELECT 컬럼1, 컬럼2, ... , 컬럼N FROM 테이블;
SELECT name, kor FROM student;

특정 조건을 만족하는 목록 표시
SELECT? <컬럼명>? FROM? <테이블이름>? WHERE? <조건>;
SELECT * FROM student WHERE sex='M';

조건을 하나 더 붙여서 남자들 중에서 수학점수(math)가 70점 이상인 사람들만 표시
SELECT id, name FROM student WHERE sex='M' AND math>'70';


계산식을 통해 자료 가져오기
SELECT name, (kor+eng+math)/3 FROM student;
SELECT * FROM student WHERE kor>='80' AND kor<='90';

최대(MAX), 최소(MIN), 평균(AVG) 구하기
SELECT MAX(kor), MIN(kor), AVG(kor) FROM student;


데이터를 순서대로 가져오기 (ASC 오름차순 / DESC 내림차순)
SELECT <컬럼명> FROM <테이블명> ORDER BY <컬럼명> [ASC|DESC] ;
SELECT no, phone FROM student ORDER BY id;

영어성적(eng)을 역순으로 정렬한 후 이름(name)과 영어성적(eng)을 표시
SELECT name, eng FROM student ORDER BY eng DESC;


원하는 개수만큼 가져오기
SELECT * FROM 테이블 LIMIT 데이터 개수;

LIMIT 바로 뒤에 가져오고자 하는 데이터 개수를 적으면, 원하는 수만큼의 데이터를 가져올 수 있습니다. LIMIT 뒤에는 두 개의 변수를 적을 수도 있는데, 이 경우 앞에 있는 변수는 위에서부터 건너 뛸 데이터 개수이고, 뒤에 있는 변수는 가져올 데이터 개수.

다음 SQL문은 3번부터 시작해서 4개를 가져오는 쿼리.
SELECT * FROM student LIMIT 2, 4 ;


데이터 개수 알아내기
SELECT COUNT(*) FROM 테이블;

이것은 student 테이블에서 성별(sex)이 여자(F)인 데이터의 개수를 구하는 예.
SELECT COUNT(*) FROM student WHERE sex='F';


검색을 통해 데이터 가져오기
SELECT * FROM student WHERE name LIKE '이%';

SELECT 쿼리의 LIKE 옵션을 이용하면 패턴이 일치하는 데이터들만 추출 .
이 경우 “모든 문자”라는 의미를 가지는 % 문자가 주로 사용.
다음은 ‘student 테이블에서 이름(name)이 “이”자로 시작하는 사람을 모두 표시하라’는 예입니다.


테이블에 데이터 수정(update)
UPDATE 쿼리를 이용하면, 테이블에 저장된 데이터를 수정
UPDATE <테이블이름> SET <컬럼1>=<값1>, <컬럼2>=<값2> ... <컬러N>=<값N> WHERE 조건;
UPDATE student SET math='70' WHERE id='2';


테이블에 데이터 삭제(delete)
테이블에 저장된 데이터를 삭제하기 위해서는 DELETE 쿼리를 사용
DELETE FROM <테이블이름> WHERE 조건;

id가 6번 데이터 삭제하기
DELETE FROM student WHERE id = '6';

student 테이블에서 id가 6번인 데이터를 삭제하고자 한다면 다음과 같은 쿼리를 실행하면 됩니다.


① SELECT문 : 테이블로부터 데이터를 가져오는데 사용되는 쿼리.
예) student 테이블에서 남자(sex가 M으로 저장된 사람들)들의 이름과 전화번호를 가져오기
SELECT name, phone FROM student WHERE sex= 'M';


② INSERT문 : 테이블에 새로운 데이터를 저장하는데 사용되는 쿼리.
예) student 테이블에 (6, 화두, 1969-02-12, 011-9322-0992, 53, 98, 79)라는 데이터를 추가하기
INSERT INTO student VALUES('6', '화두', '1969-02-12', '011-9322-0992', '53', '98', '79')


③ UPDATE문 : 테이블에 저장된 데이터를 수정하는데 사용되는 쿼리.
예) student 테이블에 5번 데이터의 사람이름(name)을 ‘이강’로 수정하기
UPDATE student SET name = ‘이강’ WHERE id = '5';


④ DELETE문 : 테이블에 저장된 데이터를 삭제하는데 사용되는 쿼리.
예) student 테이블의 3번 데이터를 삭제하기
DELETE FROM student WHERE id = '3';

NOT NULL : 반드시 데이터 저장
PRIMARY KEY : 중복 데이터 불가능, 반드시 NOT NULL
AUTO_INCREMENT : 자동으로 1씩 증가
CREATE TABLE student (id INT,
name VARCHAR(10),
sex CHAR,
birthday DATE,
phone VARCHAR(15),
kor INT,
math INT,
eng INT);

'Database > MySQL' 카테고리의 다른 글

우편번호 DB (MySQL용)  (0) 2006.08.12

+ Recent posts