본문 바로가기
교육

[18일 차] 21.08.12 : Windows Server 7

by ballena 2021. 8. 12.

오늘 작성한 SQL에 대한 내용은 SQL의 보편적인 내용이라고 확언할 수 없다.

Windows SQL Server에서 유효한 내용들.

 

 

실습에 쓴 SQL 서버는 풀 버전은 아니고, 실습용으로 조금 축소된 버전.

 

  • Windows SQL Server 설치 과정

SQL 서버 설치 파일 관리자 권한으로 실행 > 미디어 다운로드(가장 우측) > Express Core 선택 > 설치 완료 후 폴더 열어서 실행 파일 관리자 권한으로 실행(압축 풀기) > 끝나면 SQL 설치 센터가 나온다 > 새 SQL Server 독립 실행형 설치(첫 항목) 클릭 > 원래는 MS 업데이트 확인 체크해야 하지만 실습이니 해제 > 에러 넘기고 다음 > 작업 완료 후 방화벽 경고는 무시하고 넘기기 > DB 엔진 서비스, SQL 서버 복제, SQL 클라이언트 연결 SDK 모두 체크/인스턴스 루트(DB가 들어가는 경로) 확인 후 다음 > 인스턴스 명명(서버 이름)을 기본 인스턴스로 체크, SQL Server 디렉터리 확인 > 서버 브라우저는 안 쓰고, 서버 엔진만 쓰고(기본값으로 두고) 다음 > 이 SQL 서버는 Windows와 함께 돌아가므로 Windows의 인증 모드(강력하다) 함께 사용 가능. Windows 인증 모드 체크, 다음(다른 탭은 건드리지 않음) > 설치 완료. 끝

 

SSMS는 기본값으로 쭉 설치 > 재시작하면 완료.

 

  • Window SQL Server 설정

시작 메뉴 목록 > MS SQL Server Tools 18 > MS SQL Server Management Studio 진입 > 들어가면 '서버에 연결'

-> 기본 설정(서버 유형 데이터베이스 엔진, 서버 이름 FIRST, 인증 Windows 인증)으로 연결

-> 상단의 '새 쿼리' 클릭하면 빈 화면이 뜬다.

-> 좌측 상단의 master는 현재 접근 중인 DB를 의미

-> '실행'을 누르면 작성한 SQL문 전송

-> 좌측의 '개체 탐색기'는 DB를 GUI로 보여준다.

-> '데이터베이스' 항목으로 내려가 보면 데이터베이스가 저장되는 부분과 백업되는 부분이 있다.

-> '보안' 항목에서 인증 방식 변경 가능

-> 보안> 로그인을 보면 계정들이 나오는데, sql 서버 최고 관리자는 sa다. 로그인 차단되어 있음.

 

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup

-> 이 경로에 백업 파일을 넣어 실습을 진행

-> 백업 파일이 있다면 DB로 복구시킬 수 있다.

-> 개체 탐색기>데이터베이스 우클릭> 데이터베이스 복원> 원본을 디바이스에서 찾아 넣는다> 확인 누르면 DB 생성됨

-> 생성된 데이터베이스 우클릭 > 이름을 AD로 바꾸고


DBMS = SQL Server 2016, MySQL, MariaDB 등

데이터베이스 : 데이터의 집합

DBMS 안에 DB, DB 안에 테이블, 테이블 안에 데이터

 

Windows 인증 모드/혼합 모드(Windows의 사용자로도 SQL 서버에 로그인 가능)

-> 전자는 Windows 인증을 거쳐 들어가는 것/후자는 SQL 서버로 다이렉트로 진입

-> 보안상 혼합 모드는 권장되지 않는다.

-> 로컬에서는 그게 그거지만, 원격 접속에서는 확연히 다르다.

 

  • DBMS : DB를 관리/운영하는 역할

-> 여러 사용자나 응용 프로그램(SDK, IIS 등)이 공유하거나 동시 접근이 가능해야 한다.

-> SQL Server는 DB를 자료가 저장되는 (파일로 구성된)디스크 공간으로 취급.

-> DBMS(SQL Server) 안에 각 도메인들이 사용하는 여러 DB가 있는 것

-> SSMS로 DBMS에 접근

 

웹 서버 안의 웹 페이지로 로그인한다는 것은

-> 아이디와 패스워드가 웹 서버 내부에 저장되어 있는 것은 아니다. 웹 서버는 웹 서비스만 제공.

-> 로그인 요청이 들어오면 웹 서버가 DB 서버에게 아이디와 패스워드를 확인, DB 서버가 결과를 웹 서버에게 응답

-> 웹 서버가 로그인 허용/거부 여부를 결정

 

많이 사용되는 DBMS

 

  • DB의 중요한 특징

- 데이터의 무결성(Integrity) : 데이터를 직접적으로 수정하지 않는 이상, 해당 데이터는 원본 그대로 유지되어야 한다.

- 데이터의 독립성 : 무결성 유지를 위해 데이터를 독립적으로 저장

- 보안

- 데이터 중복 최소화

- 데이터의 안전성 향상

- 응용 프로그램 제작 및 수정이 쉬워짐

 

DBMS가 여러 종류가 있다 : 계층형(Hierachical)/망형(Network)/관계형(Relational) 등

SQL은 관계형 DB에서 사용되는 언어

-> DBMS 제작사와 독립적

-> 다른 시스템으로의 이식성이 좋음

-> 계속 발전하는 SQL 표준

-> 대화식 언어

-> 분산형 클라이언트/서버 구조

-> 모든 DBMS의 SQL문이 완벽하게 같지는 않음에 주의

 

 

요구사항 분석/설계/모델링 : 정보시스템 구축 절차 요약 - 외울 필요는 없고 이해만

-> 정보시스템은 분석/설계/구현/시험/유지보수의 5단계를 거친다.

-> 분석 : 무엇을 할 것인가

-> 설계 : 시스템을 어떻게 구축할 것인가

-> 분석/설계가 전체 공정의 절반 이상을 차지

-> 분석/설계에서 가장 중요한 과정 중 하나는 DB 모델링 : 현실의 데이터를 SQL 서버에 어떻게 옮겨 놓을 것인지 결정

-> 데이터의 특성을 추출해 SQL 서버로 옮긴다.

 

DB 생성 절차 : DBMS 설치, DB 생성, 테이블 생성, 데이터 입력, 데이터 조회/활용

 

Transaction : DB가 처리하는 하나의 작업. 쿼리의 작업 단위

-> 반드시 성공하거나, 하나라도 잘못되면 모조리 Rollback : 원자성

 

스키마(Scheme) : DB를 구성하는 개체, 속성, 관계 등 이것저것을 의미.

행(레코드), 열(속성)

 


  • SQL 실습

 

USE DB명;

-> 사용할 DB 선택 : USE AD;

-> Windows SQL Server는 SHOW 명령어가 없다. SHOW DATABASES; 이런 거 안됨.

-> 대신 쓰는 SQL문 : SELECT name, database_id, create_date FROM sys.databases ;

 

SELECT {select_list} FROM {Table_list};

-> 이것저것 추가로 넣을 수 있는 구문이 있지만 필수 구문은 이 정도.

[ WITH <common_table_expression>]

SELECT select_list [ INTO new_table ]

[ FROM table_source ]

[ WHERE search_condition ]

[ GROUP BY group_by_expression ] [ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

 

* 는 모든 문자열(전체 = 모든 속성)을 의미

 

Windows SQL Server에서 SQL문을 실행할 경우에는 화면에 있는 모든 SQL을 실행.

-> 이전 라인에 있는 SQL문을 이미 실행했더라도, 다른 SQL문을 적고 실행하면 다시 실행된다. 

-> 해당 SQL문을 드래그해서 실행하면 그 문장만 실행된다.

 

한 줄 주석 처리는 앞에 -- 붙이고, 여러 줄 주석 처리는 /* 와 */ 사이

 

1. 설정된 서버의 명칭 확인
SELECT @@SERVERNAME

2. 전체 DB 확인
SELECT name, database_id, create_date FROM sys.databases ;

3.DB 내 테이블 확인
SELECT * FROM INFORMATION_SCHEMA.TABLES;

4. 테이블 구조 확인
SELECT 
  TABLE_NAME,   
  COLUMN_NAME,
  DATA_TYPE, 
  CHARACTER_MAXIMUM_LENGTH,
  IS_NULLABLE
     FROM INFORMATION_SCHEMA.COLUMNS;

 

WHERE 조건문 중...

[속성] LIKE '_종%' : 앞에 어떤 문자(열)가 있고, '종' 문자가 있고, 그 뒤에 다시 문자(열)가 있는 형태

-> 잘 안 씀

서브 쿼리와 ANY/ALL/SOME

-> 서브 쿼리 결과 중 하나라도 만족/모두 만족/(SOME은 ANY와 유사)

 

ORDER BY [속성] [ASC | DESC]

-> ASC는 오름차순(기본값), DESC는 내림차순

 

SELECT [복사할 열] INTO [새로운 테이블] FROM [기존 테이블]

-> 새로운 테이블로 복사

 

SELECT [속성 1], [속성 2] GROUP BY [속성 1] 

-> 그룹으로 해당 속성 값들을 묶어주는 역할

-> 예시 : SELECT userID, SUM(amount) FROM buyTBL GROUP BY userID;

-> userID로 그룹을 만들어 특정 userID를 가진 행의 amount들을 모두 합해서 반환

-> 집계 함수로 특정 그룹으로 분리하는 경우엔 GROUP BY, 그룹 구분 없이 중복 데이터 제거를 원할 경우에는 DISTINCT

-> 속성 1이 SELECT에 없어도 된다.

 

WHERE [조건문 1] HAVING [조건문 2]

-> 집계 함수로 조건 비교를 하는 경우에 사용.

-> 조건문 2에는 집계 함수가 사용된다.

 

집계 함수

AVG() : 평균을 구함

MIN()/MAX() : 최솟값/최댓값 구함

COUNT() : 행의 개수 구함

STDEV() : 표준편차 구함

VAR() : 분산을 구함

SUM() : 합계를 구함


3교시 초반 다시 듣기.

SQL이 대부분 아는 내용이라 이론 시간에는 좀 지루했다.

'교육' 카테고리의 다른 글

[복습] 3~4주차 복습  (0) 2021.08.16
[19일 차] 21.08.13 : Windows Server 8  (0) 2021.08.13
[17일 차] 21.08.11 : Windows Server 6  (0) 2021.08.11
[16일 차] 21.08.10 : Windows Server 5  (0) 2021.08.10
[15일 차] 21.08.09 : Windows Server 4  (0) 2021.08.09

댓글