프리랜서 웹디자이너 웹퍼블리셔RELATION

RELATION 로고

PHP 웹프로그래밍

[MYSQL PHP 함수] PHP, MYSQL 기초 쿼리문 정리

2013.05.24
북마크 작성자 정보
가. 테이블생성

mysql> create table 테이블명(
-> 컬럼명 데이터 타입,
-> 컬럼명 데이터 타입,
-> 컬럼명 데이터 타입,
-> )

mysql> create table user(
-> id varchar(15) not null,
-> name varchar(15),
-> sex char(1),
-> age int,
-> primary key(id)
-> );

premary로 지정한 컬럼은 유일한 값만 입력할 수 있다는 것이 특징입니다.한마디로 중복값을 허용하지 않는 다는 의미이며, null(없는 값)이 들어갈수 없습니다.


테이블 목록구하기
mysql> show table;


테이블별 데이터 개수 구하기
mysql> SELECT TABLE_ROWS FROM information_schema, TABLES table_schema = "데이터베이스명" order by TABLE_ROWS DESC;
** TABLE_ROWS 가 테이블당 data 개수





---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

나. 테이터 변경

alter table 테이블명 add 새로운컬럼명 데이터 타입;
mysql> alter table user add birth date;

alter table 테이블명 drop 삭제하는 컬럼명;
mysql> alter table user drop birth;

alter table 테이블명 change 예전컬럼명 새로운칼럼명 테이터형;
mysql> alter table user change birth birthday int;

alter table 테이블명 modify 컬럼명 새로운 데이터형;
mysql> alter table user modify borthday date;

alter table 예전테이블명 rename 새로운테이블명;
mysql> alter table user rename userdate;

---------------------------------------------------------------------

다. 테이블과 데이터베이스의 삭제

drop table 삭제할 테이블명;
mysql> drop table test;

drops database 삭제할 데이터베이스명;
mysql> drop databases imsi;

---------------------------------------------------------------------

라. 테이터 삽입

insert into 테이블명(컬러명1, 컬럼명2, ...)valuse(컬럼값1, 컬럼값2,... );

mysql> insert into userdata(id, name, sex,age);
-> valuse('hong','홍길동','M','28');

컬럼명과 컬럼값만 일치한다면 순서는 바뀌어도 동일하게 입력된다.

---------------------------------------------------------------------

마. 데이터 검색

select 컬럼명1, 컬럼명2 from 테이블명 ;
mysql> select id name from userdata;
mysql> select * from userdata;

--------------------------------------------------------------------

- 중복레코드제거(distict)
distinct는 중복 레코드를 제거하기 위해서 사용합니다.
mysql> select distinct name from userdate;

- 조건검색
조건검색은 말 그대로 조건을 줘서 검색을 하는 것입니다. 나이가 26살이
넘는 사람만 검색

mysql> select * from userdata where age>26;
mysql> select * from userdata where age>26 and name='홍길동';

or를 사용해서 나이가 26살 넘거나 성별이 여자인 경우를 검색
mysql> select * from userdata where age>26 od sex='F';

- 순서로 정렬검색(oder by, desc, asc)
테이블에서 데이터를 검색할 때 컬럼의 값을 오름차순 또는 내침차순으로
정렬하여 검색할 수 있습니다.

oder by : 기본적으로 오름차순으로 정렬됩니다.
doer by desc : 내림차순으로 정렬

mysql> select * from userdata oder by age desc;
mysql> select * from userdata oder by age;

- 함수를 이용한 검색
새부적인 검색을 위해서는 MYSQL는 몇 가지 함수를 이용할 수 있습니다.
예를 들어 나이가 가장많은 사람의 사용자데이터를 검색한다든지, 사용자중에 암성 사용자의 수를 계산한다든지 할때 함수가 유용하게 스입니다.
먼저 몯든 레코드의 수를 계산해보겠습니다.

mysql> select count(*) from userdata;
mysql> select sun(age) from userdata;
mysql> select avg(sge) from userdata where sex='M';
mysql> select max(age) from userdata;
mysql> select min(age) from userdata;

- Group by를 이용한 검색
Group by는 명세된 컬럼의 값별로 분할하는 기능을 갖고 있습니다. 예를 들어 사용자를 성별로 구별하고 싶다고 group by를 sex 컬럼에 적용하면 남성과 여성으로 구분하여 검색을 할 수 있습니다. 그러면 남성과 여성 사용자의 수를 검색하는 예를 보겠습니다.

mysql> select sex, count(*) from userdata group by sex;

- having을 이영한 검색
having은 행의 그룹에 적용될 조건을 정의할 수 있습니다. 그러면 성별로
그룹을 지어서 그 수가 3개 이상인 그룹의 성과 사용자들의 나이 평균 값을 검색해 보겠습니다.

mysql> select sex, avg(age) from userdata
-> group by sex
-> having count(*) > 3;

- Like를 이용한 검색

mysql> select id,name from userdata where name like '김%';
mysql> select id,name from userdata where name like '_미%';

-Limit를 이용한 검색

mysql> select * from userdata limit 4;

---------------------------------------------------------------------

바. 데이터 수정
테이블의 데이터를 수정하기 위해서는 update문을 사용합니다. update문은
다음과 같은 형식으로 사용합니다.

update 테이블 set 컬럼명=컬럼값 (where 조건)
mysql> update userdata set age=30 where id='웅';
mysql> usdate userdata set age=age+1 where name='유미현';

---------------------------------------------------------------------

사. 데이터 삭제
delect from 테이블명 (where 조건)
mysql> delect from userdata where name='홍길동';

---------------------------------------------------------------------

아. MySQL문법 , API , MySQL 정리
CREATE DATABASE 데이타베이스 생성
DROP DATABASE 데이타베이스 삭제
CREATE TABLE 테이블 생성
SHOW TABLE 생성된 테이블보기
SHOW COLUMNS 테이블의 컬럼속성확인하기
ALTER TABLE 테이블 변경
DROP TABLE 테이블 삭제
SELECT 테이블 데이터 검색
INSERT 테이블 데이터 추가
UPDATE 테이블 데이터 수정
DELETE 테이블 데이터 삭제

MySQL API 함수

mysql_connect 접속
mysql_close 접속해제
mysql_select_db 디비선택
mysql_create_db 디비생성
mysql_drop_db 디비삭제
mysql_errno 에러번호
mysql_error 에러내용
mysql_query 쿼리전송
mysql_num_rows 레코드 수
mysql_num_fields 필드 수
mysql_field_name 필드 이름
mysql_field_type 필드 타입
mysql_field_len 필드 길이
mysql_field_flag 필드항목
mysql_field_table 필드가 속한 테이블
mysql_fetch_row 하나의 레코드 데이터
mysql_fetch_array 레코드를 배열로
mysql_fetch_object 레코드를 오브젝트로
mysql_result 필드 값
mysql_free_result 점유한 메모리
mysql_data_seek 지정한 레코드위치로이동
mysql_fetch_field 필드정보를 오브젝트로
mysql_fetch_lengths 필드크기
mysql_list_dbs 디비리스트
mysql_list_tables 테이블리스트
mysql_list_fields 필드리스트
mysql_pcconnect 접속유지


MySQL 필드 타입(자료형) 설정(중요)

tinyint [부호있는 정수 -128 ~ 127 - 부호없는 정수 0 ~ 255]1 byte
smallint [ 부호있는 정수 -32,768 ~ 32,767 - 부호없는 정수 0 ~ 65,536 ]2 byte
mediumint [ 부호있는 정수 -8,388,608 ~ 8,388,607 - 부호없는 정수 0 ~ 16,777,215 ] 3 byte
int 혹은 integer [ 부호있는 정수 -2,147,483,648 ~ 2,147,483,647 - 부호없는 정수 0 ~ 4,294,967,295] 4 byte
bigint [부호있는 정수 -9223,372,036,854,775,808 ~ -9223,372,036,854,775,807
부호없는 정수 0 ~ 18,446,744,073,709,551,615 ] 8 byte
float [ 부동 소수점 -3.402823488E+38 ~ 3.402823488E+38 ]
double [ 부동 소수점 -1.79769313486231517E+308 ~ 1.79769313486231517E+308 ]
date 날짜 [ 1000-01-01 ~ 9999-12-31 ]3 byte
datetime 날짜와 시간 [ 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 ] 8 byte
timesstamp [ 1970-01-01 00:00:00 ~ 2037 년까지] 4 byte
time 시간 [ -839:59:59 ~ 838:59:59 ]
year 연도 [ 1901 년 ~ 2155 년 ]
char(LENGTH = 1 ~ 255) 고정 길이 문자열을 표현하는 유형
vchar(LENGTH = 1 ~ 255) 가변 길이 문자열을 표현하는 유형
tinyblob 255 개 문자를 저장
blob : binary large object의 약자
tinytext
blob text 65,535 개의 문자를 저장
mediumblob 16,777,215 개의 문자를 저장
mediumtext
longblob 4,294,967,295 (4 giga)
longtext

이 포스트 공유하기

전체목록