본문 바로가기

MLOps 개발자 양성과정/mysql

[Day-26] SQL 기본

mySQL

 

1) 데이터 용어 정리

 

ㆍ 데이터 

 

ㆍ DBMS

 

ㆍ 데이터 형식

데이터 형식 훨씬 예민, 자리수 한자리라도 더 아끼려고 하는

딱 그 공간만큼 ex) 주민등록번호 14개 들어가게

 

ㆍ 기본 키 (PRIMARY KEY)

기본키 열은 각행을 구분하는 유일한 열 중복되어서도 비어 있어서도 안됨. 

데이터베이스를 관리하는데 있어 핵심적인 역할

 

ㆍ 외래 키

두 테이블의 관계를 맺어주는 키

 

SQL

구조화된 질의언어

 

2) 테이블 만드는 방법

- 직접

- 커리문 작성

최종적으로 반영이 안되는 경우

refresh all

 

데이터 입력

 

단축키

쿼리문 생성 ctrl t

탭 닫기 ctrl w

실행 ctrl shift enter

 

 

쿼리문 실행하는데 걸리는 시간 / 데이터 가져오는데 걸리는 시간 구분

 

mySQL 모두 소문자로 인식

 

 

 

4. 데이터 활용

데이터 활용 주로 'SELECT'문 사용

 

1) select문

 

ㆍ 기본형식

SELECT 열이름 FROM 테이블 이름 [WHERE 조건];

(세미콜론 마지막 줄은 안쳐도 되지만 한 줄이어도 ;작성하는 습관이 좋음. 

 

SELECT * FROM productTBL; -- * 모든 열을 보여줘라
SELECT memberName, memberAddress FROM memberTBL;
SELECT * FROM memberTBL WHERE memberName = '지운이'

 

2) use 구문

활용할 DB 더블클릭으로 선택하고 쿼리 작성하거나 use 구문 사용해야 함.

USE 데이터베이스 이름;

* 만약 다른 데이터베이스가 지정된 상태에서 테이블 조회하면 오류

ex) Error Code: 1146 Table 'mysq; employees ' doesn't exist

 

3) 쿼리 실행방법

다중 sql문 실행

ctrl + shift + enter  => 에디터 창에 있는 모든 쿼리 실행

실행할 쿼리문 드래그 + ctrl + shift + enter => 원하는 쿼리 실행

실행할 sql문에 커서 + ctrl  + enter => ;으로 분리된 쿼리 실행하려는 쿼리 

 

단축키

MySQL :: MySQL Workbench Manual :: B Keyboard Shortcuts

 

백틱`

공백이 있는 개체의 이름 사용하기 위해서는 백틱으로 묶어줘야 하나의 이름으로 인식함.

 

주석

-- 주석 처리(하이픈 2개 + 공백)

여러 줄 주석

\*

*\

 

table 생성

CREATE TABLE `my TestTBL` (id int)

 

table 삭제

DROP TABLE + 테이블 이름

 

별칭

SELECT first_name AS 이름, gender 성별, hire_date '회사 입사일' FROM employees;

 

 

데이터베이스 이름, 테이블 이름, 필드 이름 조회방법

 

1. 현재 서버에 어떤 데이터베이스가 있는지 조회

SHOW DATABASES;

 

2. 사용할 데이터베이스를 찾았으면 해당 데이터베이스를 지정

USE 데이터베이스이름;

 

3. 현재 데이터베이스에 있는 테이블의 정보 조회

SHOW TABLES; (테이블의 이름만 보기)

SHOW TABLE STATUS; (전체 테이블 조회 테이블의 상세 정보 보기 )

 

4. 테이블의 열 정보 확인

DESCRIBE table; 또는 DESC table;

 

5. 최종적으로 데이터 조회

SELECT 열 이름 FROM 테이블 이름 ;

 

 

<데이터베이스와 테이블 생성하기 실습2 p184>

 

VARCHAR - 가변적일 떄
CHAR( ) - 훨씬 효율적임

 

FOREIGN KEY 두 개의 키를 기준이 되는 키

 

 

 

SELECT 함수

1) WHERE 조건문

 

ㆍ 기본적인 WHERE 절

SELECT 열이름 FROM  테이블이름 WHERE 조건식;

USE sqldb;
SELECT * FROM usertbl; -- * 모든 열 보고 싶을 때
SELECT * FROM usertbl WHERE name = '김경호';

 

ㆍ 관계 연산자의 사용 

조건연산자(=, <, >, <=, >=, <>, !=)와 관계연산자(and, or, not) 조합하여 쿼리 생성

SELECT userID, Name FROM usertbl WHERE birthYear >= 1970 AND height >= 182;
SELECT userID, Name FROM usertbl WHERE birthYear >= 1970 OR height >= 182;

 

 

ㆍBETWEEN...AND

키와 같이 연속적인 값을 가지고 있어야  BETWEEN~AND 사용가능

SELECT name, height FROM usertbl WHERE height >= 180 AND height <= 183;
SELECT name, height FROM usertbl WHERE height BETWEEN 180 AND 183;

 

ㆍIN()

이산적인 값일 떄 사용가능

SELECT name, addr FROM usertbl WHERE addr = '경남' OR addr ='전남' OR addr='경북';
SELECT name, addr FROM usertbl WHERE addr IN('경남', '전남', '경북');

 

ㆍ LIKE 연산자

문자열의 내용 검색할 때 사용

- '%' 글자수와 상관없음

- '_ ' 글자수 상관있음(한 글자 매칭할 때 사용)

-- 성이 '김'씨이고 그 뒤는 무엇이든(%) 허용
SELECT name, height FROM usertbl WHERE name LIKE '김%';
-- 맨 앞글자가 한 글자이고 그 다음이 '종신'인 사람 조회
SELECT name, height FROM usertbl WHERE name LIKE '_종신';

 

 


 

 

 

 

 


'MLOps 개발자 양성과정 > mysql' 카테고리의 다른 글

[Day-30]  (0) 2023.02.03
[Day- 29]  (0) 2023.02.02
[Day-28]  (0) 2023.02.01
[DAY-27] SELECT, INSERT  (0) 2023.01.31