SQL이란 ?
SQL(Structred Query Language)은 데이터베이스 관리 시스템(DBMS)에서 데이터를 관리하고 검색하기 위해 사용되는 표준 데이터베이스 언어이다.
데이터베이스 생성
CREATE DATABASE 데이터베이스이름;
CREATE DATABASE mydb;
→ 위 쿼리문을 실행하면 mydb라는 이름의 데이터베이스가 생성된다. 생성된 데이터베이스는 MySQL 서버에 저장되며 데이터베이스 내에서 테이블을 생성하고 데이터를 저장할 수 있다.
데이터베이스에서 테이블은 다음과 같은 정보를 포함할 수 있다.
1. 테이블 이름 ex) CREATE TABLE 테이블이름
2. 열 이름 ex) 열이름 열데이터형식
3. 열 데이터 형식 ex) INT, BIGINT, VARCHAR, CHAR, FLOAT, DATE, TEXT 등
4. 빈 값 허용 여부 (NULL, NOT NULL)
5. 기본값 (DEFAULT)
6. 제약 조건 (Primary Key, Unique Key, Foreign Key 등)
7. 인덱스
테이블 생성 예제
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 | -- 예약어는 대문자로 적어주는 게 좋다. -- 테이블 생성시, SQL 작성시 어떤 DB 사용해야 하는지 먼저 선택되어야 한다. use mydb; -- 테이블 생성 CREATE TABLE student( student_id INT, name VARCHAR(50) NOT NULL, grade INT NOT NULL, major VARCHAR(50) NOT NULL ); -- 테이블 전체 내용이 선택 SELECT * FROM student; -- 테이블 구조 확인 DESC student; -- 과목 테이블 생성하기 CREATE TABLE subject( subject_id INT, subject_name VARCHAR(50) NOT NULL, credit INT NOT NULL, department VARCHAR(50), professor CHAR(50) NOT NULL ); SELECT * FROM subject; DESC subject; | cs |
→ student, subject 테이블을 생성하는 예제이다.
→ 생성할 열 이름과 그 열의 데이터 타입을 지정해주어 테이블을 생성하면 된다.
→ 'NOT NULL'이라는 예약어가 붙으면 값을 비울 수 없다는 뜻이다.
<결과 화면>
이미 생성된 테이블에 PRIMARY KEY(기본키 - 제약 조건) 추가해보기
: 기본키를 추가하면 해당 열에 대한 중복 데이터가 저장될 수 없고 데이터 검색 속도가 향상된다.
기본키는 테이블 내에서 고유한 값이어햐 하며, 해당 열에 대해 NOT NULL 제약 조건이 설정되어 있어야 한다.
1 2 3 | ALTER TABLE student ADD PRIMARY KEY(student_id); ALTER TABLE subject ADD PRIMARY KEY(subject_id); | cs |
→ 특정 컬럼을 기본키로 만들게 되면 중복된 데이터를 허용 못하고 NULL값이 있어서는 안된다.
<결과 화면>
테이블 생성 시 PRIMARY KEY 추가하는 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | -- 테이블을 삭제하는 명령어 DROP TABLE student; DROP TABLE subject; -- 학생 테이블 생성 PK 추가 CREATE TABLE student( student_id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, grade INT NOT NULL, major VARCHAR(50) NOT NULL ); CREATE TABLE subject( subject_id INT PRIMARY KEY, subject_name VARCHAR(50) NOT NULL, credit INT NOT NULL, department VARCHAR(10) NOT NULL, professor VARCHAR(20) NOT NULL ); | cs |
→ 데이터 타입 뒤에 PRIMARY KEY를 붙여주면 된다.
데이터 타입 : TEXT, DECIMAL 예제
1 2 3 4 5 6 7 8 | CREATE TABLE product( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, price DECIMAL(10, 2) NOT NULL, description TEXT ); desc product; | cs |
→ TEXT 데이터 타입 : 긴 텍스트 데이터를 저장하기 위함. 문자열의 길이에 제한이 없다.
→ DECIMAL 데이터 타입 : 소수점 이하 자리수를 정확하게 저장한다. (금융 및 계산 분야에서 자주 사용됨.)
<결과 화면>
데이터 타입 : DATE 예제
1 2 3 4 5 6 7 8 9 | -- `order` 예약어 테이블 이름을 선점할 수 없다 기본적으로 -- 하지만 강제적으로 `` 작은 따옴표를 사용해서 테이블 이름이라고 명시할 수 있다. CREATE TABLE `order`( id INT PRIMARY KEY, cusotmer_order VARCHAR(50), product_name VARCHAR(20) NOT NULL, quantity INT NOT NULL, order_date DATE NOT NULL ); | cs |
→ DATE 데이터 타입 : 날짜 정보를 저장하기 위한 데이터 타입이다. YYYY-MM-DD 형식의 날짜를 저장할 수 있으며, 날짜와 관련된 연산을 수행할 수 있다.
ex) 2023-03-06, 20230306, 2023/03/06 --> 일관된 형식으로 저장하는 것이 좋음.
<결과 화면>
'프로그래밍 > Database' 카테고리의 다른 글
MySQL_preparedstatement LIKE 쓰는 법 (0) | 2023.03.10 |
---|---|
MySQL_관계 차수 1 : N 차수, 1 : 1 차수 (0) | 2023.03.08 |
MySQL_UPDATE 구문과 WHERE 조건절, UNIQUE 제약 (0) | 2023.03.08 |
MySQL_INSERT 구문과 제약 사항 (2) | 2023.03.08 |
MySQL_데이터베이스 (0) | 2023.03.06 |