티스토리 뷰

반응형

데이터 베이스 기초적인 부분을 정리해 보았다

SQL언어가 익숙해지면 테이블 생성하고 조작하는건 어느정도 감이 잡힐 것 같다 ^^...

 

 

 

 

◾ 데이터베이스(DB)

데이터를 구조적으로 모아둔 데이터 저장소

 

 관계형 데이터베이스(RDB)

데이터를 열과 행을 가진 테이블 형태로 표현하며 구조적으로 데이터를 관리함

 

관계형 데이터베이스 관리시스템(RDBMS) 데이터 매니지먼트 시스템

데이터베이스에 데이터를 접근할 수 있게 해주는 도구가 DBMS

주요기능은 데이터 추가, 수정, 삭제, 조회, 무결서 유지, 트랜젝션 관리, 백업 및 복원 등이 있음

오라클, MySQL 등

 

 

 


 

◾ SQL 

RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

어플리케이션(java, php등)이 SQL로 DBMS에 데이터를 요청함

 

◾ SQL 문법 종류

- 데이터 정의 언어(DDL) : CREATE, DROP, ALTER

- 데이터 조작 언어(DML) : SELECT, INSERT, UPDATE, DELETE *가장 많이 다룸

- 데이터 제어 언어(DCL) : GRANT, REVOKE

 

데이터 조작 언어를 CRUD 라고도 함

CRUD (CREATE READ UPDATE DELETE)

이름 조작 SQL
Create 생성 INSERT
Read 읽기 SELECT
Update 갱신 UPDATE
Delete 삭제 DELETE

 


◾ MySQL 설치

https://dev.mysql.com/downloads/mysql/

mysql 설치 후 cmd에서 mysqul 설치되어있는 경로로 들어간후 mysqul -u root -p 실행

경로는 로컬디스크(c:) - 프로그램파일 - mySQL - 이 순서로 들어가서 주소 복사하고 cmd 창에 복붙

 

 

 

 

 

◾ 공통 명령어

# 데이터베이스 목록보기
SHOW DATABASES;

# 데이터베이스 사용하기
USE 데이터베이스명;

# 데이터베이스 목록보기
SHOW TABLES;

# 데이터베이스 구조보기
DESC 테이블명;

 

 

 

 

DDL

 

 

CREATE - 데이터베이스, 테이블 생성

CREATE DATABASE [DB_NAME];
CREATE TABLE [TABLE_NAME] ([COLUMN_NAME][DATA TYPE]);
CREATE DATABASE test_db;

CREATE TABLE test_tb(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
	name VARCHAR(20) NOT NULL, age INT NOT NULL, 
	birthday DATE NOT NULL
);

*PRIMARY KEY - 고유한 식별자

*NULL 값이 기본값이므로 필요시 NOT NULL 넣어야함, MODIFY로 수정할때도 넣어줘야함!

*AUTO_INCREMENT 자동으로 1씩 증가(테이블 만들고 insert 할때 id값 넣지 않아도 자동으로 1이 시작된다)

 

 

 

 

 

DROP - 데이터베이스, 테이블 삭제 *삭제하면 예/아니오 물어보지 않아서 주의해야함

DROP TABLE 테이블명;

 

 

 

 

 ALTER - 테이블의 특정 컬럼을 추가, 변경, 삭제할 때 사용하는 명령어

#1. 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

#2. 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 타입;

#3. 컬럼 속성 변경
ALTER TABLE 테이블명 MODIFY 컬럼명 타입;
*수정할때도 NULL이 기본값이라서 NULL값 잘 확인해야됨!
*primary key인 경우 각 행을 고유하게 식별하는 역할을 수행하기 때문에 항상 유효한 값이 들어와야 되므로 null을 허용하지 않음

 

 

 


DML

 

 

INSERT - 데이터 삽입

INSERT INTO [TABLE_NAME] ([COLUMN1]...) VALUES([DATA1]...);
INSERT INTO test_tb (seq, name, email) values(1, '가나다', 'SDF@SDFSF');

* values에 여러개 한번에 INSERT 할 수 있음

values(1, '가나다', 'SDF@SDFSF'), (2,'라마바','SDFS@SF'), (3,'사아자','SDFS@SF')

 

 

 

 

SELECT - 데이터 조회 *제일 많이 사용

SELECT [COLUMN1] FROM [TABLE] WHERE [CONDITION];
// test_tb의 모든 컬럼명 조회하겠다
SELECT * FROM test_tb 

// text_tb 테이블에서 name, age의 컬럼값을 조회하겠다
SELECT name, age FROM test_tb;

//text_tb 테이블에서 id가 admin인 사용자에 대해서만 name, age 컬럼값을 조회하겠다
SELECT name, age FROM test_tb WHERE id="admin"

 

 

 

 

UPDATE - 데이터 수정

*UPDATE는 FROM절이 없음, 대부분 WHERE(조건)을 사용(전체데이터 일괄적으로 수정할때 제외하곤)

UPDATE [TABLE] SET [COLUMN1]=[DATA1] WHERE [CONDITION];
//text_tb라는 테이블에서 name이 kimhongsam인값의 age를 35로 바꾸겠다.
UPDATE test_tb SET age=35 WHERE name="kimhongsam";

*만약 WHERE문이 없다면 test_tb 테이블의 모든 age 값이 35로 바껴버림

 

 

 

 

DELETE - 데이터 삭제

*반드시 WHEREH(조건) 줘야함, 안주면 테이블 전체 삭제되어 버림~

DELETE FROM [TABLE] WHERE[CONDITION];
 //test_tb 테이블에서 name이 kimhongsam인 데이터를 삭제하겠다
DELETE FROM test_tb WHERE name="kimhongsam";

*만약 WHERE문이 없다면 test_tb 테이블 전체가 삭제 되어버림 주의!

 

 

 

 


Where절 연산자들

 

 

◾ BETWEEM a AND b

 

 

 

◾ IN 연산자

or 연산자와 같은 의미 *IN 연산자가 속도가 더 빨라서 추천

[컬럼/값] IN (값1, 값2...)
//MEMBER 테이블에서 id가 admin인 레코드와 id가 guest인 레코드의 NAME, HOBBY를 출력해라
SELECT name, hobby FROM member WHERE id in('admin','guest');

* id='admin' or id='guest'와 같은 의미 

 

 

 

 

◾ NOT IN 연산자

제외

[컬럼/값] NOT IN (값1, 값2...)
//id가 admin인 레코드와 id가 guest인 레코드를 제외하고 출력해라
SELECT name, hobby FROM member WHERE id not in('admin','guest');

 

 

 

 

◾ LIKE 연산자

비교 문자열과 형태가 일치하면 사용

ex)네이버 연관 검색 기능, 특정 이메일 찾기 기능

% : 모든 단어 ex) id like 'ad%' // ad로 시작하는 모든 단어

_ : 1개의 단일 단어 ex) id like 'admi_' // 5글자에서 admi로 시작하는 하나의 단어
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '원하는 문자 %';
//customer2 테이블에서 id가 ap로 시작하는 사용자 출력
SELECT * FROM customer2 WHERE id LIKE 'ap%';


//customer2 테이블에서 email이 네이버인 사용자 출력
SELECT * FROM customer2 WHERE email like '%@naver.com' ;

*◾ ILIKE 연산자 : 대소문자 무시해줘서 like보다 많이 씀

 

 

 

 

내림차순, 오름차순, LIMIT

 

◾ 내림차순(DESC), 오름차순(ASC)

ORDER BY와 함께 사용되며 특정 열을 기준으로 정렬, *생략시 기본값은 오름차순(ASC)

//id 기준 내림차순으로 출력
SELECT * FROM member ORDER BY id DESC;

 

 

 

 

◾ LIMIT 

행의 갯수 제한

//id 기준으로 내림차순 4개 출력
SELECT * FROM member ORDER BY id LIMIT 4;

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
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 31
글 보관함