본문 바로가기

BackEnd/DB(SQL)

[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 1 (SELECT, FROM)

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 내의 값 입력까지 모두 가능했습니다./

 

다른 구문들에 대해서도 배워보죠!!

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

 

 

728x90
반응형