자료 출력하기
select * → 전체
from city
select id, name
from city
select *
from city
where 조건문;
hostname : 접속한 DBMS가 있는 IP입력
127.0.0.1 → 자기 자신 IP
[Edit] - [Preferences] - 왼쪽 [SQL Editor] 클릭
오른쪽 하단 [Safe Updates] 체크 해제 후 OK
- 이유 : 원활한 update와 delete를 위함
- 첫번째 번개 : 패드에 있는 모든 구문을 전체 실행
- 커서 번개 : 커서가 있는 라인의 커리구문만 실행 → 단축키 : ctrl + enter
emloyees, hr 샘플 파일
employees.sql
create database employees;
create table---;
create table---;
insert----;
insert----;
hr.sql
create database hr;
create table --- ;
create table ---;
insert ----;
디렉토리 변경 후 mysql 접속 후
sql 파일 실행하기
- cd : change 디렉토리
- source : sql 스크립트 파일 실행하는 명령어
hr.qsl 파일 열어서 첫번째 번개 버튼 눌려 전체 실행하면 DB 생성됨
- 데이터베이스 = 스키마(schema)
- 객체(object) - "table", view, index
- 데이터 하나하나 : 필드값, 레코드값
용어 | 설명 |
---|---|
데이터베이스(DB) | 조직화된 정보들의 모음 또는 데이터 집합. 데이터베이스는 고유한 이름을 가져야 함. |
DBMS | Database Management System(데이터베이스 관리 시스템)의 약자로 데이터베이스를 관리하는 시스템 또는 프로그램. DBMS의 종류로 Oracle, MySQL, SQL Server, MariaDB 등이 있음. |
테이블(Table) | 데이터베이스 내에서 데이터를 저장할 때 가장 많이 사용하는 객체 유형. 열(column)과 행(row)로 이루어져 있음. |
객체(Object) | 사람, 사물, 장소, 개념, 사건과 같은 유무형의 정보를 가지고 있는 독립적인 실체. 객체 종류는 테이블, 뷰, 인덱스 등이 있음. 데이터베이스 내에서 가장 많이 사용되는 객체는 테이블임 |
열(column) | 컬럼 또는 속성(Attribute)이라고도 함. 테이블에서 세로 부분을 의미하며, 하나의 테이블은 여러 개의 열(column)으로 구성되어 있음. |
열 이름(column name) | 각 열(column)을 구분하기 위한 이름. 열이름 또는 컬럼명은 테이블 내에서 고유해야 함. |
행(row) | 로우 또는 레코드라고도 함. 테이블에서 가로에 해당하는 데이터 전체를 의미함 |
SQL | 사람과 DBMS가 소통하기 위해 사용하는 언어. |
기본키(Primary key) | 테이블의 행을 구분해 줄 수 있는 대표 컬럼에게 부여하는 제약 조건. 기본키가 설정된 컬럼에는 중복값, 빈값 들어올 수 없음. |
외래키(Foreign key) | 테이블과 테이블을 연결해 주는 제약조건. |
스키마(Schema) | DBMS들마다 스키마의 의미는 다르게 사용되고 있음. 스키마란 데이터를 담는 그릇을 의미함. MySQL – 스키마가 데이터베이스와 동일한 의미로 사용됨. Oracle – 스키마가 유저와 동일한 의미로 사용됨. |
create database 데이터베이스명;
create schema 스키마명;
<순서>
1. DB 생성
2. table 생성
3. 데이터 삽입/수정/삭제
4. 데이터 조회
DB 생성
create schema shopdb;
table 생성
생성 전 설계부터 하기
[문법] SQL> create table 테이블명 (컬럼명1 데이터타입(컬럼사이즈), [컬럼명2 데이터타입(컬럼사이즈), 컬럼명3 데이터타입(컬럼사이즈)]); |
[문법] SQL> create table 테이블명 (컬럼명1 데이터타입(컬럼사이즈) default 기본값, [컬럼명2 데이터타입(컬럼사이즈), 컬럼명3 데이터타입(컬럼사이즈)]); |
[문법] SQL> create table 테이블명 (컬럼명1 데이터타입(컬럼사이즈) 제약조건유형, [컬럼명2 데이터타입(컬럼사이즈), 컬럼명3 데이터타입(컬럼사이즈)]); |
숫자 데이터 타입
✔ SMALLINT : 정수형 데이터 타입(2 byte)
-32,768 ~ 32,767
✔ INT : 정수형 데이터 타입(4 byte)
-2,147,483,648 ~ 2,147,483,647
✔ BIGINT : 정수형 데이터 타입(8byte)
무제한 수 표현 가능
✔ FLOAT(p) : 부동 소수형 데이터 타입(4 byte)
소수점 아래 7자리까지 표현 가능
문자데이터 타입
✔ CHAR(n) : 고정 길이 문자형
n : 1~255 byte까지 지정 가능
✔ VARCHAR(n) : 가변 길이 문자형
n : 1~65,535 byte까지 지정 가능
✔ LONGTEXT : 대용량 문자열 데이터 타입
✔ LONGBLOB : 대용량 바이너리 데이터 타입, 이미지 등
** a char(10)
1자리가 들어와도 10자리만큼 공간을 잡음
성능이 우수(자리가 몇자리인지 계산할 필요 없음)
공간 효율 떨어짐
자리수가 정해져 있는 핸드폰 번호 등
** b varchar(10)
들어오는 자리만큼만 공간을 잡음
성능이 낮음(자리가 몇 자리인지 알아보고 공간 확보)
공간 효율 높음
보통은 varchar 많이 사용함
성능은 상대적인 것이고, 둘 다 빠름
주민번호, 전화번호는 문자 타입으로 선언해야 함. 첫숫자 0 인식가능