2023.05.11 수업
교육을 들으며 기록한 내용입니다.
잘못된 내용이 있으면 댓글로 알려주시면 감사하겠습니다:)
◎ 테이블만들기 CREATE
* CREATE TABLE 테이블명 (
컬럼명 자료형(크기) [DEFAULT 기본값] [제약조건],
컬럼명 자료형(크기) [DEFAULT 기본값] [제약조건],
...
);
DROP TABLE IF EXISTS members CASCADE;
CREATE TABLE members (
memid VARCHAR(9) NOT NULL COMMENT '회원ID',
memname VARCHAR(20) NOT NULL COMMENT '회원명',
passwd VARCHAR(20) NOT NULL COMMENT '비밀번호',
passwdmdt TIMESTAMP NULL COMMENT '비밀번호 변경일시', -- 필수필드 아니라 NULL
jumin VARCHAR(14) NULL COMMENT '주민등록번호',
addr VARCHAR(100) NULL COMMENT '주소',
birthday DATE NULL COMMENT '생일',
jobcode CHAR(1) NULL COMMENT '직업코드',--리스트에서 선택하면 코드가 부여 됨
state CHAR(1) NOT NULL COMMENT '상태',
joindate TIMESTAMP NOT NULL DEFAULT now() COMMENT '가입일시',
PRIMARY KEY(`memid`) -- 컬럼이름 사용
);
SELECT * FROM members;
* DROP TABLE IF EXISTS members CASCADE;
테이블을 삭제하라
만일 테이블이 있다면
테이블명
관련 중첩된 모든 내용을
* COMMENT: 데이터베이스에서의 주석명령(컬럼의 설명문)
* TIMESTAMP : LONG형의 데이터 타입, 날짜와 시간까지 저장
* DATE : 시간이 없고 날짜만 저장
* DEFAULT : 아무것도 없으면 참조하라
- 작성 완료 했으면 저장하고 refresh(새로고침) 하면 테이블이 생성됨



* h2은 프로토콜으로 활용
실제는 내가 원하는 데이터베이스에서 만들기
● 데이터베이스 h2 업그레이드 버전으로 이용하기

1. 설정 : 파일로 만들고 url로 변경하면 편집이 가능해짐

2. edit connection 에서 test connection 설정하기

* 데이터타입
bigint 일렬번호 등에 활용
character 고정문자열
numeric 실수타입(소수점이하가 0 이면 정수로 표현?)
enum 기호상수
json 데이터를 외부와 교환할때 웹방식으로 함(rest API)
java_object 자바 기술(클래스)을 데이터베이스 안에 추가 - 데이터베이스가 확장 됨
* `` : 식별자 구분 (변수명 지정)
* '' : 상수
● DB 실습
* table은 클래스임 - 컬럼을 추가하지 않아도 생성이 됨
1. CREATE table `member_table` (); -캡
-> 빈 테이블 만들어짐
-> 구조(내용)은 컬럼이 만듦

2. DROP table if exists `member_table`;
- 테이블 지우기

● DB 구조 만들기
CREATE table `members`
drop table if exists `members`;
CREATE table `members` (
memid varchar(9) not null comment '회원ID',
memname varchar(20) not null comment '회원명',
passwd varchar(128) null default null comment '비밀번호',
addr varchar(100) null default null comment '주소',
birthday date null default null comment '생년월일',
jobcd char(1) null default null comment '직업코드',
mileage decimal (7, 0) null default 0 comment '마일리지',
enterdtm datetime not null default current_timestamp() comment '가입일시',
PRIMARY KEY(memid)
);
not null : 필수 입력 필드
null : 선택 입력 필드
comment : 주석, 설명
` ` 변수 , ' ' 상수
passwd : 변수
passwd varchar(128) null default null comment '비밀번호',
-> 해쉬 (단방향 해석)
default 값을 입력하지 않으면 null이 기본값이 됨
(참고) 실무에서 비밀번호는 not null으로 해야 함
decimal : 실수형 (MySQL - unsigned와 함께 사용)
numeric : 실수형
current_timestamp()
데이터베이스 라이브러리
- 날짜(밀리세컨드로 시간이 흐름)
※ 테이블 만들때 에러가 나면 한 줄씩 실행해보기
-sql은 위에서 아래로 가기 때문에
-primary키는 지우면 안 됨

※ SQL에서는
DML DDL을 분리하여 만들기
DML에서도 명령마다 별도로 분리하기(나중에 합쳐도 됨)
한 파일에 한다면 시간순으로 작성하고 주석을 달아서 구분해주기
* batch :한꺼번에 대량의 자료를 처리
● INSERT 작업
- 익스플로어 테이블 위에서 오른쪽 마우스 > SQL 명령 > INSERT > copy해서 새편집파일에 붙여넣기
구조(가독성을 위함)
INSERT INTO `members`
(컬럼들...)
values
(실제값들...);
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('hong1', '홍길동', '인천 동구', '2000-05-09', '2', 500, '2023-05-05 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('hong2', '홍길동', '서울 강남구', '1920-01-09', '9', 1000, '2023-05-01 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('kim1', '김길동', '인천 연수', '2003-05-09', '1', 100, '2022-05-05 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('lee1', '이기자', '서울 마포구', '2010-05-09', '7', 1500, '2023-04-05 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('seo1', '서강대', '서울 강북', '2009-05-09', '3', 5000, '2022-01-01 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('part3', '박대기', '경기 수원', '2019-05-05', '7', 1000, '2023-01-01 15:10:10');
INSERT INTO PUBLIC.members
(memid, memname, addr, birthday, jobcd, mileage, enterdtm)
VALUES
('part1', '박봄', '경기 성남', '2011-05-05', '5', 1200, '2020-01-01 15:10:10'),
('part2', '박군', '경기 일산', '2012-05-05', '5', 1400, '2021-01-01 15:10:10');
'백엔드 > 데이터베이스' 카테고리의 다른 글
데이터베이스 - 테이블 만들기 (0) | 2023.05.18 |
---|---|
데이터베이스 - 기본명령어 (0) | 2023.05.16 |
데이터베이스 - 명령어 (0) | 2023.05.15 |
데이터베이스 - 명령어 (0) | 2023.05.14 |
데이터베이스 설치 (0) | 2023.05.14 |