데이터베이스와 테이블을 생성하기 위해 프롬프트창을 사용할 수도 있지만 그래픽유저인터페이스를 사용할 수 있다. 그래픽유저인터페이스는 maria db를 설치하면 자동으로 생성되는 HeidiSQL을 사용하면 된다.
위는 HeidiSQL을 이용해 데이터베이스를 생성하는 방법이다.
위는 테이블을 생성하는 방법이다.
프롬프트와 HeidiSQL의 테이블 만드는 방법을 비교해보았다.
그래픽유저인터페이스 사용한다면 편할 순 있지만 프로그래머라면 쿼리문을 입력하는 것이 좋다고 한다.
테이블 생성
형식) create table 테이블명(칼럼명 자료형,....제약조건)
테이블 삭제
형식) drop table 테이블명
<활용>
CREATE TABLE ex(NO INT, NAME VARCHAR(10));
CREATE TABLE ex (NO INT, NAME VARCHAR(10)) ROW_FORMAT = COMPRESSED;
-- COMPRESSED는 압축 / 메모리를 절약할 수 있지만 속도가 떨어짐
SHOW TABLES; -- 테이블 보기
SHOW TABLE STATUS FROM test;
DROP TABLE ex; -- 테이블 제거
CREATE TABLE ex(NO INT PRIMARY KEY, NAME VARCHAR(10) NOT NULL,
tel VARCHAR(15), inwon INT, addr TEXT);
CREATE TABLE ex(NO INT PRIMARY KEY, NAME VARCHAR(10) NOT NULL,
tel VARCHAR(15), inwon INT, addr TEXT) CHARSET=UTF8; -- 입력자료 한글이 깨질 경우
-- 참고 : inwon int(3) zero fill 하면 4byte 확보 (int는 원래 4byte)
-- 자료 입력시 value로 5를 주면 005로 입력 된다. (앞에 0으로 채워줘야함)
-- primary key는 not null이어야함 null이면 중복될 수 있기 때문
DESC ex; -- 구조 보기
출력
자료 추가
형식) insert into 테이블명(칼럼명,...) values(값1, 값2...)
자료 수정
형식) update 테이블명 set 칼럼명 = 수정값,... where 조건 자료 삭제
자료 삭제
형식) delete from 테이블명 where 조건 -- 부분 레코드 삭제 가능
형식) truncate 테이블명 -- 전체 자료 삭제만 가능, 부분 레코드 삭제 불가
DELETE FROM ex WHERE NO=3; -- 부분 레코드 삭제
<활용>
자료 추가
INSERT INTO ex(NO,NAME,tel,inwon,addr) VALUES(1,'홍길동','111-1111',5,'역삼1동123');
-- VALUES('1','홍길동','111-1111','5','역삼1동123'); 숫자도''둘러줘도 됨 하지만 문자는 무조건 ''쓰기
-- SQL문은 어차피 자바에서 문자열 처리 되기 때문
SELECT FROM ex;
INSERT INTO ex VALUES(2,'신길동','111-1234',2,'역삼2동123'); -- 자료 같으면 칼럼명 생략가능
INSERT INTO ex (NO,NAME,addr) VALUES(3,'한송이','서초동111'); -- 자료의 순서나 개수가 다르면 칼럼명 쓰기
INSERT INTO ex (addr,NO, NAME) VALUES('신사동111',4,'한국인');
SELECTFROM ex; -- ex table 자료 다 보여줌
INSERT INTO ex (NO,NAME) VALUES(1,'가나다'); -- error : no는 중복자료 불가
INSERT INTO ex (NO,addr) VALUES(5,'신림동111'); -- error : name은 not null
INSERT INTO ex (NO,name) VALUES(5,'박차고나온놈이너무예뻐미치것네'); -- error : name은 10자리까지 허용
SELECT*FROM ex WHERE NO =3; -- no가 3인 자료만 보여줌
출력
자료 수정
UPDATE ex SET inwon = 12 WHERE NO=1;
UPDATE ex SET inwon = 8, addr = '행당3동 12' WHERE NO=2;
UPDATE ex SET inwon = '123', addr = '행당3동 12' WHERE NO=2;
UPDATE ex SET inwon = null WHERE NO=1;
UPDATE ex SET inwon = 12 WHERE NO=1; -- 오류 : no가 88인 레코드는 없음
UPDATE ex SET NAME = '박차고나온놈이너무예뻐미치것네' WHERE NO=88; -- error : 길기 때문
UPDATE ex SET NAME = null WHERE NO=1; -- error : name은 not null
UPDATE ex SET NO = 10 WHERE NO=1; -- 비권장 : primary key 값은 수정하지 않는 것이 좋음
SELECT* FROM ex;
출력
자료 삭제
-- 형식) delete from 테이블명 where 조건 -- 부분 레코드 삭제 가능
-- 형식) truncate 테이블명 -- 전체 자료 삭제만 가능, 부분 레코드 삭제 불가
DELETE FROM ex WHERE NO=3; -- 부분 레코드 삭제
DELETE FROM ex; -- 전체 레코드 삭제, 복구 가능
TRUNCATE TABLE ex; -- where 조건 불가능, 복구 불가능
SELECT*FROM ex; -- 구조만 남음
DROP TABLE ex;
SHOW TABLES;
-끝-