*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.4 소프트웨어 공학의 접근 방법

 

- 소프트웨어가 다루는 문제가 점점 커지고 변화가 많아지지만

  '높은 품질'과 '생산성'이 일관적으로 성취하여야 할 목표임.

-프로젝트를 수행하는 동안 얻은 품질과 생산성은 여러 가지 요인에 좌우됨.

-'품질'을 좌우하는 세가지는 인력, 프로세스, 기술임.

 

*삼각 균형(triangle seesaw)

: 좋은 프로세스나 방법이 사용되고 작업을 수행하는 인력이 적절히 훈련되어야

 좋은 품질의 소프트웨어를 적기에 공급할 수 있음.

 

-소프트웨어 공학의 초점은 주로 프로세스에 있음.(프로세스: 체계적인 접근법)

-프로세스는 도구와 방법과 함께 소프트웨어 공학에서 핵심을 이룸.

 

-소프트웨어 공학의 기본 접근 방법

 : 소프트웨어를 개발하는 프로세스를 개발된 제품, 즉 소프트웨어와 분리하는 것.

-적절한 소프트웨어 프로세스의 설계와 관리는 소프트웨어 공학의 중요한 연구 목표.

 → 알고리즘, OS, DB 등은 소프트웨어 제품 자체에 초점을 두고 있지만, 소프트웨어

     엔지니어링은 소프트웨어 제작 과정에 집중

 

-소프트웨어 엔지니어링 작업의 종류

ⓐ 소프트웨어 개발 프로세스

    : 시스템에 대한 비젼과 개념을 목표로 하는 컴퓨터 환경에 실행되는

      소프트웨어로 바꾸는 작업.

     비즈니스 요구를 파악하고 타당성을 검토하며 시스템이 제공하여야 할

     요구와 성능을 정형화함. 또한 설계하고 구현하고 테스팅하여 목표환경에 설치함.

 

ⓑ 품질 보증

    : 소프투에어 품질 보증(SQA, Software Quality Assurance)은 개발 작업이 적절히

      수행되었는지 확인하는 작업.

      개발 작업에 의한 산출물이 요구와 일치하는지 품질 수준에 맞는지 검사함.

 

ⓒ 프로젝트 관리

    : 개발과 품질 보증 작업을 관리하고 감독하는 일.

      노력 예측, 프로젝트 계획, 일정, 리스크 관리, 행정 등.

      소프트웨어 시스템이 정해진 일정과 예산 내에 인도될 수 있도록 확인하는 작업. 

 

 

 

 

[출처]소프트웨어공학론(최은만 저, 정익사)

 

1.3 소프트웨어 공학이란?

: 전기전자 기술자 협회(IEEE)의 소프트웨어 공학 표준에 의하면 소프트웨어 공학이란

소프트웨어의 개발과 운영, 유지보수, 소멸에 대한 체계적인 접근 방법이라고 정의.

 

- 소프트웨어 엔지니어링의 목표

: 소프트웨어 개발 작업이 결과를 예측할 수 없는 주먹구구식이 아니라

과학이나 공학에 더 가깝게 하려는 노력임.

 

아래 설명하는 요소들이 소프트웨어 공학 분야의 발전과 기술 개발의 원동력이 됨.

 

1.3.1 규모

- 규모가 큰 시스템을 개발하는 일은 작은 시스템을 개발하는 방법과 다른 방법이

동원되어야 함.

-일반적으로 소규모 시스템에 사용하던 방법은 대규모 시스템에 확대 적용하기 어려움.

-대규모 프로젝트는 엔지니어링(사용하는 방법, 절차, 도구)과 프로젝트 관리 기법이 필요.

-소규모 프로젝트에서는 개발과 관리에 비정형 방법을 사용할 수 있으나,

 대규모 프로젝트에는 정형화된 방법이 필요.

 

*소프트웨어 제품의 규모(KLOC)

-소규모: 만 줄 이하

-중규모: 십만 줄 이하

-대규모: 백만 줄 이하

-초대규모: 수백 만 줄 이상

 

1.3.2 품질과 생산성

: 엔지니어링 원리는 비용, 일정, 품질과 같은 변수를 중요하게 여김.

-소프트웨어 시스템을 개발하기 위한 비요은 대부분 인건비에 속함.

 (사람이 많이 필요한 노동집약적인 작업이기 때문)

 → 소프트웨어 프로젝트의 비용은 MM(man-month)로 측정.

-일정은 대부분의 프로젝트에서 중요한 요소.

 최근에는 제품이 시장에 나올 때까지 걸리는 기간(time to market)이 더욱 짧아지는 추세.

 → 즉 소프트웨어는 더욱 빨리 개발되어야 함.

 

*생산성

 : MM당 생산하는 소프트웨어의 라인 수.

 

-모든 사업 전략을 '품질' 중심으로 짜고 있음.

 고품질의 소프트웨어를 개발하는 것이 소프트웨어 엔지니어링의 또 다른 근본적인 목표.

 

*소프트웨어의 품질 속성

 ⓐ기능성(functionality): 소프트웨어가 사용될 때 원래 정한 또는 내재된 요구를

                                만족시키는 기능을 제공하는 능력. (적합성, 정확성, 보안성 등)

 ⓑ신뢰성(reliability): 소프트웨어가 정해진 수준의 성능을 유지할 수 있는 능력.

 ⓒ사용용이성(usability): 쉽게 이해되고 배울 수 있고 사용될 수 있는 능력.

                                (이해용이성, 학습용이성, 운용성 등)

 ⓓ효율성(efficiency): 사용되는 자원의 양에 따라 적절한 성능을 제공할 수 있는 능력.

 ⓔ유지보수성(maintainability): 정정, 개선, 적응시킬 목적으로 수정될 수 있는 능력.

                                         (변경용이성, 시험용이성, 확장성 등)

 ⓕ이식성(portability): 별도의 작동이나 수단 없이 다양한 환경에서 적응될 수 있는 능력.

                             (적응성, 설치용이성 등)

 

-품질은 많은 의미가 담긴 다차원 개념.

 →소프트웨어 품질은 하나의 숫자로 축약할 수 없음.

 →품질 개념은 프로젝트마다 다름.(프로젝트마다 개벌 전에 품질 목표를 설정하여야 함)

-일반적으로 '신뢰성'이 소프트웨어 품질의 기준을 대표함.

-품질 측정 방법 중 한가지는 출시된 소프트웨어의 단위크기(일반적으로 천 줄, KLOC)당 결함의 수.

 

*결함

 : 소프트웨어가 고장 나게 하거나 출력이 바르지 않게 하는 문제.

 

1.3.3 일관성과 재현성

 : 어떻게 하면 성공적인 결과가 되풀이 될 수 있고 품질과 생산성에 일관성을 가지게 하느냐.

 

-사용하는 방법이 프로젝트 전체에 반복 적용되어 생산된 소프트웨어의 품질에 일관성이 있어야 함.

-소프트웨어 개발 기관은 일관된 품질을 일관된 생산성으로 만들기 원함.

-ISO 9001과 CMM(Capability Maturity Model)은 기관이 방법론을 표준화 하고 일관되게

 사용할 것을 권장하고 있음.

 

1.3.4 변경

 : 오늘날 비즈니스 환경 변화가 매우 빨라 소프트웨어도 변화의 흐름을 따라갈 것을 요구.

 

-소프트웨어는 변경을 어렵게 하는 물리적인 부분이 없기 때문에 변경하기 쉽고 소프트웨어에서

 더 많은 변경이 일어날 것으로 예상됨.

-변경은 소프트웨어 공학의 중요한 성장 요인.

 

 

 

[출처]소프트웨어공학론(최은만 저, 정익사)

 

 

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

+ Recent posts