DDL
DATABASE
CRAETE DATABASE 데이터베이스_이름 [CHARACTER SET];
DROP DATABASE 데이터베이스_이름;
RENAME TABLE 데이터베이스_이름1.테이블_이름 TO 데이터베이스_이름2.테이블_이름;
SHOW DATABASES [LIKE 조건절];
USE 데이터베이스_이름;
ALTER DATABASE 데이터베이스_이름 CHARACTER SET = ‘포맷’;
DROP DATABASE 데이터베이스_이름;
TABLE
CREATE TABLE [TEMPORARY] 테이블_이름 [IF NOT EXISTS] (
컬럼이름 데이터타입 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[UNIQUE [KEY]] [[PRIMARY] KEY] [COLLATE collation_name] [reference_definition];
{INDEX | KEY} [인덱스이름] (칼럼이름);
{FULLTEXT | SPATIAL} [INDEX | KEY] [인덱스이름] (칼럼이름);
[CONSTRAINT] PRIMARY KEY 칼럼이름);
[CONSTRAINT] UNIQUE [INDEX | KEY] [인덱스이름] (칼럼이름);
[CONSTRAINT] FOREIGN KEY [인덱스이름] (칼럼이름) [reference_definition] ,
CHECK (expr)
) ENGINE = InnoDB; // 엔진 선택 가능
* reference_definition: REFERENCES tbl_name (key_part,...) [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option]
DESC 테이블_이름;
ALTER TABLE 테이블_이름 CHARACTER SET ‘euckr’;
ALTER TABLE 테이블_이름 ENGINE=myisam;
RENAME TABLE 테이블_이름1 TO 테이블_이름2, 테이블_이름3 TO 테이블_이름4;
COLUMN
ALTER TABLE 테이블_이름 ADD COLUMN 컬럼_이름 TYPE;
ALTER TABLE 테이블_이름 DROP COLUMN 컬럼_이름;
ALTER TABLE 테이블_이름 CHANGE 컬럼_이름1 컬럼_이름2 [TYPE];
ALTER TABLE 테이블_이름 MODIFY COLUMN 컬럼_이름 TYPE NOT NULL;
INDEX
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name [index_type] ON tbl_name (key_part,...)
ALTER TABLE table_name ADD INDEX 인덱스_이름(column1, column2);
SHOW INDEX FROM 테이블_이름;
ALTER TABLE 테이블_이름 DROP INDEX 인덱스_이름;
DML
SELECT [DISTINCT] column1, column2… // DISTINCT를 통해 중복 값 제거
FROM 테이블_이름
[WHERE 조건절] // < > <= >= ! AND OR NOT BETWEEN IN EXISTS 등과 사용 가능
[GROUP BY column_name]
[HAVING Aggregate_function]
[ORDER BY column_name [ASC / DESC] ]
[LIMIT n] // n개의 행으로 결과 값 제한
INSERT INTO 테이블_이름 [ 열 목록 ] VALUES ( 값 목록 )
INSERT INTO 테이블_이름 [ 열 목록 ] select ~; // insert select문
UPDATE 테이블_이름 SET 컬럼_이름 = value [WHERE 조건절]
DELETE FROM 테이블_이름 [WHERE 조건절] [LIMIT n]
DCL
CREATE USER [계정명]@[접속경로] IDENTIFIED BY PASSWD;
DROP USER [계정명]@[접속경로];
SET PASSWORD FOR [계정명]@[접속경로] = ‘new pwd’;
GRANT [권한목록] ON [database_name.table_name] TO 계정명@접속경로;
REVOKE [권한목록] ON [database_name.table_name] TO 계정명@접속경로;
SHOW GRANTS FOR 계정명@접속경로;
FLUSH PRIVILEGES; // GRANT, REVOKE 반영
COMMIT; // 트랜잭션 반영
ROLLBACK; // 트랜잭션 취소
'MySQL' 카테고리의 다른 글
MySQL Log (로그) (0) | 2021.04.05 |
---|