[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 1 (SELECT, FROM)
bobo122023. 2. 5. 09:47
728x90
반응형
1. SELECT문
◎ <SELECT... FROM>
▷ 원하는 데이터를 가져와 주는 기본적인 구문 ▷ 가장 많이 사용되는 구문 ▷ 데이터베이스 내 테이블에서 원하는 정보 추출하는 명령
◎ USE 구문
▷ SELECT문 학습 위해 사용할 데이터베이스 지정 ▷ 지정해 놓은 후 특별히 다시 USE문 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상 모든 SQL문은 지정 DB에서 수행 → ex) USE 데이터베이스_이름; ▷ employees를 사용하기 위해서는 쿼리창에 다음과 같이 입력합니다. → ex) USE emplyees;
▷ Workbench에서 직접 선택해서 사용도 가능 ▶ [Navigator]의 [Schemas] 탭, employees 데이터베이스를 더블 클릭하거나 마우스 오른쪽 버튼을 클릭한 후 [Set as Default Schema]를 선택
◎ SELECT와 FROM
▷ SELECT *
▶ 선택된 DB가 emplyees라면 다음 두 쿼리는 동일
SELECT * FROM employees.titles; SELECT * FROM titles;
▷ SELECT 열이름
▶ 테이블에서 필요로 하는 열만 가져오기 가능
SELECT first_name FROM employees;
▶ 여러개의 열을 가져오고 싶을 때는 콤마로 구분
SELECT first_name, last_name, gender FROM employees;
▶ 열 이름의 순서는 출력하고 싶은 순서대로 배열 가능
use employees;
select * from titles;
-- select * from 데이터베이스명.테이블명;
select * from employees.titles;
select * from employees;
select first_name, last_name, gender from employees;
▷ 주석(Remark)
◎ DB, TABLE, 열의 이름이 확실하지 않을 때 조회하는 방법
▷ 현재 서버에 어떤 DB가 있는지 보기
▶ SHOW DATABASES;
▷ 현재 서버에 어떤 TABLE이 있는지 보기
▶ 데이터베이스에 있는 테이블 정보 조회
→ SHOW TABLE STATUS;
▶ 테이블 이름만 간단히 보기
→ SHOW TABLES;
▷ employees 테이블의 열이 무엇이 있는지 확인
▶ DESCRIBE employees; 또는 DESC employees;
▷ Workbench의 [Navigator]로 확인 가능하나 명령어를 알아두면 Linux 명령어 모드에서 사용 가능
-- shopdb DB로 이동
use shopdb;
-- membertbl 테이블 나타내기
select * from membertbl;
-- membertbl 테이블의 memberID, memberAddress만 나타냄
select memberID, memberAddress from membertbl;
-- 모든 DB 나타내기
show databases;
show table status;
show tables;
-- select membername as '이름', memberaddress as '주소' from shopdb.membertbl;
-- select membername '이름', memberaddress '주소' from shopdb.membertbl;
◎ 구문을 사용해서 데이터 입력하는 예제
drop database if exists sqldb; -- sqldb가 있으면 drop해서 db를 삭제, 없으면 그냥 빠져나가기
create database sqldb;
use sqldb;
-- 테이블 생성
-- 회원 테이블
create table usertbl(
userID char(8) not null primary key, -- 사용자 아이디(PK)
name varchar(10) not null, -- 이름
birthYear int not null, -- 출생년도
addr char(2) not null, -- 지역 : 경기, 서울, 경남 식으로 2글자 입력
mobile1 char(3), -- 휴대폰의 국번 : 011, 016, 017, 018, 019, 010
mobile2 char(8), -- 휴대폰의 나머지 전화번호
heigth smallint, -- 키
mDate date -- 회원 가입일
);
-- 회원 구매 테이블 (buytbl)
create table buytbl(
num int auto_increment not null primary key, -- 순번(PK)
userID char(8) not null, -- 아이디(FK)
prodName char(6), -- 물품명
groupName char(4), -- 분류
price int not null, -- 단가
amount smallint not null, -- 수량
foreign key (userID) references usertbl(userID)
);
USE SQLDB;
show tables;
INSERT INTO usertbl VALUES('LSG', '이승기', 1987, '서울', '011', '1111111', 182, '2008-8-8');
INSERT INTO usertbl VALUES('KBS', '김범수', 1979, '경남', '011', '2222222', 173, '2012-4-4');
INSERT INTO usertbl VALUES('KKH', '김경호', 1971, '전남', '019', '3333333', 177, '2007-7-7');
INSERT INTO usertbl VALUES('JYP', '조용필', 1950, '경기', '011', '4444444', 166, '2009-4-4');
INSERT INTO usertbl VALUES('SSK', '성시경', 1979, '서울', null, NULL , 186, '2013-12-12');
INSERT INTO usertbl VALUES('LJB', '임재범', 1963, '서울', '016', '6666666', 182, '2009-9-9');
INSERT INTO usertbl VALUES('YJS', '윤종신', 1969, '경남', NULL, NULL , 170, '2005-5-5');
INSERT INTO usertbl VALUES('EJW', '은지원', 1972, '경북', '011', '8888888', 174, '2014-3-3');
INSERT INTO usertbl VALUES('JKW', '조관우', 1965, '경기', '018', '9999999', 172, '2010-10-10');
INSERT INTO usertbl VALUES('BBK', '바비킴', 1973, '서울', '010', '0000000', 176, '2013-5-5');
INSERT INTO buytbl VALUES(NULL, 'KBS', '운동화', NULL, 30, 2);
INSERT INTO buytbl VALUES(NULL, 'KBS', '노트북', '전자', 1000, 1);
INSERT INTO buytbl VALUES(NULL, 'JYP', '모니터', '전자', 200, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '모니터', '전자', 200, 5);
INSERT INTO buytbl VALUES(NULL, 'KBS', '청바지', '의류', 50, 3);
INSERT INTO buytbl VALUES(NULL, 'BBK', '메모리', '전자', 80, 10);
INSERT INTO buytbl VALUES(NULL, 'SSK', '책' , '서적', 15, 5);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책' , '서적', 15, 2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '청바지', '의류', 50, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL, 30, 2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책' , '서적', 15, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL, 30, 2);
select * from usertbl;
select * from buytbl;
Select from 구문을 이용해서 테이블을 생성하고 테이블 내에 데이터를 입력하는 방법을 배워보았습니다.
구문들만 이용해서 DB, table 생성, table 내의 값 입력까지 모두 가능했습니다./