개발(Web)/DB

[MySQL] MySQL 기초

shinyelee 2020. 7. 3. 00:34

간단한 구문을 테스트해보자.

Ⅰ. MySQL 시작

1. MySQL 접속

root 계정으로 로그인.

2. DB 상태 확인

status → DB 상태 확인. 아직 사용할 DB를 선택하지 않아 Current database가 공란이다.

3. 종료

exit → 명령 프롬프트 종료.


Ⅱ. DB

1. DB 생성

create database DB명; → db1이라는 이름의 DB를 생성했다.

2. DB 사용

use DB명; → 조금 전 만든 db1을 사용할 DB로 선택했다.
Current database가 db1이 됐다.

3. DB 삭제

drop database DB명; → db1을 삭제.

4. DB 목록 조회

show databases; → DB 목록 조회. 조금 전 삭제한 db1은 당연히 목록에 없다.

5. 실습

가. jspdb라는 이름의 DB를 생성 후 사용하시오. 

실습을 위해 jspdb라는 이름의 DB를 새로 생성하고, 사용할 DB로 설정했다. Current database가 db1 → 공란 → jspdb 순으로 바뀌었다.


Ⅲ. 테이블

1. 테이블 생성

create table 테이블명(

필드명 데이터타입 제약조건

);

 

create table 테이블명(

필드명1 데이터타입1 제약조건1,

필드명2 데이터타입2 제약조건2,

필드명3 데이터타입3 제약조건3

);

단, 오라클과 달리 문자형은 varchar, 숫자형은 int다.

가. 테이블(test)과 필드(idx 정수형)를 생성하시오.

test 테이블 생성. 정수형은 int.

나. 테이블(test2)과 필드(idx 정수형, d_num double)를 생성하시오.

test2 테이블 생성. 실수형은 double.

다. 테이블(test3)과 필드(idx 정수형, name 문자형 10자제한, jumin 문자형 10자제한)를 생성하시오.

test3 테이블 생성. 문자형은 varchar. 글자 수 제한은 (숫자).

라. 테이블(test4)과 필드(idx 정수형 PK제약조건, name 문자형 10자제한)를 생성하시오.

test4 테이블 생성. idx 필드를 primary key로 설정했다. PK 필드는 중복 데이터와 null 데이터를 사용할 수 없다.

마. 테이블(itwill_member)과 필드(아래 내용 참고)를 생성하시오.

idx 정수형 PK제약조건 자동증가,

name 문자형 20자제한,

gender 문자형 2자제한,

age 정수형,

jumin 문자형 14자제한

auto_increment는 데이터 값을 1씩 자동으로 증가하게 한다.

2. 테이블 구조 확인

desc 테이블명; → 테이블 구조 확인. 예시는 조금 전 만든 itwill_member 테이블이다.

3. 테이블 삭제

drop table 테이블명; → 테이블 삭제. test 삭제 후 desc 요청하니 DB 내에 해당 테이블이 존재하지 않는다는 에러 메시지가 뜬다. 

4. 테이블 조회

show tables; → 테이블 조회. 현재 사용중인 DB(jspdb) 내 모든 테이블을 보여준다.


Ⅳ. 데이터

1. 데이터 입력

insert into 테이블명 (필드명) values (숫자데이터);

insert into 테이블명 (필드명) values ('문자데이터');

insert into 테이블명 (숫자필드, 문자필드, 빈값필드) values (숫자데이터1, '문자데이터2', null);

가. test2 필드(idx)에 데이터(2)를 추가하시오.

나. test2 필드(idx, d_num)에 데이터(1, 3.123)( , 1.123)(0, )를 차례로 추가하시오.

(필드명1, 필드명2) (필드명1,필드명) 둘 다 결과는 동일하다. 띄어쓰기 노상관. 빈 값은 null 넣어서 처리.
특정 필드에 빈 값이 있다면 1. null 값을 넣거나 2. 해당 필드를 선택하지 않으면 된다. 띄어쓰기(스페이스바)는 에러가 뜬다.

다. test3 필드(idx, name, jumin)에 아래 데이터를 차례로 추가하시오.

1, Lee, 900101-1231231

2, Kim, 900101-1111111

3, Hong,  

 , Jung, 900202-2222222

모든 필드에 차례로 값을 넣는 경우 필드명을 생략할 수 있다.

라. itwill_member에 아래 데이터를 차례로 추가하시오.

1, hong, M, 16, 900101-1231211

2, kim, W, 18, 900101-2231211

3, jung, M, 22

4, kang, W, 33, 900101-4231211

5, song, M, 44, 900101-5231211

마. 날짜, 시간정보

datetime, timestamp, date → 날짜, 시간정보 출력을 위해 test5 테이블을 생성했다.
null만 넣었을 때 결과.
now()를 넣었을 때 결과.

2. 데이터 수정

update 테이블명 set 필드명 = 수정데이터

where 조건;

jung의 주민번호를 null에서 900101-3123123으로 바꿨다.

3. 데이터 삭제

delete from 테이블명

where 조건;

idx == 0, d_num == null인 데이터를 삭제했다. where 조건이 없으면 테이블 내 모든 데이터를 삭제한다.

4. 데이터 출력(검색)

select 칼럼명 from 테이블명;

칼럼명 대신 *를 쓰면 전체 데이터를 출력한다.

select 칼럼명1, 칼럼명2 from 테이블명;

칼럼 여러 개를 동시에 출력할 수 있다.

select 칼럼명 from 테이블명

where 조건;

가. itwill_member에서 idx가 3 이상인 회원의 모든 데이터 출력.

* 써서 모든 데이터 출력. 조건은 idx >= 3

나. itwill_member에서 이름이 kim인 회원의 모든 데이터 출력.

* 로 모든 데이터 출력. 조건은 name = 'kim';

다. itwill_member에서 이름이 kang이면서 나이가 30살 이상인 회원의 성별만 출력. 

select gender로 성별만 출력. 조건은 name = 'kang'과 age >= 30

라. 나이가 20살 미만 이거나 성별이 남자(M)인 회원의 이름과 주민번호 출력.

~면서 == and, ~거나 == or 

 마. name을 이름, jumin을 주민번호로 바꿔 출력.

as(alias) 써서 변경 가능.

반응형

'개발(Web) > DB' 카테고리의 다른 글

[Oracle] JOIN  (0) 2020.07.10
[Oracle] SQL Developer 사용하기  (0) 2020.07.10
[MySQL] MySQL 설치 (2)  (0) 2020.07.02
[MySQL] MySQL 설치 (1)  (0) 2020.07.02
[Oracle] GROUP BY절과 HAVING절  (0) 2020.06.30