나람지의 개발일기
D+5)22.09.28 본문
- 파일열기 -
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'
- price 는 0보다 커야함 ( 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
※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 |