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 |