여기선 소문자로 작성 했지만 원래 예약어들이나 함수를 작성할 땐 대문자로 사용한다. 정보들과 구분을 위해서 그렇게 하는 것 같다.
create schema managementdb;
CREATE DATABASE managementdb;
데이터베이스(스키마) 만들기
둘은 완전히 같진 않지만 동일하게 사용하고 있음
use managementdb;
위에서 만든 데이터베이스를 사용한다.
CREATE TABLE 고객(
고객아이디 varchar(20) not null,
고객이름 varchar(10) not null,
나이 int,
등급 varchar(10) not null,
직업 varchar(20),
적립금 int default 0,
primary key(고객아이디));
고객 테이블 만들기
6개의 항목을 갖고 있음
varchar(20) - 여기서는 이걸 문자열로 쓴다.
not null 내용이 안 들어오면 안 된다.
default 기본값
테이블에 기본 키가 필요하다.
★primary key(고객아이디) - 키본키
★FOREIGN .. REFERENCES - 외래키와 다른 테이블의 기본키를 참조
위처럼 가장 하단에 적어줘도 되지만 내가 설정할 칼럼 옆(데이터 타입 옆)에 적어줘도 됨
중복이 안 되는 항목은 무조건 후보키(고객번호, 주민번호, 핸드폰)이다.
그 중에서 하나만 선택해서 기본을 정하는 것이 primary key(기본키)
외래키 - 다른 릴레이션의 기본키들을 참조하는 속성을 말한다.
insert into 고객 values("apple","정소화",20,"gold","학생",1000);
insert into 고객 values("banana","김선우",25,"vip","간호사",2500);
항목과 숫자 및 데이터 타입 모두 동일하게 작성해야 한다.
세미콜론(;) 우측에서 번개모양 단축키 또는 ctrl + Enter
여러 줄 한 번에 입력하고 싶다면 모두 드래그 해서 ctrl + shift + Enter
insert into 고객 values
("apple","정소화",20,"gold","학생",1000),
("banana","김선우",25,"vip","간호사",2500);
이렇게 한 번에 이어서 작성하는 방법도 있다.
얘는 세미콜론 우측에서 ctrl + Enter만 해줘도 됨
select * from 고객;
select(선택) *(모든 항목) '고객' 보여줘라
옵션들이 많다.
데이터베이스는 독립성이 중요시 된다. 물리적으로나 논리적으로 독립성이 강하다. 그래서 아무도 들어가서 열어보지 못 한다.
릴레이션은 스키마와 인스턴스로 구성된다..
create database Academydb;
use Academydb;
create table Book (
bookid int primary key,
bookname varchar(40),
publisher varchar(40),
price int);
CREATE TABLE Customer (
custid INT PRIMARY KEY,
name VARCHAR(40),
address VARCHAR(40),
phone VARCHAR(30));
CREATE TABLE Orders (
orderid INT PRIMARY KEY,
custid INT REFERENCES Customer(custid),
bookid INT REFERENCES Book(bookid),
saleprice INT, orderdate DATE );
insert into Book values(1, '축구의 역사', '굿스포츠', 7000);
INSERT INTO Book VALUES(2, '축구 아는 여자', '나무수', 13000);
INSERT INTO Book VALUES(3, '축구의 이해', '대한미디어', 22000);
INSERT INTO Book VALUES(4, '골프 바이블i', '대한미디어', 35000);
INSERT INTO Book VALUES(5, '피겨교본', '굿스포츠', 8000);
INSERT INTO Book VALUES(6, '역도 단계별 기술', '굿스포츠', 6000);
INSERT INTO Book VALUES(7, '야구의 추억', '이상미디어', 20000);
INSERT INTO Book VALUES(8, '야구를 부탁해', '이상미디어', 13000);
INSERT INTO Book VALUES(9, '올림픽 이야기', '상성당', 7500);
INSERT INTO Book VALUES(10, 'Olympic Champions', 'Pearson', 13000);
select * from Book; select bookid, bookname, publisher, price from Book;
insert into Book values(1,'축구의 역사','굿스포츠',7000);
book 테이블 옆에 밸류스를 넣어야한다. 위에서 항목이 4개 라면, 넣어주는 개수(4개)와 데이터 타입이 맞아야 한다.
select * from Book;
마지막 이것을 넣어주고 ctrl + Enter를 해주면 표가 뜬다.
모든 항목을 출력하는 라인이다.
select bookid, bookname, publisher, price from Book;
북이라는 클래스에서 이것들을 보여줘라 모두(*) 이것과 같은 거임
select publisher from Book;
도서 테이블에서 출판사를 검색
< where 조건 >
select * from Book where price < 20000;
도서테이블에서 20000원 미만의 가격을 검색
where은 조건 예약어이다.
select * from Book where price between 10000 and 20000;
가격이 1000원 이상 20000원 이하인 도서를 검색
select * from Book where publisher in('굿스포츠','대한미디어');
select * from Book where publisher = "굿스포츠" or publisher = "대한미디어";
출판사가 굿스포츠, 대한미디어인 도서만 검색. 두 가지 버전이 있음 IN과 OR인데 출판사를 두 번 써줘야하는 게 불편하니까 IN을 사용하는 게 좋다. -
select * from Book where publisher not in('굿스포츠','대한미디어');
반대로 출판사가 굿스포츠, 대한미디어 아닌 도서만 검색하려면 not만 추가하면 된다.
select bookname, publisher from book where bookname like "축구의 역사";
축구의 역사를 출간한 출판사와 책이름을 함께 출력하기
LIKE는 동일한 글자를 출력한다. 대소문자를 구분하지 않는다.
대소문자를 구분하고 싶다면 BINARY를 이용하면 된다.
select bookname, publisher from Book where bookname like "%축구%";
축구가 들어가는 책이름과 출판사를 찾긔
select * from Book where bookname like "_구%";
도서이름에 왼쪽에서 두번째 한글로 '구'자가 들어가는 모든 항목을 출력하기
글자수에 맞게 찾고 싶다면 '_'을 사용하는 것도 좋은 방법이다!
그리고 LIKE를 사용 했을 때 '_', '%' 이것들을 사용할 수 있다.
'개발일지 > SQL' 카테고리의 다른 글
[Oracle] 기본 용어 및 상식 (2) | 2021.11.17 |
---|---|
SQL 복습 (옛날거) (0) | 2021.10.25 |
테이블 한 번에 등록하기 (1) | 2021.10.11 |
데이터베이스, 스키마 이름 바꾸기 (0) | 2021.10.11 |
MySQL 두번째 수업 (0) | 2021.10.06 |