-
[포스코x코딩온] 데이터베이스(SQL문(DDL,DML,DCL)[포스코x코딩온] 웹개발자 풀스택 부트캠프8기 2023. 8. 4. 23:01728x90
데이터베이스
기본적인 명령어
- 데이터베이스 목록 보기
- SHOW DATABASES;
- 데이터베이스 이용하기
- USE 데이터베이스명;
- 테이블 목록 보기
- SHOW TABLES;
- 테이블 구조 보기
- DESC 테이블명;
SQL문에 대해 자세히 알아보자
SQL문
- Structured Query Language
- 구조적 질의 언어
- 데이터베이스를 제어하고 관리할 수 있는 목적의 프로그래밍 언어
- DDL(Data Definition Language)
- DML(Data Mainpulation Language)
- DCL(Data Control Language)
- 데이터 형식
- 문자형
- CHAR(n): 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 공백으로 채워진다.
- VARCHAR(n): 가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 채우지 않는다.
- TINYTEXT(n): 문자열 데이터 타입(최대 255byte)
- TEXT(n): 문자열 데이터 타입(최대 65535byte)
- MEDIUMTEXT(n): 문자열 데이터 타입(최대 16777215byte)
- LONGTEXT(n): 문자열 데이터 타입(최대 4294967295byte)
- 숫자형
- TINYINT(n): 정수형 데이터 타입(1byet) -128~ +127 또는 0 ~255수 표현 가능
- SMALLINT(n): 정수형 데이터 타입(2byet) -32768~ +32767 또는 0 ~655536수 표현 가능
- MEDIUMINT(n): 정수형 데이터 타입(3byet) -8388608~ +8388607 또는 0 ~16777215수 표현 가능
- INT(n): 정수형 데이터 타입(4byet) -2147483648~ +2147483648 또는 0 ~4294967295수 표현 가능
- BIGINT(n): 정수형 데이터 타입(8byte)= 무제한 수 표현 가능
- FLOAT(길이, 소수): 부동 소수형 데이터 타입(4byte)- 고정 소수점을 사용 형태
- DECIMAL(길이, 소수): 고정 소수형 데이터 타입고정(길이+1byte) - 소수점을 사용 형태
- DOUBLE(길이, 소수): 부동 소수형 데이터 타입(8byte) -DOUBLE을 문자열로 저장
- 날짜형
- DATE: 날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)
- TIME: 시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)
- DATETIME: 날짜와 시간 형태의 기간 표현 데이터 타입(8byte)
- TIMESTAMP: 날짜와 시간 형태의 기간 표현 데이터 타입(4byte)- 시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.
- 문자형
DDL
- 데이터베이스나 테이블을 정의하는 언어
- CREATE
- 데이터베이스 만들기 + 한글 인코딩
- CREATE DATABASE 이름 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- 테이블 만들기
- CREATE TABLE 테이블명(필드1 값(데이터)형식, 필드2 값(데이터)형식 );
- 형식에 auto_increment를 사용하면 인덱스 번호가 자동으로 증가 된다.
- 데이터베이스 만들기 + 한글 인코딩
데이터베이스 생성, 확인 및 이동 테이블 생성 및 확인 - ALTER
- 테이블의 특정 컬럼(열)을 삭제하거나 추가, 변경할 때 사용하는 명령어
- 컬럼 삭제
- ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
- 컬럼 추가
- ALTER TABLE 테이블명 ADD 컬럼명 타입;
- 컬럼 속성 변경
- ALTER TABLE 테이블명 MODIFY 컬럼명 타입;
컬럼 추가 컬럼 속성 변경 컬럼 삭제 - DROP
- 테이블 삭제하기
- 테이블을 잘못 만들었거나 더 이상 필요 없는 경우
- DROP TABLE 테이블명;
- TRUNCATE
- 테이블 초기화하기(테이블의 모든 행(row) 일괄 삭제)
- TRUNCATE TABLE 테이블명;
DML
- 데이터베이스의 내부 데이터를 관리하기 위한 언어
- CRUD
- 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 처리 기능
- SELECT : 검색
- SELECT * FROM 테이블명; (*은 모든 컬럼을 가져와라)
- SELECT *FROM 테이블명 WHERE 필드1 = 조건값1;
- SELECT *FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC; (조건에 맞는 조건을 오름차순으로 정렬)
- SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC; (필요한 필드만 가져옴)
- SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC LIMIT 개수; (가져오는 데이터 수 제한)
- SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC LIMIT 개수 offset 숫자; (숫자만큼 뛰어넘고 출력)
- WHERE절
- 비교연산자
- =, >, >=, <, <=
- 부정연산자
- !=, ^= (같지 않다.), <> (같지 않다) , NOT 컬럼명= (~와 같지 않다.)
- SQL 연산자
- BETWEEN a AND b : a와 b의 값 사이에 있으면 참(a와 b값도 포함)
- IN (list) : 리스트에 있는 값 중에서 어느 하나라도 일치하면 참
- LIKE “비교문자열” : 비교문자열과 형태가 일치하면 사용(%,_ 사용)
- %: 0개 이상의 어떤 문자
- _ : 1개의 단일문자
- IS NULL : NULL 값이 경우 true, 아니면 false
- 논리 연산자
- AND, OR, NOT
- 비교연산자
데이터 조회 - INSERT : 추가
- INSERT INTO 테이블명 (필드1, 필드2, 필드3) VALUES (값1, 값2, 값3);
- INSERT INTO 테이블명 VALUES(값1, 값2, 값3); //필드를 명시하지 않을 때는 테이블의 모든 컬럼에 값을 추가할 때만 사용할 수 있다.
데이터 추가 - UPDATE : 수정
- UPDATE 테이블명 SET 필드1=값1 WHERE 필드2=조건2;
- DELETE : 삭제
- DELETE FROM 테이블명 WHERE 필드1=값1;
- WHERE절 꼭 써서 테이블 전체가 삭제되는 걸 방지..!
DCL
- 관리자가 데이터으 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어
- COMMIT, ROLLBACK, GRANT, REVOKE
- COMMIT
- 데이터베이스 내의 연산이 성공적으로 종료되어 연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어
- COMMIT;
- ex) UPDATE 학생 SET 연락처='232-0077' WHERE 성명='김길동';
- COMMIT;
- UPDATE 명령에 의해 수행한 연산 결과를 정상적으로 종료하고, 그대로 유지하겠다는 의미가 된다.
- ROLLBACK
- 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행이 되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소하는 명령어
- ROLLBACK;
- ex) DELETE FROM 학생 WHERE 성명='최길동';
- ROLLBACK;
- [학생]테이블에서 최길동 학생의 자료를 삭제했지만 ROLLBACK명령에 의한 연산이 취소되어 삭제된 자료가 다시 되살아난다.
- GRANT
- 관리자가(DBA) 사용자에게 데이터베이스에 대한 권한을 부여하기 위한 명령어
- GRANT 권한 내용 ON 테이블_이름 TO 사용자[WITH GRANT OPTION];
- 관리자가 사용자에게 테이블에 대한 권한을 부여한다.
- WITH GRANT OPTION: 사용자가 관리자로부터 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한 부여권까지 부여하고자 할 때 사용하는 옵션
- REVOKE
- 관리자(DBA)가 사용자에게 부여했던 권한을 취소하기 위해 사용되는 명령어
- REVOKE 권한 내용 ON 테이블_이름 FROM 사용자 [CASCADE];
- 관리자가 사용자에게 부여했던 테이블에 대한 권한을 취소
- CASCADE: 사용자가 다른 사용자에게 권한을 부여했을 경우 CASCADE 옵션을 이용해 사용자의 권한을 취소하면 사용자가 부여했던 다른 사용자들의 권한도 연쇄적으로 취소된다.
728x90'[포스코x코딩온] 웹개발자 풀스택 부트캠프8기' 카테고리의 다른 글
[포스코x코딩온] MySQL과 연동하고 MVC 패턴을 적용하여 회원가입, 로그인, 회원정보 수정 및 탈퇴 기능구현 (1) 2023.08.09 [포스코x코딩온] MVC패턴(데이터베이스X) (1) 2023.08.05 [포스코x코딩온] 데이터베이스(DBMS 기본, MySQL 설치) (0) 2023.08.03 [포스코x코딩온] 동적form전송, 파일 업로드 실습 (0) 2023.08.03 [포스코x코딩온] 파일업로드(multer, Axios 동적 파일 업로드) (0) 2023.08.02 - 데이터베이스 목록 보기