*SELECT [열명] FROM [테이블명] WHERE [조건식] ORDER BY [열명]

 

1. ORDER BY

: SELECT 명령에 ORDER BY 구를 지정하면 검색 결과의 행 순서를 바꿀 수 있음.

 

-WHERE 구 뒤에 지정

-WHERE 구 생략시 FROM 구 뒤에 지정

 

2. 내림차순 정렬하기(ORDER BY DESC)

*SELECT [열명] FROM [테이블명] WHERE [조건식] ORDER BY [열명] DESC

 

-DESC : descendant(하강)

 ASC : ascendant(상승)

-오름차순은 내림차순과 달리 생략 가능(default). ASC로도 지정 가능.

 

3. 대소관계

- 수치형 데이터, 날짜시간형 데이터 :숫자크기로 판별

- 문자열형 데이터 :사전식 순서로 판별

                         알파벳, 한글 순(자음,모음 순)

- 문자열형 열에 숫자를 저장하면 문자로 인식되어 대소관계 계산법이 달라짐.

 

4. ORDER BY는 테이블에 영향을 주지 않음.

: SELECT 명령은 테이블의 데이터를 참조만 할 뿐이며 변경은 하지 않음.

'Software Engineering > 데이터베이스' 카테고리의 다른 글

패턴매칭(부분 검색하기)  (0) 2019.03.23
조건 조합-AND,OR,NOT  (0) 2019.03.23
조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12

* [열] LIKE [패턴]

 

- 패턴 매칭(부분 검색)

  : =연산자로 검색하는 경우는 셀의 데이터 값이 완전히 동일한지를 비교.

    특정 문자나 문자열이 포함되어 있는지를 검색하고 싶은 경우 '패턴매칭' 사용.

 

1. LIKE로 패턴 매칭하기

 

- 열 값이 부분적으로 일치하는 경우에도 참이 됨.

- 왼쪽에는 매칭 대상을, 오른쪽에는 패턴을 문자열로 지정.

- 단, 수치형 상수는 지정 불가.

- 패턴을 정의할 때는 메타문자(% 와 _) 사용 가능. (여러 개 사용가능)

- *는 LIKE에서 사용 불가

- 복잡한 패턴을 매칭하는 경우는 정규 표현식(Regular Expression) 사용.

  

ex)

 No

Text

 1

꽃은 예쁘다

 2

숲에는 나무와 풀이 많다

 3

여러 꽃들 또한 숲에 존재한다 

 

 ▶SELECT * FROM sample WHERE Text LIKE '꽃%';   ←No=1 행만 검색됨.(전방일치)

 ▶SELECT * FROM sample WHERE Text LIKE '%꽃%';   ←No=1 행, No=3 행 검색됨.(중간 일치)

 

 * 메타문자(와일드카드)

    : 패턴 매칭 시 '임의의 문자 또는 문자열'에 매치하는 부분을 지정하기 위해 쓰이는 특수문자.

      %(퍼센트) = 임의의 문자열, _(언더스코어) = 임의의 문자 하나. .(%는 빈 문자열에도 매치)

    

2. LIKE로 % 검색하기

 

- '%'와 '_'를 검색하기 위해서는 '이스케이프'라는 방법으로 처리.

   ex) WHERE Text LIKE '%/%%'

   ex) WHERE Text LIKE '%/_%'

 

3. 문자열 상수 ' 검색하기

 

- 문자열 상수: '문자열'과 같이 '로 둘러싸 표기.

- '를 2개 연속해서 기술하여 이스케이프 처리 함.

   ex) She's  →  'She''s'

   ex) '  → ''''

'Software Engineering > 데이터베이스' 카테고리의 다른 글

정렬하기(ORDER BY)  (0) 2019.04.07
조건 조합-AND,OR,NOT  (0) 2019.03.23
조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12

* [조건식1] AND [조건식2]

   [조건식1] OR [조건식2]  

   NOT 조건식                   

 

- 두개 이상의 조건식을 조합해 검색하는 경우가 많음.

 

1. AND로 조합하기

 

- 논리곱을 계산하는 논리 연산자.

- 이항연산자.

- 모든 조건을 만족하는 경우 조건식은 참이 됨.

      ex) WHERE a<>1 AND b>5

            → a는 1이 아니면서 b는 5보다 큰 행을 검색.

 

2. OR로 조합하기

 

- 논리 연산자.

- 이항 연산자.

- 어느 쪽이든 하나만 참이 되면 조건식은 참이 됨.

     ex) WHERE a<>0 OR b<3

            → a가 0이 아니거나 b가 3보다 작은 행을 검색.

 

3. AND와 OR 함께 사용

 

- 열이나 상수만을 지정해도 에러 발생하지 않음.

   → 때문에 주의해야 함.

        ex) No 열의 값이 2 또는 5인 행을 추출할 경우

              : SELECT * FROM sample WHERE No = 2 OR 5; (X)  ☜ 상수 '2'는 논리연산으로 항상 참. 모든 행 반환.

                SELECT * FROM sample WHERE No = 2 OR No = 5; (O)

 

4. 연산자의 우선순위

 

- ex) 'a<>0 AND b<>0' 과 'a=1 OR A=2 AND b=1 OR b=2'의 결과는 다름.  ☜  AND가 OR보다 우선순위 높음.

- '(a=1 OR A=2) AND (b=1 OR b=2)'로 바꿔주면 'a<>0 AND b<>0'와 결과 같음.

   → OR조건식은 괄호로 묶어 지정하는 경우 많음.

 

5. NOT으로 조합하기

 

- 단항 연산자.

- 오른쪽에 지정한 조건식의 반대 값을 반환.

    ex) NOT a<>1

 

'Software Engineering > 데이터베이스' 카테고리의 다른 글

정렬하기(ORDER BY)  (0) 2019.04.07
패턴매칭(부분 검색하기)  (0) 2019.03.23
조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12

- WHERE 구: 행을 선택할 때 사용

- SELECT 구: 열을 선택할 때 사용

 

1. 열 지정하기

 

SELECT [열1], [열2] ... FROM [테이블명];

 

ex) SELECT no FROM sample;

    : sample이라는 데이터베이스에서 no 열만 결과값으로 표시됨.

 

- 열을 전혀 지정하지 않으면 구문 에러 발생함.

- 테이블에 존재하지 않는 열 지정하면 에러 발생함.

- 열 지정 순서는 임의로 정할 수 있음.(테이블에 정의된 순서와 동일하지 않아도 됨)

   → 결과는 지정한 열의 순서대로 표시.

- 동일한 열을 중복해서 지정해도 무관.

 

2. 행 지정하기

 

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

 

- WHERE 구는 FROM 구의 뒤에 표기.(구의 순서 바꿀 수 없음)

- 조건식은 '열, 연산자, 상수'로 구성.

   ex) no = 5

        : no 열 값이 5일 경우에 참.

- 조건식에 따라 하나 혹은 복수의 행 반환.

- 조건식에 일치하는 행이 없으면 아무것도 반환되지 않음.

- 문자열형을 비교할 경우 싱글쿼트('') 사용하여 표기.

   ex) name = '이태선';

- 날짜시간형에도 싱글쿼트 사용. 연월일을 하이픈(-), 시분초를 콜론(:)으로 구분하여 표기.

  ex) '2019-03-16 07:18:00'

 

*리터럴(literal): 자료형에 맞게 표기한 상수값.

 

3. NULL값 검색하기

- =연산자로 NULL 검색 불가.

  ex) no = NULL; (x)

- 'IS NULL' 사용.

  ex) no IS NULL;

- NULL값이 아닌 행을 검색하려면 'IS NOT NULL' 사용.

 

4. 연산자

 

ⓐ =연산자: 좌변과 우변의 값이 같을 경우 참

ⓑ <>연산자: 좌변과 우변의 값이 같지 않을 경우 참

ⓒ >연산자: 좌변의 값이 우변의 값보다 클 경우 참

ⓓ >=연산자: 좌변의 값이 우변의 값보다 크거나 같을 경우 참

ⓔ <연산자: 좌변의 값이 우변의 값보다 작을 경우 참

ⓕ <=연산자: 죄변의 값이 우변의 값보다 작거나 같을 경우 참

 

'Software Engineering > 데이터베이스' 카테고리의 다른 글

패턴매칭(부분 검색하기)  (0) 2019.03.23
조건 조합-AND,OR,NOT  (0) 2019.03.23
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12
RDBMS의 클라이언트/서버  (0) 2019.03.10

1. DESC 명령

 : 테이블에 어딴 열이 정의되어 있는지 알 수 있음.

   SQL 명령 아님.

 

 +) DESC : 내림차순.

     ASC : 오름차순.

 

DESC 테이블명;

 

-Field: 열 이름

-Type: 해당 열의 자료형. 괄호 안의 숫자는 최대 길이를 나타냄.

         ex) int(5) → 5자리의 정수값을 저장할 수 있는 자료형.

-Null: NULL값을 허용할 것인지 아닌지를 나타내는 제약사항.

        YES로 지정하면 허용하게 됨.

-Key: 해당 열이 키로 지정되어 있는지를 나타냄.

-Default: 그 열에 주어진 기본값. 즉 생략했을 경우 적용되는 값.

            테이블에 행을 추가할 때 열의 데이터 값을 생략하면 이 기본값으로 채워짐.

 

2.자료형

 : 열에는 몇 가지 속성을 지정할 수 있는데 그 중 가장 중요한 속성은 '자료형'.

 

-INTEGER형: 정수값을 저장할 수 있는 자료형. 소수점 포함 불가.

-CHAR형: 고정 길이 문자열 자료형. 언제나 고정된 길이로 데이터가 저장됨.

-VARCHAR형: 가변 길이 문자열 자료형. 데이터 크기에 맞춰 저장공간의 크기도 변경됨.

-DATE형: 날짜값(연월일의 데이터)을 저장할 수 있는 자료형.

-TIME형: 시간(시분초의 데이터)을 저장할 수 있는 자료형.

* mysql 실행하기

  : cmd창에 'mysql -uroot -p' 입력

 

1. SELECT 명령

 -SELECT는 DML에 속하는 명령으로 SQL에서 자주 사용됨.

 -DB의 데이터를 읽어올 수 있음.

 -'질의'나 '쿼리'라고도 불림.

 

SELECT * FROM sample;

     ↑       ↑                   ↑

명령의종류 모든 열        테이블명

 

: 반드시 공백 포함. 세미콜론(;) 포함.

 

-명령의 종류

: 'SELECT 명령을 실행하세요'라는 의미

-모든 열

: 애스터리스크(*)는 '모든 열'을 의미하는 메타문자

-FROM

: 처리 대상 테이블을 지정하는 키워드

 

-SQL명령은 키워드에 의해 '구'라는 단위로 나눌 수 있음.

 ex) SELECT구, FROM구

 

2. 예약어와 DB 객체명

- SELECT와 FROM이 구를 결정하는 키워드이자 예약어(예약되어 있는 단어).

- DB객체명은 예약어와 동일한 이름 사용 불가.

- 예약어와 DB 객체명은 대소문자 구별하지 않음.

 

3. SELECT 명령을 실행한 결과 = 테이블

-표 형식의 데이터가 출력

-표 형식의 데이터는 '행(레코드)'과 '열(컬럼/필드)'로 구성.

-열마다 이름이 지정되어 있음.

-각각의 행과 열이 만나는 부분을 '셀'이라고 함.

-셀에는 하나의 데이터 값이 저장되어 있음.

 

-데이터는 자료형(수치형, 문자형, 날짜시간형 등)으로 분류.

-열은 하나의 자료형만 가질 수 있음.

 

4. 값이 없는 데이터 = NULL

-특별한 데이터 값.

-아무것도 저장되어 있지 않은 상태를 의미.

'Software Engineering > 데이터베이스' 카테고리의 다른 글

조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
RDBMS의 클라이언트/서버  (0) 2019.03.10
데이터베이스의 개념과 종류  (0) 2019.03.10
mysql 클라이언트 사용법  (0) 2019.03.07

1. RDBMS의 클라이언트/서버

: 많은 RDBMS가 클라이언트/서버 모델을 채택.

복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작.

 

클라이언트는 서버에 접속 요청이나 SQL명령 실행 요청을 보낼 수 있음.

서버는 이를 처리하고 클라이언트에 그 결과를 반환함.

일반적인 RDBMS는 네트워크 상에 하나의 서버를 두고 독점해 사용.

 

클라이언트/ 서버 모델은 시스템의 하드웨어 구성을 유연하게 변경할 수 있도록 해줌.

 

- 웹 시스템에는 없었던 '사용자 인증'이 필요.(사용자 별로 DB접근 제한 가능)

*웹 시스템: 브라우저와 웹 서보로 구성되는 클라이언트/서버 모델의 시스템.

 

 

2. 웹 애플리케이션의 구조

: 웹 애플리케이션은 일반적으로 웹 서버와 데이터베이스 서버의 조합으로 구축.

웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요.

웹 서버에는 'CGI'라는 동적 콘텐츠르 위한 확장 방식이 있음.

이 CGI를 이용하여 프로그램과 웹 서버 간을 연동,통신하여 처리.

 

실제로 DB에 접속하는 것은 PHP나 루비 등의 프로그래밍 언어로 만들어진 CGI 프로그램.

(웹 서버의 CGI프로그램이 DB의 클라이언트)

 

*CGI: Common Gateway Interface

 게이트웨이의 개발언어로는 펄, 비주얼 베이직,PHP 등이 있음.

 

3. MySQL 서버와 mysql 클라이언트

: MySQL 서비스가 DB 서버가 되고, mysql 커맨드가 클라이언트가 됨.

PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능 필요(루프 백 접속).

*루프 백 접속

: 클라이언트에서 서버에 접속할 때 네트워크를 경유해서 PC의 서버로 되돌아오는 형태로 접속.

'Software Engineering > 데이터베이스' 카테고리의 다른 글

조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12
데이터베이스의 개념과 종류  (0) 2019.03.10
mysql 클라이언트 사용법  (0) 2019.03.07

1.데이터베이스(DB)란

: 데이터의 집합.

넓은 의미에서는 컴퓨터 안에 기록된 모든 것.

일반적으로 특정 데이터를 확인하고 싶으 때 간단하게 찾아낼 수 있도록 정리된 형태를 가리킴.

데이터베이스의 데이터는 하드디스크나 플래시메모리(SSD) 등 비후발성 저장장치에 저장.

 

2.데이터베이스 관리 시스템(Database Management System, DBMS)

: 데이터베이스를 효율적으로 관리하는 소프트웨어

생산성 향상,기능성 확보,신뢰성 확보를 위해 사용.

 

3.SQL

: 데이터베이스 조작 언어.

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

 

-SQL명령의 종류

①DML(Data Manipulation Language)

: DB에 데이터를 추가, 삭제, 내용 갱신 등 데이터를 조작할 때 사용.

SQL의 가장 기본이 되는 명령 set.

 

②DDL(Data Definition Language)

:데이터를 정의하는 명령어.

DB는 데이터베이스 객체(object)라는 데이터 그릇을 이용하여 데이터를 관리하는데,

이 객체를 만들거나 삭제하는 명령어.

 

③DCL(Data Control Language)

: 데이터를 제어하는 명령어.

트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함되어 있음.

 

4. DB 종류

- 계층형

: 폴더아 파일 등의 계층 구조로 데이터를 저장하는 방식의 DB.

ex) 하드디스크, DVD파일시스템

 

-관계형

: 행과 열을 가지는 표 형식 데이터(2차원 데이터)를 저장하는 형태의 DB.

엑셀시트와 유사하게 행과 열을 가짐.

각각의 표에 이름을 붙여 관리함.

SQL 명령어로 데이터 조작.

 

-객체지향

: 가능하면 객체 그대로를 DB의 데이터로 저장하는 것.

 

*객체지향언어: 객체(Object)를 중심으로 프로그래밍하는 언어.

 

-XML

: XML형식으로 기록된 데이터를 저장하는 DB.

SQL명령 사용불가. XQuery 사용.

 

*XML: 자료형식을 가리키는 용어. 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것.

<data>데이터</data>형식으로 표현. HTML과 흡사.

 

-키-밸류 스토어(KVS)

: key와 그에 대응하는 값(value)이라는 단순한 형태의 데이터를 저장하는 DB.

NoSQL(Not only SQL). 열 지향 DB.

 

 

'Software Engineering > 데이터베이스' 카테고리의 다른 글

조건 지정하여 데이터 검색  (0) 2019.03.16
DESC 명령  (0) 2019.03.14
'SELECT * FROM 테이블명' 실행  (0) 2019.03.12
RDBMS의 클라이언트/서버  (0) 2019.03.10
mysql 클라이언트 사용법  (0) 2019.03.07

+ Recent posts