MySQL 접속
MySQL에 접속하기 위해서 cmd에서 MySQL이 설치된 폴더로 이동한 후 uroot 명령어를 입력한다.
uroot는 root 유저로 접속하겠다는 의미이다.
uroot 명령어 뒤에는 초기에 설정한 패스워드를 입력해 주면 된다.
mysql -uroot -password
정상적으로 입력이 완료되면 접속메시지가 나타난다.
이후 아래의 select @@hostname; 명령어를 통해 MySQL 서버 이름을 출력해 볼 수 있다.
데이터 조작 언어 (DML)
앞서 DML에는 테이블에서 데이터의 조회(SELECT), 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 데 사용한다고 했었다.
- 데이터베이스 생성, 삭제
CREATE 문, DROP 문을 활용하여 데이터베이스의 생성이나 삭제가 가능하다.
CREATE 문, DROP 문의 기본 형식은 아래와 같다.
CREATE DATABASE [데이터베이스 이름]
DROP DATABASE [데이터베이스 이름]
위 쿼리를 입력했다면 Workbench의 SCHEMAS 창에서 새로 생성하거나 삭제한 데이터베이스를 확인할 수 있다.
- USE 문
데이터베이스를 다루기 위해 USE 문을 통해 조작할 데이터베이스를 선택할 수 있다.
- 테이블 생성, 삭제
이후 선택한 데이터베이스에서 CREATE, DROP문을 사용하여 테이블을 생성할 수 있다.
기본 형식과 사용 예시는 아래와 같다.
CREATE TABLE [테이블 이름] (
[열 이름1 데이터 유형]
[열 이름2 데이터 유형]
...
);
-- 기본 형식
create table en_table (
col_1 int,
col_2 varchar(50),
c0l_3 float
);
-- 사용 예시
테이블을 삭제할 때에는 DROP 문을 사용하면 되는데 이때 삭제하려는 테이블이 다른 테이블과 종속관계에 있으며
상위 테이블일 경우에는 삭제할 수 없다.
- 데이터 삽입
데이터를 삽입할 때에는 INSERT 문을 사용한다.
기본 형식과 사용 예시는 아래와 같다.
INSERT INTO [테이블 이름] ([열1, 열2, ...]) VALUES ([값1, 값2, ...])
-- 기본 형식
insert into en_table (col_1, col_2) values (40, 'enchupin');
-- 사용 예시
만약 삽입한 데이터가 지정한 유형과 일치하지 않을 경우 오류가 발생한다.
또한 열 개수와 삽입할 데이터의 수가 동일할 경우에는 열 이름을 생략할 수 있다.
- 데이터 조회
데이터를 조회할 때에는 SELECT 문을 사용한다.
기본 형식과 사용 예시는 아래와 같다.
SELECT * FROM [테이블 이름];
-- 기본 형식
SELECT * FROM en_table;
-- 사용 예시
- 데이터 수정
데이터를 수정할 때에는 UPDATE 문을 사용한다.
WHERE 절을 통해 조건을 추가하는 것도 가능하지만 사용이 강제되지는 않는다.
WHERE 절을 사용하면 조건을 만족하는 행에서 동작한다는 의미이다.
기본 형식과 사용 예시는 아래와 같다.
UPDATE [테이블 이름] SET [열1 = 값1, 열2 = 값2, ...]
WHERE [열 = 조건];
-- 기본 형식
UPDATE en_table SET col_2 = 'en'
WHERE col_1 = 40;
-- 사용 예시
그러나 위 쿼리를 바로 사용하게 되면 오류 메시지가 출력될 것이다.
기본키가 없는 테이블에서 데이터를 수정할 때 WHERE 절에서 참고할 키 열이 없기 때문이다.
해당 동작을 제한해놓은 이유는 키 값을 사용하지 않고 데이터를 수정할 때 의도하지 않은 데이터의 삭제를 방지하기 위해서이다.
이는 안전모드를 해제함을 통해 무시할 수 있다.
현재 세션에서만 안전모드를 비활성화하고 싶다면 아래와 같은 쿼리를 사용하면 된다.
set SQL_SAFE_UPDATES = 0;
-- 안전모드 비활성화
set SQL_SAFE_UPDATES = 1;
-- 안전모드 활성화
- 데이터 수정 (증감 연산자)
다음과 같이 데이터를 추가한 후 UPDATE 문의 동작은 어떻게 될 것인가?
insert into en_table values (50, 'en', 0), (60, 'en', 0), (70, 'en', 0), (100, 'enchupin', 0);
update en_table set col_1 = col_1 + 10 where col_2 = 'en';
위 코드에서 UPDATE 문은 col_1에 col_1과 10을 더한 결과를 대입하므로 마치 프로그래밍에서 증감연산자와 같은 동작을 한다.
- 데이터 삭제
데이터를 삭제할 때에는 DELETE 문을 사용한다.
UPDATE 문과 마찬가지로 WHERE 절로 조건을 추가하는 것도 가능하다.
기본 형식과 사용 예시는 아래와 같다.
DELETE FROM [테이블 이름] WHERE [열 = 조건];
-- 기본 형식
DELETE FROM en_table;
만약 위 코드처럼 조건없이 DELETE 문을 실행하면 테이블의 모든 데이터가 삭제될 것이다.
- TRUNCATE 문
대량의 데이터를 삭제할 때 DELETE 대신 TRUNCATE 문을 사용하면 트랜잭션 로그를 남기지 않아 빠른 성능으로 사용이 가능하다.
그러나 롤백이 불가능하다는 단점이 존재하므로 사용에 유의하여야 한다.
기본 형식과 사용 예시는 아래와 같다.
TRUNCATE TABLE [테이블 이름];
-- 기본 형식
TRUNCATE TABLE en_table;
-- 사용 예시
'데이터베이스' 카테고리의 다른 글
[DB] SQL 관계대수 (cross join, natural join, join using, join on) (0) | 2025.03.09 |
---|---|
[DB] DataBase 정의 및 특징 (0) | 2025.02.20 |