[MSSQL] 윈도우 함수
·
db
> salaries 테이블에서 모든 열을 조회하세요 > 다음 명령어를 포함하여 select에서 네개의 행을 추가합니다 ROW_NUMBER() over (order by salary desc) as ROW_NUMBER, RANK() over (order by salary desc) as RANK, DENSE_RANK() over (order by salary desc) as DENSE_RANK, NTILE(100) over (order by salary desc) as NTILE > salaries 테이블에서 모든 열을 조회하세요 > 윈도우 함수를 사용하여 playerID를 파티션으로 설정하여 playerID별로 salary의 순위를 표시하세요 > 다음 명령어를 포함하여 select에서 한개의 행을 추가합..
[MSSQL] 변수
·
db
✅ 변수 > 두개의 변수를 만듭니다 > i라는 이름의 변수는 integer로 선언과 동시에 20으로 설정하세요 > j라는 이름의 변수는 intrger로 선언 후 별도의 명령줄로 10으로 설정하세요 > i와 j를 출력하세요 > baseballData 데이터베이스에서 players 테이블과 salaries테이블 중 playerID가 같은 튜플을 내부조인하세요 > 내부조인한 테이블에서 salary가 가장 높은 top1의 nameFirst를 @firstName으로 설정하세요 > @firstName은 NVARCHAR(15)로 생성하세요 > baseballData 데이터베이스에서 players 테이블과 salaries테이블 중 playerID가 같은 튜플을 내부조인하세요 > 내부조인한 테이블에서 salary가 가장..
[MSSQL] TRANSACTION TRY CATCH
·
db
현재 키와 인덱스 설정은 다음과 같습니다 > GameDB 데이터베이스에 두개의 튜플을 추가하세요 > insert into accounts values(1, 'bonnate1', 100, GETUTCDATE()); > insert into accounts values(2, 'bonnate2', 100, GETUTCDATE()); > 출력하여 현재 테이블을 확인하세요 > GameDB 데이터베이스에 두개의 튜플을 추가하세요 > insert into accounts values(1, 'bonnate1', 100, GETUTCDATE()); > insert into accounts values(2, 'bonnate2', 100, GETUTCDATE()); > 트랜잭션, 예외처리문을 사용하여 추가 명령을 수행하는 ..
[MSSQL] JOIN (INNER, OUTER)
·
db
> 다음 상태에서 실습을 합니다 > testA, testB 테이블을 크로스조인하세요 > baseballData로 돌아옵니다 > baseballData 데이터베이스에서 players 테이블의 playerId와 salaries 테이블의 playerId를 내부조인하세요 > baseballData 데이터베이스에서 players 테이블의 playerId와 salaries 테이블의 playerId를 LEFT JOIN하세요 > baseballData 데이터베이스에서 players 테이블의 playerId와 salaries 테이블의 playerId를 RIGHT JOIN하세요
[MSSQL] UNION
·
db
> salaries에서 salary가 300,0000 이상인 playerId와 players에서 birthMonth가 12인 playerID를 UNION으로 합쳐 하나의 테이블로 표시하세요 > salaries에서 salary가 300,0000 이상인 playerId와 players에서 birthMonth가 12인 playerID를 UNION으로 합쳐 하나의 테이블로 표시하세요 > UNION을 사용할때 중복제거를 하지 않도록 하세요 > 결과가 z-a 순서로 보이도록 하세요 > salaries에서 salary가 300,0000 이상이면서 playerId와 players에서 birthMonth가 12인 playerID를 합쳐 하나의 테이블로 표시하세요 > 결과가 a-z 순서로 보이도록 하세요 > salarie..
[MSSQL] INDEX
·
db
💡 Index? 데이터베이스 인덱스는 인덱스 데이터 구조를 유지하기 위해 추가 쓰기 및 저장 공간 비용으로 데이터베이스 테이블에서 데이터 검색 작업의 속도를 향상시키는 데이터 구조입니다. 인덱스는 데이터베이스 테이블에 액세스할 때마다 데이터베이스 테이블의 모든 행을 검색하지 않고도 데이터를 빠르게 찾는 데 사용됩니다. 인덱스는 데이터베이스 테이블의 하나 이상의 열을 사용하여 생성할 수 있으며, 빠른 무작위 조회 및 정렬된 레코드의 효율적인 액세스를 위한 기반을 제공합니다. > 독립적인 값을 가지고 빠른 색인을 위해 인덱스 설정을 해야합니다 > accounts 테이블에서 accountName에 대해 논클러스터 인덱스를 생성하세요 > unique 속성을 붙이고, index1이라는 이름으로 설정하세요 > 생성..
[MSSQL] CREATE ALTER DROP
·
db
> GameDB이름의 데이터베이스를 생성하고 생성한 데이터베이스에 연결하세요 > GameDB 데이터베이스에 accounts 테이블을 추가하세요 제약조건은 다음과 같습니다 > accountId int not null > accountName varchar(10) not null > coins int default 0 > createTime datatime > 생성한 테이블을 확인하기위해 출력하세요 > 직전에 생성한 테이블을 삭제하세요 > 삭제한 테이블을 다시 생성하세요(생략) > datatime타입의 lastEnterTime을 accounts 테이블에 추가하세요 > 확인을 위해 테이블을 출력하세요 > lastEnterTime을 accounts 테이블에서 제거하세요 > 확인을 위해 테이블을 출력하세요 > a..
[redis] 실습 준비
·
db
📣 서론 RDBMS가 아닌 'noSQL'이라고 불리는 종류 중 하나인 redis를 아주 간단하게 사용해보도록 하겠습니다. ✅ 실습 준비 1. 실습을 위한 redis를 다운로드합니다. Releases · tporadowski/redis Native port of Redis for Windows. Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Se... github.com 'Redis-x64-5.0.14.1.zip'를 다운로드받고 압축해제합니다. 2. redis를 실행합..
[MSSQL] 복합 인덱스의 컬럼 순서
·
db
📌 준비하기 'northwind database' 를 활용하여 실습하였습니다. 아래의 링크에서 확인하거나 [여기]를 클릭하여 쿼리문을 볼 수 있습니다. GitHub - microsoft/sql-server-samples: Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge - GitHub - microsoft/sql-server-sampl..
[MSSQL] SUB QUERY
·
db
> salaries 테이블에서 salary가 가장 높은 playerId의 값을 참조하여 players 테이블의 정보를 표시하세요 (단일행) > salaries 테이블에서 상위 20개의 salary의 playerId값을 참조하여 players 테이블의 정보를 표시하세요 (다중행) > battingpost 테이블과 batting테이블서 둘 다 존재하는 playerId를 추출하여 players 테이블에서 정보를 표시하세요 > 단, IN문과 EXISTS문을 각각 사용하여 표시하세요
[MSSQL] INSERT DELETE UPDATE
·
db
> salaries 테이블에 (2023, 'KOR', 'NL', 'NEWPLAYER', 10000000)라는 튜플을 추가하세요 > salaries 테이블에 (2023, 'KOR', 'NL', 'NEW2', 10000000)라는 튜플을 추가하세요 > 단, 'NL', 'NEW2'의 순서를 바꿔 (2023, 'KOR', 'NL', 'NEW2', 10000000)의 형태로 삽입하세요 > 그리고, 테이블을 yearId를 내림차순하여 출력하세요 > salaries 테이블에 (2023, 'KOR', 'NEW3', 'NL')라는 튜플을 추가하세요 > 단, 마지막 컬럼인 salary는 null로 설정하세요 > 그리고, 테이블을 yearId를 내림차순하여 출력하세요 > 앞서 세개의 예제에서 생성한 튜플을 모두 제거하세요 ..
[MSSQL] 복합 인덱스
·
db
📌 준비하기 'northwind database' 를 활용하여 실습하였습니다. 아래의 링크에서 확인하거나 [여기]를 클릭하여 쿼리문을 볼 수 있습니다. GitHub - microsoft/sql-server-samples: Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge - GitHub - microsoft/sql-server-sampl..
[MSSQL] GROUPBY HAVING
·
db
> batting 테이블에서 teamId로 그룹을 묶고 teamId, teamId별 튜플의 개수를 출력하세요 > 추가로, 그룹한 teamId별로 HR(홈런)의 개수의 합을 출력하세요 > batting 테이블에서 teamId별로 묶고, 각 팀의 홈런(HR)개수를 합하여 출력하세요 > 홈런 개수를 기준으로 내림차순하여 정렬하세요 > batting 테이블에서 teamId별로 묶고, 각 팀의 홈런(HR)개수를 합하여 출력하세요 > 홈런 개수를 기준으로 내림차순하여 정렬하세요 > 홈런 개수가 200 이상인 팀만 출력하세요 > batting 테이블에서 단일년도에 가장 홈런을 많이 날린 팀을 출력하세요
[MSSQL] 집계 함수
·
db
> players 테이블의 모든 튜플 개수를 출력하세요 > players 테이블에서 birthCity를 모두 출력하되, 중복을 제거하고 모든 값이 유일하도록 출력하세요 > players 테이블에서 birthCity를 중복을 제거하고 모든 값이 유일한 결과의 개수를 출력하세요 > players 테이블에서 weight의 평균을 출력하세요. > 단, avg 함수를 사용하지 마세요 > players 테이블에서 weight의 평균을 출력하세요 > 단 weight가 null일경우 0으로 간주하여 평균을 계산하세요 > players 테이블에서 birthYear가 가장 큰 값과 작은 값을 각각 출력하세요
[MSSQL] CASE
·
db
> players 테이블에서 nameLast, birthMonth, birthSeason을 조회하세요 > birthSeason은 birthMonth의 값을 참조하여 아래 내용을 따르세요 > [12,1,2: 겨울] [3, 4, 5: 봄] [6, 7, 8: 여름] [9, 10, 11: 가을] > 1~12의 값이 아니라면 알수없음으로 표시하세요 > players 테이블에서 nameLast, birthMonth, birthSeason을 조회하세요 > birthSeason은 birthMonth의 값을 참조하여 아래 내용을 따르세요 > [12,1,2: 겨울] [3, 4, 5: 봄] [6, 7, 8: 여름] [9, 10, 11: 가을] > birthMonth가 null이라면 null로 표시하세요
[MSSQL] DATETIME
·
db
> '23년 2월 17일 01시 02분 03초 040밀리초를 datatime 타입으로 캐스트하여 출력하세요 > 현재의 datetime을 출력하세요 > '23년 2월 17일 01시 02분 03초 040밀리초를 삽입하세요 > dateTimeTest에서 time이 '23년 2월 17일 13:00 이후인 튜플을 찾아 출력하세요 > dateTimeTest에서 time이 '23년 2월 17일 13:00 이후인 튜플을 찾아 출력하세요 > 그리니치 평균시 현재 시간을 출력하세요 > 다음 내용을 수행하세요 > `23.02.17을 기준으로 1년을 더한 결과를 출력하세요 > `23.02.17을 기준으로 31일을 더한 결과를 출력하세요 > `23.02.17을 기준으로 1초를 뺀 결과를 출력하세요 > `23.02.17과 `23..
[MSSQL] 수치와 문자열 활용
·
db
> players 테이블에서 nameLast와 birthyear을 조회하세요 > birthYear을 연산하여 나이로 수정하여 age라는 컬럼으로 추출하세요 > deathYear과 birthyear이 비어있으면 제외하세요 > birthyear을 연산한 결과 age를 오름차순으로 정렬하세요 > players 테이블에서 nameLast와 birthyear을 조회하세요 > birthYear을 연산하여 나이로 수정하여 age라는 컬럼으로 추출하세요 > deathYear과 birthyear이 비어있으면 제외하세요 > age가 50 이하인 튜플만 추출하세요 > birthyear을 연산한 결과 age를 오름차순으로 정렬하세요 > players 테이블에서 이름을 조회하세요 > nameFirst과 nameLast를 공백을..
[MSSQL] ORDER BY
·
db
> players 테이블에서 모든 열을 조회하세요 > birthYear 항목이 비어있지 않아야 합니다 > birthYear을 오름차순(작은 수에서 큰수로)으로 정렬하세요 > players 테이블에서 모든 열을 조회하세요 > birthYear 항목이 비어있지 않아야 합니다 > birthYear을 내림차순(큰수에서 작은 수로)으로 정렬하세요 > players 테이블에서 name, birthYear, birthMonth, birthDay열을 조회하세요 > birthYear, birthMonth, birthDay 항목이 비어있지 않아야 합니다 > 나이가 많은 순서부터 정렬하세요 > birthDay값의 동일함은 고려하지 않습니다 > players 테이블에서 name, birthYear, birthMonth, bi..
[MSSQL] SELECT FROM WHERE
·
db
> players 테이블에서 모든 열을 조회하세요 > players 테이블에서 nameFirst, nameLast, birthYear열을 조회하세요 > players 테이블에서 nameFirst, nameLast, birthYear열을 조회하세요 > nameFirst를 성씨, nameLast를 이름, birthYear를 생년으로 이름을 변경하여 출력하세요 > players 테이블에서 nameFirst, nameLast, birthYear열을 조회하세요 > birthYear이 1866인 튜플만 출력하세요 > players 테이블에서 nameFirst, nameLast, birthYear열을 조회하세요 > birthYear이 1866이 아닌 튜플만 출력하세요 > players 테이블에서 nameFirst, ..
[MSSQL] 실습 준비
·
db
📣 서론 포톤 서버를 이용하여 멀티플레이를 구축하다가 조금 더 학습을 하고자 Socket통신 방식의 서버를 구축하고, 이제는 유연하게 DB를 관리하기위해 MSSQL을 학습하고 정리하고자 이 글을 씁니다. ✅ 실습 준비 1. MSSQL을 설치합니다. SQL Server Downloads | Microsoft Get started with Microsoft SQL Server downloads. Choose a SQL Server trial, edition, tool, or connector that best meets your data and workload needs. www.microsoft.com 2. Download SQL Server Management Studio (SSMS)를 설치합니다. Do..
bonnate
'db' 카테고리의 글 목록