일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 가상컴퓨팅
- BFS
- javascript
- cloud computing
- 코딩테스트
- Java
- spring
- 코테
- generic class
- sql
- 암호학
- JDBC
- JPA
- Stack
- 알고리즘
- 자료구조
- 생성자
- dfs
- jsp
- data structure
- 크루스칼
- Queue
- dbms
- Algorithm
- 클라우드 컴퓨팅
- python
- 자바의정석
- MVC
- 공개키 암호화
- DB
- Today
- Total
PLOD
SQL QUERY [DDL, DML] 본문
SELECT 구문을 설명 할 때 이야기 했지만 SQL 쿼리문을 사용하는 이유는 사용자가 DBMS를 이해할 수 있게 하고 편리하게 사용할 수 있게 해준다. 데이터 베이스는 서비스를 하는 프로젝트라면 무조건 사용되는 것이다. SQL은 관계형 데이터 베이스를 다루는데 쓰이는 표준화된 언어이다. 따라서 개발자라면 SQL을 알고 있어야 한다.
쿼리문은 어떤 것을 제어하느냐에 따라 데이터베이스 정의문(DDL), 테이블 제어문(DML), 데이터 제어문(DCL) + 트랜잭션 제어(TCL)으로 나눌 수 있다.
1. 쿼리문 생성 및 삭제(SHOW, CREATE, DROP, DELETE ,TRUNCATE)
1) DROP 문
DROP TABLE (테이블 명) PURGE;
2)CREATE 문
CREATE (테이블 명) (컬럼과 컬럼 규칙);
3) DELETE 문
DELETE FROM (테이블 명) WHERE (삭제할 행 조건)
* DELETE는 특정 행을 삭제하고 싶을 때 사용한다. DROP과 TRUNCATE는 테이블 자체를 삭제하고 싶을 때 사용한다.
--테이터 베이스 생성
CREATE DATABASE DEPT;
-- DEPT 테이블 복사
CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT;
-- 모든 데이터베이스 조회
SHOW TABLE STATUS;
--데이터베이스 삭제(데이터베이스가 존재할 때)
DROP DATABASE IF EXISTS DETP;
--테이터 베이스 다시 생성
CREATE DATABASE userdb CHARACTER SET utf8 COLLATE utf8_general_ci;
USE userdb;
--테이블 생성
CREATE TABLE usertbl;
--테이블 삭제(상황에 맞게 3개중 1택)
--DROP: 테이블 자체가 필요없을 떄 테이블 구조까지 다 삭제
DROP TABLE usertbl
--TRUNCATE : 테이블 구조는 남기고 싶을 떄 사용, 데이터를 모두 삭제한다.
TRUNCATE TABLE usertbl;
--DELETE : DROP가 같은 효과, 속도가 느리다.
DELETE FROM usertbl;
--user 테이블 생성
USE userdb;
CREATE TABLE usertbl(
--기본키 설정 및 NOT NULL 설정
userID VARCHAR(8) NOT NULL PRIMARY KEY,
name VARCHAR(10) NOT NULL,
birthYear INT NOT NULL,
addr CHAR(2) NOT NULL,
mobile1 CHAR(3) NOT NULL,
mobile2 CHAR(8) NOT NULL,
height SMALLINT NOT NULL,
mDate INT NOT NULL,
);
--buy 테이블 생성
CREATE TABLE buytbl(
--기본키 설정 및 NOT NULL, AUTO_INCREMENT 설정
num VARCHAR(8) AUTO_INCREMENT NOT NULL PRIMARY KEY,
userID CHAR(8) NOT NULL,
prodName CHAR(6) NOT NULL,
groupName CHAR(4) NOT NULL,
price INT NOT NULL,
amount SMALLINT NOT NULL,
--외래키 설정
FORIEIGN KEY (userID) REFERENCES usertbl(userID);
);
2. 데이터 삽입 , 변경(INSERT , ALTER, UPDATE)
1) INSERT믄
INSERT INTO (테이블명) VALUES (컬럼에 들어갈 값을 생성규칙에 맞게 삽입한다.)
2)UPDATE문
UPDATE (테이블 명) SET (바꿀 컬럼과 컬럼 값) WHERE (바꿀 컬럼 조건);
3) ALTER
ALTER는 테이블 안에 있는 내용을 바꾸는 UPDATE와 달리 스키마의 정보를 바꾸는 명열어 이다
ALTER는 열이름을 변경하는RENAME과 열의 자료형을 변경하는 MODIFY , 특정 열을 삭제 할 때 사용하는 DROP 이 있다.
* H1 DBMS 에서는 ALTER TABLE (테이블 명) ALTER COLUMN (컬럼 명) VARCHAR(13):를 사용한다
USE userdb;
-- usertbl 데이터 삽입
INSERT INTO usertbl VALUES('LSG','이승기',1987,'서울','1111111'182,'2008-8-8');
--usertbl의 name이 이승기인 데이터 값 변경
UPDATE usertbl SET height = 183 , mDate = 2008-8-7 WHERE name = "이승기";
--usertbl의 열 이름 변경
ALTER TABLE usertbl RENAME COLUMN sal TO amount;
--usertbl의 amount 자료형 변경(크기 변경 가능)
ALTER TABLE usertbl MODIFY amount number(10);
--usertbl의 amount 컬럼 삭제
ALTER TABLE usertbl DROP COLUMN amount;
--buytbl 데이터 삽입
INSERT INTO buytbl VALUES(NULL,'EJM','책','서적',30,2);
--buytbl의 prodName이 책인 데이터 변경
UPDATE buytbl SET price = 35 , amount = 5 WHERE prodName = "책";
--권한 부여/삭제/변경
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY(컬럼);
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY(컬럼) REFERENCES 참조테이블(참조컬럼)
ALTER TABLE 테이블명 MODIFY 컬럼명 CONTRAINT 제약조건명 NOT NULL;
'개발 공부 > Database' 카테고리의 다른 글
[DB Modeling] Re-introduction to Database (0) | 2022.10.25 |
---|---|
SQL QUERY [JOIN] (0) | 2022.09.25 |
SQL QUERY [SELECT] (0) | 2022.09.23 |
[DB] 데이터베이스의 정의와 용어 (0) | 2022.09.23 |
[DB]DB와 DBMS (0) | 2022.09.23 |