[

MySQL 에서 사용되는 sql문 정리[DB 자체 처리]

· 21년 전 · 6700
■ CREATE DATABASE database_name (데이타베이스이름)
데이타 베이스 이름은 문자와 숫자, '_' 를 포함하는 32 byte 이내로 작성한다. 이 명령은 새로운 데이타베이스 공간을 생성시킨다.

■ DROP DATABASE database_name
존재하는 데이타베이스를 제거한다. 데이타베이스 상에 존재하는 테이블도 모두 삭제 되므로 매우 조심하여 작업하여야 한다. 한번 삭제되면 복구는 불가능 하므로 데이타 베이스 상의 테이블과 데이타가 모두 백업이 되었는지 확인하고 작업한다.

■ CREATE TABLE table_name ( create_definition,... )
데이타베이스 상에 테이블을 생성시키는 명령이다. 자세한 옵션은 다음과 같다.

create_definition:
column_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[ PRIMARY KEY ] [reference_definition]
or PRIMARY KEY ( index_column_name,... )
or KEY [index_name] KEY( index_column_name,...)
or INDEX [index_name] ( index_column_name,...)
or UNIQUE [index_name] ( index_column_name,...)
or FOREIGN KEY index_name ( index_column_name,...) [reference_definition]
or CHECK (expr)

type:
TINYINT[(length)] [UNSIGNED] [ZEROFILL]
or SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
or MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
or INT[(length)] [UNSIGNED] [ZEROFILL]
or INTEGER[(length)] [UNSIGNED] [ZEROFILL]
or BIGINT[(length)] [UNSIGNED] [ZEROFILL]
or REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
or DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
or FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
or DECIMAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
or NUMERIC[(length,decimals)] [UNSIGNED] [ZEROFILL]
or CHAR(length) [BINARY],
or VARCHAR(length) [BINARY],
or DATE
or TIME
or TIMESTAMP
or DATETIME
or TINYBLOB
or BLOB
or MEDIUMBLOB
or LONGBLOB
or TINYTEXT
or TEXT
or MEDIUMTEXT
or ENUM(value1,value2,value3...)
or SET(value1,value2,value3...)

index_column_name:
column_name [ (length) ]

reference_definition:
REFERENCES table_name [( index_column_name,...)]
[ MATCH FULL | MATCH PARTIAL]
[ ON DELETE reference_option]
[ ON UPDATE reference_option]

reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT



■ ALTER [IGNORE] TABLE table_name alter_spec [,alter_spec ...]
존재하는 테이블을 변경 및 columnd의 추가 작업시 사용된다.

alter_specification:
ADD [COLUMN] create_definition
or CHANGE [COLUMN] old_column_name create_definition
or ALTER [COLUMN] column_name { SET DEFAULT literal | DROP DEFAULT }
or ADD INDEX [index_name] ( index_column_name,...)
or ADD UNIQUE [index_name] ( index_column_name,...)
or DROP [COLUMN] column_name
or DROP PRIMARY KEY
or DROP INDEX key_name
or RENAME AS new_table_name

■ DROP TABLE table_name [, table_name...]
존재하는 테이블을 제거할 경우 사용되는 명령이다.

■ DELETE FROM table_name WHERE where_definition
존재하는 테이블 상의 데이타를 삭제할때 사용하는 명령이다.


■ SELECT 문
존재하는 테이블 상의 데이타를 조회할때 사용하는 명령이다.
기본적인 사용법은 다음과 같다.

SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,...
[INTO OUTFILE 'file_name' ...]
[ FROM table_references
[WHERE where_definition ]
[GROUP BY column,...]
[HAVING where_definition]
[ ORDER BY column [ASC | DESC] ,..] [LIMIT [offset,] rows]
[PROCEDURE procedure_name]]


■ JOIN 문

table_reference, table_reference
table_reference [CROSS] JOIN table_reference
table_reference LEFT [OUTER] JOIN table_reference ON conditional-expr
table_reference LEFT [OUTER] JOIN table_reference USING (column-commalist)
table_reference NATURAL LEFT [OUTER] JOIN table_reference
{ oj table_reference LEFT OUTER JOIN table_reference ON conditional-expr }

■ INSERT 문
존재하는 테이블에 데이타를 입력할때 사용한다.

INSERT INTO table [ (column_name,...) ] VALUES (expression,...)
or INSERT INTO table [ (column_name,...) ] SELECT ...



■ REPLACE 문
이 문장은 INSERT문장과 거의 유사하게 동작한다. 같은 레코드가 있을경우 이 레코드를 삭제한후 INSERT 작업을 한다. 같은 ?코드가 없을 경우는 INSERT 와 같이 동작한다.

REPLACE INTO table [ (column_name,...) ] VALUES (expression,...)
or REPLACE INTO table [ (column_name,...) ] SELECT ...

■ LOAD DATA INFILE 문
Server 상에 위치하는 text 파일로 부터 데이타를 읽어서 테이블에 입력작업을 할 경우 사용한다. 매우 속도가 빠르다.

LOAD DATA INFILE 'text_file_name.text' [REPLACE | IGNORE]
INTO TABLE table_name
[FIELDS [TERMINATED BY ',' [OPTIONALLY] ENCLOSED BY '"' ESCAPED BY '\\'
]]
[LINES TERMINATED BY '\n']
[(Field1, Field2...)]

테이블로 부터 데이타를 읽어서 text 파일에 데이타를 저장할경우 다음과 같이 사용한다.

SELECT ...
INTO OUTFILE 'interval.txt' fields terminated by ','
enclosed by '"'
escaped by '\\' lines terminated by '\n'
FROM ...

■ UPDATE 문
테이블 상에 존재하는 데이타를 변경할 경우 사용한다.


UPDATE table SET column=expression,... WHERE where_definition

■ SHOW syntax. Get information about tables, columns...
MySQL 상의 각종 정보를 보여준다. 데이타 베이스, 테이블, column등을 확인할수 있다.

SHOW DATABASES [LIKE wild]
or SHOW TABLES [FROM database] [LIKE wild]
or SHOW COLUMNS FROM table [FROM database] [LIKE wild]
or SHOW INDEX FROM table [FROM database]
or SHOW STATUS
or SHOW VARIABLES [LIKE wild]

■ EXPLAIN syntax. Get information about a SELECT.
select 문과 이때 요구되는 테이블에 대한 정보를 준다. 일반 select 문의 처음에 EXPLAIN 을 추가하면 동작한다. EXPLAIN SELECT select_options

■ DESCRIBE syntax
존재하는 테이블에서 column 정보를 가지고 온다.

(DESCRIBE | DESC) table [column]

■ LOCK TABLES syntax
테이블에 lock 을 설정하여 타인이 읽지 못하게 할때 사용한다.
주의할 점은 한사람이 lock을 실행하면 이 사람이 사용하는 모든 테이블이 lock되므로 사용후 꼭 unlock를 사용하여 lock를 풀도록 한다.

LOCK TABLES table_name [AS alias] READ|WRITE [, table_name READ|WRITE]
...
UNLOCK TABLES

■ SET OPTION syntax.
현재 사용중인 세션이 사용되는 동안 지속적으로 영향을 준다. 여러 옵션이 있으므로 원본 메뉴얼을 참조하기 바란다.

SET [OPTION] SQL_VALUE_OPTION=value, ...

■ GRANT 문 ( 호환명령)
이 명령을 사용하지는 않고 단지 호환성문제 때문에 MySQL 존재한다. 이 명령은 다른 SQL 서버로 부터 MySQL로 쉽게 변환하기 위하여 만들졌다. MySQL 에서의 특권은 MySQL 허가 테이블을 이용하여 다루어 진다.
섹션 6.2 의 특권 시스템 업무를 하는 방법을 참고 하라.

GRANT (ALL PRIVILEGES | (SELECT, INSERT, UPDATE, DELETE,
REFERENCES (column list), USAGE))
ON table TO user,... [WITH GRANT OPTION]

■ CREATE INDEX 문 (호환명령)

이 명령을 사용하지는 않고 단지 호환성문제 때문에 MySQL 존재한다.
ALTER TABLE 을 사용하여 새로운 index 를 생성할수 있다.
섹션 7.7 의 ALTER TABLE 의 문법을 보아라.
CREATE [UNIQUE] INDEX index_name ON table_name ( column_name,... )

■ DROP INDEX 문 (호환명령)
이 명령은 항성 성공할 것이다. ALTER TABLE 을 사용하여 index 를 제거할수있다.

DROP INDEX index_name

■ Comment 문법
한줄의 주석은 # 로 하고 주석의 내용이 여러줄일 경우는 /* */ 를 이용하여 주석을 처리할수 있다.


■ CREATE FUNCTION 문법
MySQL 의 기본 함수인 ABS(), constr() 처럼 새로운 사용자 정의 함수를 생성 하는 함수이다. 사용자정의함수의 소스는 C, C++로 작성되어야 하고 동적으로 읽혀지는것이 요구되어 진다. 예제로서 배포판에 보면 udf_example.cc 가 있고 5개의 새로운 사용자정의함수가 작성되어 있다.

CREATE FUNCTION <function_name> RETURNS [string|real|integer]
SONAME <name_of_shared_library>

DROP FUNCTION <function_name><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
21년 전 조회 1,764
21년 전 조회 1,592
21년 전 조회 1,653
21년 전 조회 2,136
21년 전 조회 1,893
21년 전 조회 2,392
21년 전 조회 3,583
21년 전 조회 1,587
21년 전 조회 1,781
21년 전 조회 3,200
21년 전 조회 2,368
21년 전 조회 3,191
21년 전 조회 2,901
21년 전 조회 3,322
21년 전 조회 5,141
21년 전 조회 2,549
21년 전 조회 4,839
21년 전 조회 2,529
21년 전 조회 3,136
21년 전 조회 7,640
21년 전 조회 3,849
21년 전 조회 3,231
21년 전 조회 4,720
21년 전 조회 2,923
21년 전 조회 6,249
21년 전 조회 4,502
21년 전 조회 5,804
21년 전 조회 3,655
21년 전 조회 5,987
21년 전 조회 3,134
21년 전 조회 2,853
21년 전 조회 2,647
21년 전 조회 2,457
21년 전 조회 2,664
21년 전 조회 2,693
21년 전 조회 3,812
21년 전 조회 2,833
21년 전 조회 2,482
21년 전 조회 2,288
21년 전 조회 3,076
21년 전 조회 3,147
21년 전 조회 2,520
21년 전 조회 2,609
21년 전 조회 2,998
21년 전 조회 2,343
21년 전 조회 2,772
21년 전 조회 2,149
21년 전 조회 2,363
21년 전 조회 2,708
21년 전 조회 2,357
21년 전 조회 2,182
21년 전 조회 2,191
21년 전 조회 2,351
21년 전 조회 1,953
21년 전 조회 1,943
21년 전 조회 2,152
21년 전 조회 2,380
21년 전 조회 4,593
21년 전 조회 2,741
21년 전 조회 2,133
21년 전 조회 2,196
21년 전 조회 2,162
21년 전 조회 2,438
21년 전 조회 2,591
21년 전 조회 1,803
21년 전 조회 4,096
21년 전 조회 3,880
21년 전 조회 3,009
21년 전 조회 2,922
21년 전 조회 5,283
21년 전 조회 4,075
21년 전 조회 4,465
21년 전 조회 3,478
21년 전 조회 5,848
21년 전 조회 3,123
21년 전 조회 6,100
18년 전 조회 3,661
21년 전 조회 3,674
21년 전 조회 4,275
21년 전 조회 3,848
21년 전 조회 4,240
21년 전 조회 6,701
21년 전 조회 4,753
21년 전 조회 7,003
21년 전 조회 4,197
21년 전 조회 2,647
21년 전 조회 4,987
21년 전 조회 3,429
21년 전 조회 3,904
21년 전 조회 3,589
21년 전 조회 3,417
21년 전 조회 3,991
21년 전 조회 5,181
21년 전 조회 4,789
21년 전 조회 5,700
21년 전 조회 4,136
21년 전 조회 4,861
21년 전 조회 4,771
21년 전 조회 3,265
22년 전 조회 4,364