show databases; #psql에선 \list
create database World;
use world; #psql에서 \c world
create table Heaven (
id int not null auto_increment primary key,
name varchar(10) not null,
good bool not null default True,
key idx_name(name)
);
show tables; #psql에서 \dt
Drop Table Heaven;
Drop Database World;
create database 데이터베이스이름;
show databases; #psql에서 \list
create table 테이블이름 (
컬럼 자료형 제약사항,
[컬럼 자료형 제약사항, ... ]
);
show tables; #psql에서 \dt
create index 인덱스이름 on 테이블(컬럼);drop index 인덱스이름 on 테이블(컬럼);Drop Database World;Drop Table Heaven;TRUNCATE TABLE Heaven;ALTER TABLE 테이블 권한 COLUMN| 타입 | 값 |
|---|---|
| ADD | ADD COLUMN 컬럼명 자료형 제약사항 |
| Drop | Drop COLUMN 컬럼명 |
| MODIFY | MODIFY COLUMN 컬럼명 자료형 제약사항 |
ALTER TABLE Heaven ADD COLUMN friend varchar(40) default '';
create table Heaven (
id int not null auto_increment primary key,
name varchar(10) not null,
good bool not null default True,
key idx_name(name)
);
insert into heaven values (1001, "강강강", 1), (1002, "강강나", 0), (1003, "강강다", 1);insert into heaven values (1001, "강강강", 1);insert into heaven(name) value ("강감찬");1001 강강강 1
1002 강강나 0
1003 강강다 1
1004 강감찬 1
UPDATE heaven SET name = "동명이인" UPDATE heaven SET name = '' WHERE name = '개명';INSERT INTO heaven(id, name) VALUES (1001, '개명') ON DUPLICATE KEY UPDATE name = '개명';INSERT INTO heaven (id, name) VALUES (1001, '개명') ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name;조건부 삭제:
DELETE FROM heaven where id =1001;
전체 삭제:
TRUNCATE TABLE Heaven;
Select * from Heaven where name="강강강";Select id from Heaven where name="강감찬";select name,count(name) as count from Heaven group by name having count(name)>3;Select * from Heaven order by name DESC;SELECT 왼쪽테이블.칼럼, 오른쪽테이블.칼럼, ... FROM 왼쪽테이블 [[left(right|full)] outer join | join |] 오른쪽테이블 ON 왼쪽테이블.칼럼=오른쪽테이블.칼럼explain analyze Select * from Heaven where id =1004, explain Select * from Heaven where name ="강강강"| 차이 | mysql | postgresql | 비교 |
|---|---|---|---|
| 비밀번호 | IDENTIFIED BY | WITH PASSWORD '비밀번호' | |
| 아이디 | '아이디'@'접근ip' | '아이디' | ip를 포함유무 |
유저 추가(만든다고 기존 데이터베이스에 접근 권한이 생기진 않는다)
(MYSQL) CREATE USER '아이디'@'접근ip' IDENTIFIED BY '비밀번호';
(POSTGRESQL) CREATE USER '아이디' WITH PASSWORD '비밀번호';
유저 삭제
(MYSQL) DROP USER '아이디'@'접근ip'
(POSTGRESQL) DROP USER username;
유저 비밀번호 변경
(MYSQL) ALTER USER '아이디'@'접근ip' IDENTIFIED BY '비밀번호'; (POSTGRESQL) ALTER USER '아이디' with password '비밀번호';
권한 부여
(MYSQL) GRANT 권한 [,권한, ...] PRIVILEGES ON 데이터베이스명.테이블 TO '아이디'@'localhost' IDENTIFIED BY '비밀번호';
(POSTGRESQL) GRANT 권한 [,권한, ...] PRIVILEGES ON 데이터베이스명.테이블 TO '아이디';
권한 압수
(MYSQL) REVOKE 권한 [,권한, ...] ON 데이터베이스명.테이블 from '아이디'@'접근ip';
(POSTGRESQL) REVOKE 권한 [,권한, ...] ON imsi_table FROM '아이디';
설정사항 저장
(MYSQL) FLUSH PRIVILEGES;