나람지의 개발일기

D+5)22.09.28 본문

학원/DB

D+5)22.09.28

Naramji 2022. 9. 28. 13:09

-  파일열기 -

1. My SQL 열기

2. 오류메세지 뜨는건 무시(ignore)

3. File - 'open SQL Script' 눌러서 파일 오픈

4. 왼쪽의 스키마 클릭 - shopdb 눌러서 연결하기('shopbd'가 굵은글씨로 바뀌었는지 확인)

 

 

 

(기본 문법은 외워두기)

<p. 27>

● MySQL에서

   Schemas = Databases

 

● 데이터 설계(모델링), 운영하는 사람 = 개발자

 

 

 

<필요한 테이블설계>

[기본문법]

SQL> create table 테이블명

   ( 컬럼명1 데이터타입(컬럼사이즈),

      [컬럼명2 데이터타입(컬럼사이즈),

         컬럼명3 데이터타입(컬럼사이즈)] );

 

제약조건 테이블생성 하는데에 아주 중요함!

(UNIQUE)

- 테이블 설계할 때 제약조건 꼭 걸어줘야함

=> 아이디 여러개 만들어서 혜택 여러번 받으면 안되니까 주민번호 등으로 제한

 

(PRIMARY KEY)

-  보편적으로 테이블당 프라이머리 키 하나정도는 선언하고 만든다.

 

(FOREIGN KEY)

-  자식테이블에서 부모테이블의 데이터를 참조함

 

제약조건 입력할 때 한 칸 띄우기

 

( desc members; )

=> 내가 만든 구문을 확인할 때 사용(테이블을 제대로 만들었는지 확인)

=> 내가 만든 데이터 타입,제약조건 등 확인

 

 

 

p.27 2번예제 'products'

price0보다 커야함 ( price > 0 )

=>  ※ 데이터식 실행 먼저 하고 'desc products' 실행해야 실행됨

 

 

 

3번예제 'orders'

now : 오늘 날짜를 반환해주는 함수

 

 

- select : 출력해주는 함수

=> from절 : select랑 '짝'이다!

     단순한 계산, 함수가 없는데 함수출력을 위해 뭐라도 써야할 때는 dual 사용함 (= from dual;)

 

 

 

<Foreign key 선언하는 법>

 

1. 컬럼레벨문법

order_num int primary key, ... 

 

 

2. 테이블레벨문법

order_num int,

member_id int.

 ...,

primary key(order_num),   <= 컬럼명을 한번 더 명시 해줌

foreign key(member_id) references members(member_id),   => 자식테이블에서 foreign key 선언,

...,                                                                                                  부모테이블을 참조함(members의 member_id 컬럼참조)

 

 

 

※ MYSQL : pk(Primary key), uk(Unique) ,ck(Check), nn(Not Null)  -> 컬럼 레벨 문법(Not Null은 컬럼레벨문법만 쓸 수 있음, 다른건 그냥 권장)

 

※fk -> 테이블 레벨 문법

 

※ Foreign key(member_id) references members(member_id),

  *references : 참조할 번호테이블, 번호컬럼명 적어주면 됨

 

●부모테이블이 먼저 만들어져있어야 자식테이블 참조할 수 있다.

  => 자식테이블(order - member)에서 'foreign key' 지정하면 부모테이블(ex:member_id) 에 참조 

 

 

 

 

p.28

 

1. AUTO_INCREMENT

 - 자동으로 1부터 시작해서 1씩 증가하는 값을 반환해주는 속성

   => ex) 게시글 

 - primary key 또는 unique 제약조건이 지정된 컬럼만 auto_increment 속성을 활용할 수 있다.

 - auto_increment 속성은 숫자 형식의 데이터 타입에만 활용 가능하다.

 - auto_increment 속성이 지정된 컬럼은 insert 작업 시 null값을 지정하면 자동으로 값이 입력 된다.

    = > 비워놓으면 알아서 삽입됨

 - pk, uk 제약조건이 선언된 숫자형식의 컬럼에만 사용 가능함.
 - 시작 값 또는 증가 값을 변경하고 싶은 경우에는 테이블 생성 후 테이블 수정 구문(alter table)으로 변경 가능하다.

   =>  (2,3,..100,200 등...)

 

[문법]

SQL> create table 테이블명

          (컬럼1 int auto_increment primary key,   => pk나 uk도 같이 선언해줘야함 / auto_increment를 pk 앞에 씀

 

[문법]

// 증가값(증가 사이즈) 변경 (default = 1)

SQL> set @@auto_increment_increment=증가값;  => 감소하는값:증가값에 ' - ' 붙이면 됨

 

 

 

 

 

 

2. 데이터 삽입

 

1. 테이블의 데이터 변경을 위한 SQL문

• 데이터 조작어(DML : Data Manipulation Language)

 - insert : 데이터 삽입

 - update : 데이터 수정

 - delete : 데이터 삭제

 

 

[기본문법]

insert into 테이블명[(컬럼1, 컬럼2, 컬럼3, ...)]       =>  [ ](대괄호)는 생략가능함

values (값1, 값2, 값3, ...);

 

 

2. 데이터 삽입 : INSERT

컬럼리스트을 지웠으면 value절 뒤에 기본컬럼 적어주면 됨

※ex) insert into members

         values (100, '홍길동', '1991-12-30', '학생', '010-1111-1111', '부산 부산진구 부전동');

 -> 문자, 숫자 값을 '리터럴 값'이라고 한다.

 -> 문자, 숫자 값에는 작은따옴표로 묶어서 작성해줘야함

 -> 날짜는 '년-월-일' 순서로 작성 해줘야함

 

※ 테이블의 컬럼 순서는 테이블생성 하고나서 변경불가

 

※ Select * 에서

* 아스타(ALL) : 모든 컬럼을 다 의미하는 것

 

select *

from members;

=> members의 값을 전부 선택해서 보여달라는 것

 

 

※ insert의 '칼럼값'이랑 'values'랑 개수가 같아함

 

 

< 칼럼순서가 기억나지 않을 때 - 컬럼 갯수는 알고 있을 경우>

 

insert into members (member_id, job, birth, member_name, address, phone)
values (100, '학생', '2001-12-25', '홍길동', '부산, '010-1111-1111');  

 

 

 

 

 

 

 

 

 

 

 

 

'학원 > DB' 카테고리의 다른 글

D+24)22.10.28  (0) 2022.10.28
D+19)22.10.21  (0) 2022.10.22
D+18)22.10.20  (0) 2022.10.20
D+6)2022.09.29  (0) 2022.09.29
D+4)22.09.27 - DB 수업  (0) 2022.09.27