데이터베이스 개인공부

SQL - (예제 : 서점)(진행중)

여파고 2024. 1. 16. 09:13

SQL(Structed Query Languege)

1970년대 IBM이 SEQUEL 이라는 이름으로 개발한 관계형 데이터베이스 언어

1986년 ANSI 에서 표준언어로 승인

-Data SubLanguege... 데이터 구조에 관한 데이터를 생성하고 처리하는 문법만을 가지고 있다

 

기능에 따라 분류

  • 데이터 정의어(DDL)
    : CREATE(생성), ALTER(수정), DROP(삭제)    명령어
  • 데이터 조작어(DML)
    : INSERT, UPDATE, DELETE    (테이블)
  • 데이터 제어어(DCL)
    : GRANT, REVOKE, COMMIT, ROLLBACK     권한을 줬다 뺏었다
  • 데이터 질의어(DQL)
    : SELECT
  • TCL
    : COMMIT, ROLLBACK

 

 

서점의 데이터

 

수행할 리스트

1.database 생성 : testdb
2. testdb use 명령어 지정하기
3. database 안에 데이터를 저장할 테이블 생성 : test 테이블(id, name)
4. 만든 테이블 확인 : show
5. 만든 테이블에 자료 입력 : insert 명령어
6. 입력한 자료 확인 : select

 

 

1.create database testdb; : testdb라는 database 생성

testdb 라는 database 생성하였다.

 

2.show databases; : 데이터베이스 확인

Database에 testdb 추가되었다.

 

 

 

3. use testdb : testdb를 사용하겠다. 여기에다가 작업하겠다 이제.

 

 

 

4. create table test(id smallint unsigned primary key auto_incremebt, name varchar(20) not null);

: 테이블 생성하기

(id, name 담아서,

auto_increment : 데이터가 insert 될 때마다 데이터 값이 자동으로 증가, 여기에선 id값이 증가

var : 동적으로

char : 문자열느낌

(20) : 20자 이내로.

not null : 널값은 안되고.)

testdb에 test 테이블 생겼다.

 

 

 

5. create user sinsaegeadmin@localhost identified by '1234';
grant all privileges on sinsaegebookdb.* to sinsaegeadmin@localhost;
commit;

:  root 계정으로 sinsaegebookdb, sinsaegeadmin 사용자 생성 및 권한 부여

사실 잘 모르겠지만 어찌어찌 무언가 된 듯 하다

 

 

6. drop table book;

: 기존의 테이블 삭제(초기화 하는 느낌?)

 

7.mysql> create table Book(
    -> Bookid INTEGER PRIMARY KEY,
    -> Bookname VARCHAR(40),
    -> publisher VARCHAR(40),
    -> price INTEGER);

: Book 테이블 창설(?)

Bookid 라는 항목은 integer값으로 primary key로 설정하겠다.

bookname은 동적 문자열 40자 이내로

publisher는 동적 문자열 40자 이내로

price는 숫자로 하겠다.

book 생겨난거 보이시죠?

 

 

8. 동일한 방식으로 table customer 와 orders 도 생성하였다.

customer table
orders table

 

 

9.mysql> INSERT INTO Book VALUES(1, '축구의 역사', '굿스포츠', 7000);

: book에 값으로 1 '축구의 역사', '굿스포츠', 7000 insert 하겠다.

 

아 일단 여기까지

뭔가 잘못됐을때... ctrl + c

...

...

 

MySQL 코드에 관한 내용

 

  • Foreign key
    : 외래키. 다른테이블에 있는 값 가져오는 느낌. 참조하는 느낌. 객체 변수안에 들어있는 주소값.
    참조 무결성 제약조건을 위한 key..
    ->foreign key (속성) 참조할릴레이션이름 (속성)
  • primary key
    : 기본키를 지정하는 키워드.
  • unique
    : 대체키를 지정하는 키워드.

 

테이블 변경

Alter

  • 새로운 속성 추가
    alter table 테이블이름 add 속성이름 데이터타입;
  • 기존 속성 삭제
    alter table 테이블이름 drop column 속성이름;
  • 제약조건 추가
    alter table 테이블이름 add constraint 제약조건이름 제약조건내용;

customer 테이블에서 overage라는 이름의 제약조건을 add하겠다 제약 내용은 age>=20 인지 check 하겠다.

  • 제약조건 삭제
    alter table 테이블이름 drop check 제약조건이름; (check 자리에 constraint가 들어가는 것도 될 때가 있다...)
  • 테이블 삭제
    drop table 테이블 이름;

 

반응형