MySql - DML, 기타

Agnes Park·2022년 3월 19일
0

DATABASE

목록 보기
3/9

1. DML (Data Manipulation Language)

CREATE TABLE phonebook(
	id int PRIMARY KEY AUTO_INCREMENT,
	name varchar(80) NOT NULL,
	phonenum varchar(20) DEFAULT '010-0000-0000',
	email varchar(100),
	regdate datetime DEFAULT now()
);

2. INSERT (레코드 생성)

테이블에 레코드 추가(생성)

컬럼이름이 생략된 경우 테이블이 정의된 컬럼 순서와 같은 순서로 입력

INSERT INTO phonebook VALUES(4, 'jake', '010-1234-5678', 'test@test.com', '2021-10-06 21:06:23');
INSERT INTO phonebook (id, name, phonenum) VALUES (3, '홍길동', '010-1111-2222');

[코드 예시]

INSERT INTO phonebook VALUES(1, '홍길동', '11-111-111', 'hong@mail.com', '2021-08-01');
INSERT INTO phonebook VALUES(2, '김재동', '22)222-2222', null, now());

INSERT INTO phonebook (id, name) VALUES (5 , '마징가');
INSERT INTO phonebook (name) VALUES ('토르');  # Mysql 에선 가능!
INSERT INTO phonebook (id) VALUES (7);  # 에러
INSERT INTO phonebook (name, regdate) VALUES('아이어맨', '2010-08-23');

2. UPDATE (레코드 수정)

UPDATE [테이블이름] SET [컬럼이름] = [데이터], ...
WHERE [조건식];

[코드 예시]

UPDATE phonebook SET name = 'jesse' WHERE id = 4;
UPDATE phonebook SET email = 'jesse@mail.com' WHERE id = 4;
UPDATE phonebook  SET email='jake@mail.com', name = '김갑환' WHERE id = 3;
UPDATE phonebook SET name = '로켓' WHERE id = 3;
UPDATE phonebook SET id = id + 10 WHERE id > 3;
UPDATE phonebook SET phonenum='45456-77', email='kim@naver.com' WHERE name='김재동';
UPDATE phonebook SET name='hong' WHERE regdate < '2021-08-10';

# null 여부 비교
SELECT * FROM phonebook where email is null;
SELECT * FROM phonebook where email is not null;

UPDATE phonebook SET email='mail@default' WHERE email IS NULL;

3. DELETE (레코드 삭제)

주의! WHERE 조건식이 없을 경우, 테이블의 모든 레코드 데이터가 삭제됨!!

DELETE FROM [테이블 이름] WHERE [조건식];

[코드 예시]

DELETE FROM phonebook WHERE id = 3;

4. auto_increment

CREATE TABLE inventory(
	uid int primary key auto_increment,
	content varchar(200)
);

INSERT INTO inventory(content) VALUES('aaaa');
INSERT INTO inventory(content) VALUES('bbbb');
INSERT INTO inventory(content) VALUES('cccc');

mysql> SELECT * FROM inventory;
+-----+---------+
| uid | content |
+-----+---------+
|   1 | aaaa    |
|   2 | bbbb    |
|   3 | cccc    |
+-----+---------+
3 rows in set (0.00 sec)

5. 기타

1. 화면지우기

> system cls

혹은

> \! cls

2. 외부 파일 실행

외부에서 만든 DDL 이나 쿼리문 파일을 실행시킬때는

source <파일명>;

source d:/mysql/test.sql;
source명령어의 파일명을 쓸때는 반드시 "\"대신에 "/"를 써주어야된다.
sql 실행한 경로와 같은 경로에 있는 경우에는 상대경로로 사용해도 된다. (시스템에 따라 다를수도 있음)

3. mysql 기본 인코딩 확인

> show variables like 'c%';
> status

4. mysql 기본 인코딩 변경

linux 에 설치된 경우
수정

/etc/my.cnf

재시작

$ service mysqld restart 

0개의 댓글

관련 채용 정보