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 내의 값 입력까지 모두 가능했습니다./
다른 구문들에 대해서도 배워보죠!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > DB(SQL)' 카테고리의 다른 글
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법3 (DML, DDL, DCL, insert, auto_increment) (0) | 2023.02.06 |
---|---|
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 2 (WHERE, BETWEEN, IN, LIKE, 서브쿼리) (0) | 2023.02.06 |
[DB_MySQL] 이것이 MySQL이다 ch05 MySQL 유틸리티 사용법 (0) | 2023.02.05 |
[DB_MySQL] 이것이 MySQL이다 ch04 데이터베이스 모델링 (0) | 2023.02.03 |
[DB_MySQL] 이것이 MySQL이다 ch03(MySQL 전체 운영 실습) (0) | 2023.02.02 |