728x90
DBMS
- 데이터베이스 관리 시스템(DataBase Management System)
1. DBMS종류를 정하고 설치한다
(Oracle,MySQL,IBM의 DB2, SQL Server,MongoDB 등)
- 우리는 mysql를 서버 설치(구축)한다. http://oracle.com/
- mysql dbms를 관리하는 툴도 설치해준다. ( dbeaver,QueryBox,HeidiSQL 등)
https://www.heidisql.com/
2. mysql DBA(DB관리자) root로 로그인
세션 이름 = 아이디_DB명로 통일해준다
3. DB생성
create database DB명;
CREATE DATABASE dev42db;
4. 일반사용자 계정 생성
CREATE USER 'DB접속ID'@'%' IDENTIFIED BY 'DB접속PW';
%일경우 모든 서버에서 접근 허용
CREATE USER 'dev42id'@'%' IDENTIFIED BY 'dev42pw';
5. 접근권한 부여
GRANT 권한을 줄 목록 ON DB명.* TO 'db접속id'@'호스트'
GRANT select,insert,delect,update,create,drop,alter ON dev42db.* TO 'dev42id'@'localhost';
또는
GRANT ALL PRIVILEGES ON dev42db.* TO 'dev42id'@'%';
6. 변경된 내용 메모리에 저장
FLUSH PRIVILEGES;
7. 일반사용자 로그인
세션관리자에서 위에서 만든 DB에 접속한다.
8. table 생성
create table 테이블명( 컬럼이름 데이터타입 (제약_조건) );
create table tb_member(
m_id VARCHAR(10) NOT NULL PIRMARY KEY,
m_pw VARCHAR(10) NOT NULL,
m_level VARCHAR(10) NOT NULL,
m_name VARCHAR(20) NOT NULL,
m_email VARCHAR(80)
)DEFAULT CHARSET=euckr;
tb_member 테이블을 생성한다. 컬럼은 m_id,m_pw,m_level,m_name,m_email 5개고 모두 varchar 데이터타입을 가진다.
m_id는 기본키(primary key)로 중복값을 가질 수 없고 m_email을 제외한 컬럼들은 null값을 가질 수 없다.
더보기
데이터타입 | |
unsigned | 자료형 앞에 사용, 음수 부호를 표현할 수 있는 만큼의 수가 양수로 표현됨 |
tinyint | -127 ~ 128까지의 수 표현 가능, (unsigned 사용시 0~255) |
int | 약 -21억 ~ 21억 수 표현 가능, 정수형 표현에 많이 사용 (unsigned 사용시 0~약42억) |
double[a,b] | a,b 생략가능, a- 소수점 이하를 포함한 전체 자리수, b- 소수점 이하 자리수 지정 |
char(a) | 문자열 , a만큼 문자입력받음, 1~255개의 문자 입력 가능(입력 안할 시 기본값 1) |
varchar(a) | char과 비슷, 문자개수가정해지지 않고 가변적임, a는 문자의 최대길이 |
binary(a) | 길이가 a인 이진수 문자열, 길이는 a로 고정 |
varbinary(a) | binary와 비슷, 가변길이, a는 최대 길이 |
date | YYYY년 MM월 DD일 표시 |
time | HH시 MM분 SS초 표시 |
datetime | YYYY년 MM월 DD일 HH시 MM분 SS초 표시 |
TABLE 생성시 제약조건 | |
not null
|
null을 허용하지 않음
|
unique
|
중복된 값을 허용하지 않음
|
primary key
|
기본키, 항상 유일한 값을 가지도록 하며 비어있을 수 없다 (not null +unique)
|
foreign key
|
외래키, 참조 테이블의 컬럼 값이 존재할때만 허용
|
check
|
미리 설정해둔 값 이외의 값이 들어오면 오류띄움 , 조건(<,>,<=,>=,in 등)
|
defaulte
|
값을 입력하지 않으면 자동으로 저장되는 값 지정 |
방법 | |
1. 컬럼 방식
|
create table tb_member( m_id varchar(10) not null primary key); |
2. 테이블 방식
|
create table tb_member( m_id varchar(10) constraint pk_tb_member primary key(m_id) ); |
9. DML(데이터 조작어)
insert(입력) / update(수정) / delete(데이터 삭제) / select(조회) 할 수 있다
insert into 테이블명 values(컬럼 순서대로 값 넣기);
insert into tb_member values('id001','pw001','관리자','홍01','test01');
insert into tb_member values('id002','pw002','판매자','홍02','test02');
insert into tb_member values('id003','pw003','구매자','홍03','test03');
update tb_member set m_pw='3',m_level='3',m_name='삼길동',m_email='meail@' where m_id='id003';
delete from tb_member where m_id='id003';
select * from tb_member;
'{ "Hello World!" }; > DataBase' 카테고리의 다른 글
(DB) 데이터베이스 설계 (0) | 2022.01.14 |
---|---|
(DB) JOIN, UNION (0) | 2021.12.29 |
(DB) MySQL 내장 함수,연산자 (0) | 2021.12.29 |
(DB) 데이터 모델링, 관계형 데이터 모델 (0) | 2021.12.29 |
(DB) 데이터베이스, SQL (0) | 2021.12.23 |