개발새발 블로그

[SQL 첫걸음] 1,2장 - 테이블에서 데이터 검색 본문

백/SQL

[SQL 첫걸음] 1,2장 - 테이블에서 데이터 검색

복지희 2023. 9. 23. 22:08

- database(db) 를 효율적으로 관리하는 소프트웨어를 DBMS 라고 부름.

    -dbms는 데이터 검색, 추가, 삭제, 갱신 등 기본 기능을 제공해준다.

    -> 이 dbms 중 RDBMS(관계형 데이터베이스 관리 시스템) 을 조작할 때 SQL 사용.

 

1. mysql 명령 실행

mysql -uroot -p

명령어를 입력한 후 설정시 입력해주었던 비밀번호를 입력해준다.

 

 

 

2.  데이터베이스 선택하기

- 현재 모든 db 보여주기

show databases;

 

 

- db 사용하기

USE db명;

현재 이렇게 sample_db 안에 여러개의 테이블이 들어있으므로, 이 테이블을 사용하기 위해 사용할 db를 지정해준다.

 

 

- 테이블 보여주기

SELECT * FROM 테이블명;

- SELECT: 명령어의 종류(예약어)

- * : 모든 열

 

 

 

3. 테이블 구조 참조하기

DESC 테이블명;

SELECT * FROM 와는 다르게 열들의 자료형과 키값 등을 보여준다.

 

<자료형>

- INTEGER 형

- CHAR 형 : 언제나 고정된 길이로 데이터 저장. 빈 여백은 공백문자로 채워둠.

- VARCHAR 형 : 최대길이를 지정한다는 점은 CHAR과 동일하지만, 데이터 크기에 맞춰서 저장공간의 크기 변경.

- DATE 형

- TIME 형

 

 

 

4. 검색 조건 지정하기

열을 선택할 때는 SELECT, 행을 선택할 때는 WHERE 사용.

 

- 열 지정하기

SELECT 원하는열 FROM 테이블명;

id와 name의 열에 해당하는 값들만 보여줌

 

- 행 지정하기

SELECT 원하는열 FROM 테이블명 WHERE 조건식;

 

<연산자>

= 연산자는 같은 경우

<> 연산자는 적어준것 빼고 전부 다 보여준다.

 

날짜형 : '2023-09-23'    (중간에 -)

시간형 : '10:21:00'    (중간에 :)

 

NULL 값인걸 검색하기 위해서 name = null; 이 아닌 name IS NULL;

=, <>, >, <, >=, <= 비교 연산자는 동일하게 사용하고,

논리연산자로 AND, OR, NOT 을 사용한다.

a=1 OR a=2 AND b=1 OR b=2;

라는 조건식이 있으면, AND가 OR에 비해 우선 순위가 높으므로!!!

 a=2 AND b=1 이걸 먼저 계산 후에 나머지 OR 계산을 한다.

그러므로 괄호 중요!

 

 

 

5. 패턴 매칭에 의한 검색

LIKE 를 사용하면 문자열의 >일부분<을 비교하는 부분검색을 할 수 있다.

열 LIKE 패턴

= 연산자와는 달리 특정 문자를 포함하고 있는지를 파악할 수 있다.

 

no text
1 SQL은 RDBMS를 조작하는 언어이다.
2 LIKE에서는 메타문자 %와 _를 사용할 수 있다.
3 LIKE는 SQL에서 사용할 수 있는 술어이다.

이런 table 이 있다고 생각하고,

%은 메타문자로, 빈문자열을 의미한다.

 

SELECT * FROM sample_db WHERE text LIKE 'SQL%';
no text
1 SQL은 RDBMS를 조작하는 언어이다.

no 3에도 SQL이 들어가있지만 결과값으로 나오지 않는 이유는,

이 경우는 SQL%이므로 앞에는 공백이 없어야 하는것이므로 추출되지 않는다.

문자열 앞쪽과 일치하므로 전방일치 라고 부른다.

 

SELECT * FROM sample_db WHERE text LIKE '%SQL%';
no text
1 SQL은 RDBMS를 조작하는 언어이다.
3 LIKE는 SQL에서 사용할 수 있는 술어이다.

반면 %SQL%는 앞뒤에 모두 공백이 있어도 괜찮으므로, 중간일치라고 부른다.

 

'SQL%', 즉 후방일치로 검색을 하게 되면 아무런 결과값도 얻을 수 없을 것이다.

 

 

그런데 만약 %가 들어있는지 확인하고 싶다면 어떻게 해야할까?

SELECT * FROM sample_db WHERE text LIKE '%\%%';

%앞에 \를 붙여주면 된다.

% \% % 이렇게 쓰면 중간일치로 %를 찾는 방법이다.

 

 

 

 


 

+) My SQL 사용해서 db생성하기

- PK : primary key 라는 뜻으로, 열들을 구분하는 가장 대표값이다.

- NN : not null 라는 뜻으로, 비어있을 수 없이 반드시 하나의 값을 가져야 한다.

' > SQL' 카테고리의 다른 글

[SQL 첫걸음] 3장 - 연산  (1) 2023.10.01
[SQL 첫걸음] 3장 - 정렬  (0) 2023.09.30