본문 바로가기

[ programing ]/PHP

테이블 명령어










<  테이블 생성 :  CREATE >


키워드

내용

비고

테이블 생성

CREATE

CREATE TABLE sutdy_table(

sno int NOT NULL,           

name varchar(10),            

sex char(1),                    

age int,                         

det char(20),                   

addr varchar(80),              

tel char(20),                    

PRIMARY KEY(sno)           

);                              


레코드 삽입

INSERT

mysql> INSERT INTO 테이블명 (필드명1, 필드명2, ... );

-> VALUES (필드값1, 필드값2, ... ); 


< 첫번째 입력 >

mysql> INSERT INTO sutdy_table( sno, name, sex, age, det, addr, tel)            

-> VALUES(20032356, '홍길동', 'M' , 17, '철학', '서울시 송파구 가락동',

->'101-0000-0000');                                                                 


< 두번째 입력 >

mysql> INSERT INTO sutdy_table( 필드명 생략 )                                        

-> VALUES(20032351, '홍순자', 'M' , 33, '의학', '서울시 송파구 가락동',

->'101-0000-0021'); 






<  테이블 변경 :  ALTER >


키워드

내용

비고

필드의 새로운 추가

ADD 

mysql> ALTER TABLE 테이블명 ADD 새로추가될 필드명과 타입;

ex) ALTER TABLE student_table ADD age int AFTER name;

name 필드 다음에 

age 필드명과 타입 추가


mysql> ALTER TABLE 테이블명 ADD 새로추가될 필드명과 타입;

ex) ALTER TABLE student_table ADD sex int;

sex 라는 필드

 int형 타입으로 추가

기존 필드의 삭제

DROP

mysql> ALTER TABLE 테이블명 DROP 삭제할 필드명

ex) ALTER TABLE student_table DROP age;


필드명 변경 / 타입명 변경

CHANGE

mysql> ALTER TABLE 테이블명 CHANGE 기존 필드명 새로운 필드명 타입

ex) ALTER TABLE student_table CHANGE tel hp int;

tel char(2)의 필드를

hp int로 필드명과 타입변경

필드의 타입만 변경

MODIFY

mysql> ALTER TABLE 테이블명 MODIFY 기존 필드명 새로운 타입

ex) ALTER TABLE student_table MODIFY det int;

det 필드의 타입을

char(20)을 int로 변경

테이블 이름 변경

RENAME

mysql> ALTER TABLE 기존 테이블명 RENAME 새 테이블명;

ex) ALTER TABLE student_table RENAME study_table

stuedent_table명을

study_table로 변경



<  테이블 변경 :  DROP >


키워드

내용

비고

테이블의 삭제

DROP

mysql> DROP TABLE 삭제할 테이블명;

ex) DROP TABLE del_table;

del_table 삭제



<  레코드 삽입 :  INSERT >


키워드

내용

비고

레코드 삽입

INSERT

mysql> INSERT INTO 테이블명 (필드명1, 필드명2, ... );

-> VALUES (필드값1, 필드값2, ... ); 




<  레코드 검색 : SELECT >


'SELECT'절은 사용자가 보기를 원하는 항목의 목록을 지정하고, 테이블에서 수직적 부분 집합을 구하는 연산으로 처리된다.

'FROM' 절은 해당 테이블을 지정

'WHERE' 절은 사용자가 검색하고자 하는 조건을 지정 


키워드

내용

비고

레코드 검색

SELECT

mysql> SELECT *FROM study_table

study_table 테이블에

입력된 레코드 출력


mysql> SELECT  필드명1, 필드명2, 필드명3 ...

-> FROM 테이블명                     

-> WHERE 조건;                         


전체 레코드 검색

*FROM

mysql> SELECT *FROM study_table

study_table 테이블에

전체 레코드 검색


mysql> SELECT code FROM study_table

study_table 테이블의

code속성을 구함


mysql> SELECT DISTINCT code FROM study_table

DISTINCT명령으로

중복된 내용 제거


mysql> SELECT name, age, det, addr, sex

-> FROM study_table             

-> WHERE sex = 'M';             

남성의 성명, 나이. 전공, 주소, 성별이 

테이블에 입력된 순서대로 결과가 검색된다.

검색된 필드의 정렬

ORDER BY

mysql> SELECT  필드명1, 필드명2, 필드명3 ...                             

-> FROM 테이블명                                                  

-> WHERE 조건;                                                      

-> ORDER BY 필드명 오름차순 (ASC) 또는 내림차순(DESC);

'ASC' 오름차순

'DESC' 내림차순


mysql> SELECT  name, age, det, addr, sex                          

-> FROM study_table                                           

-> WHERE sex ='M'                                             

-> ORDER BY age; (오름차순'ASC' 를 생략 해도됨)        

study_table에서

남성의 성명, 나이, 전공, 주소

성별에 대한 검색 결과를 나이순(오름차순)으로 검색


mysql> SELECT  *                                                           

-> FROM study_table                                          

-> WHERE age >= 30                                         

-> ORDER BY sno DESC;                                      

30세 이상인 레코드의 전체 필드를 한번 순으로 검색

( 내림 차순 )


mysql> SELECT  *                                                           

-> FROM study_table                                          

-> ORDER BY hakjum DESC, code ASC                   

모든 과목을 학점 순으로 

검색하되,

학점이 같은 경우 

코드 순서로 정렬


mysql> SELECT  *                                                           

-> FROM jumsu_table                                         

-> WHERE score >= 80                                         

-> ORDER BY sno, code DESC;                               

80점 이상의 학번을 낮은순으로 검색하고,

 학번이 같으면 과목코드가 높은 순으로 정렬

검색 조건은 학번(sno)의 경우 오름차순이고, 과목코드(code)는 내림차순에 대한 요구사항이다.

순설ㄹ 정렬하는 'ODER BY' 다음에 필드명 'sno'를 선언하고 오름차순 또는 내림차순의 선언을 생략했는데 옵션을 생략하면 기본적으로 오름차순(ASC)의 순서로 테이블이 정렬되고 검색 결과를 출력한다.


<  결과값의 제한 검색 : LIMIT >


'SELECT' 구분을 통해 결과를 제한하기 위해서는 "LIMIT"명령을 사용한다.


키워드

내용

비고

결과값의 제한 검색

LIMIT

mysql> SELECT *                       

-> FROM 테이블명       

-> ORDER BY 필드명 ( ASC 또는 DESC ) LIMIT 숫자;



mysql> SELECT  *

-> FROM study_table;                   

-> ORDER BY age DESC LIMIT 3;                         

나이가 많은 3명의

학생에 대한 모든정보를 

나이가 만은 순으로 검색


mysql> SELECT *

->FROM jumsu_table;

-> ORDDER BY score LIMIT 5; (ASC는 생략 가능) 

성적이 낮은 5명의 학번과

점수에 대한 정보를

검색( 성적인 낮은 순 )



<  레코드 변경 : UPDATE >

레코드의 변경은 테이블의 특정 레코드에 대해 속성 또는 값들을 변경하는 질의문


키워드

내용

비고

특정 레코드의 대해

속성과 값을

변경

mysql> UPDATE 테이블명                    

-> SET 필드명 = 변경할 조건 

-> WHERE 필드명 = 기존 속성 값;



mysql> UPDATE study_table

-> SET age = age -3;              

-> WHERE sno = 20032356;                   

학번이 '20032356'인

학생의 나이를 3세 줄이는 변경


mysql> UPDATE study_table

-> SET age = 23;             

-> WHERE name= "김두환";

김두한의 이름을 가진 사람의

나이를 23세로 변경

전체 레코드의 변경

UPDATE

mysql> UPDATE 테이블명

-> SET 필드명 = 조건;



mysql> UPDATE study_table;

-> SET time = time -1;

과목에 배정된 시간수를 1씩 감소



<  레코드 삭제 : DELETE >

'DELETE'문은 테이블에 존재하는 특정 레코드를 삭제하는 질의문

키워드

내용

비고


mysql> DELETE *                       

-> FROM 테이블명       

-> WHERE 필드명 = 조건;


단일 레코드 삭제

LIKE

mysql> DELETE  *

-> FROM study_table;                   

-> WHERE add LIKE '대전%' ;                     

주소가 대전으로

시작하는 

레코드 삭제

특정 레코드의 삭제

WHERE

mysql> DELETE

->FROM 테이블 명;

-> WHERE age >= 20 AND age <= 30;

나이가 20세 ~ 30세

사이의 레코드를 삭제하는

명령

전체 레코드의 삭제

DELETE

mysql> DELETE

->FROM 테이블 명;


- DROP TABLE 테이블명 : 테이블 자체를 삭제

- DELETE FROM 테이블명 : 레코드가 하나도 존재하지 않는 빈 테이블로 변경