ms sql server 2가지 방식
1. 툴을이용하는 방식
2. sql문을 사용하 명령하는 방식
접속 환경설정 localhost or 자기 아이피 주소
최초 설치시 지정해놓은 아이디 비밀번호로 접속 설정
데이타 인서트시 : 개체선택후 상위 200개편집
네이버 검색 : pubs northwind에서 파일2개 다운후 실행하여
예제 파일을 커밋 하도록 한다.
-- 데이터베이스 생성
-- SQL을 사용해서.. DDL
-- 스크립트 파일(명령어들의 집합) -> 파일만 있으면 재사용
create database Test;
-- 데이터베이스 삭제
drop database Test;
-- 테이블 생성
create table 주소록
(
이름 varchar(10) not null,
주소 varchar(50) not null,
나이 int null
)
-- 테이블 삭제
drop table 주소록;
-- DML
-- 데이터 입력
-- 레코드 삽입
-- insert into 테이블명(컬럼리스트)
-- values(값리스트);
-- SQL 문자열 -> '문자열'
insert into 전화번호부(이름, 전화번호)
values ('하하하', '010-123-4567');
insert into 전화번호부(이름, 전화번호)
values ('호호호', '010-000-1111');
-- 전화번호부 테이블 생성
drop table 전화번호부;
-- 동명이인 허용X
create table 전화번호부
(
이름 varchar(10) not null primary key,
전화 varchar(20) not null
)
insert into 전화번호부 (이름, 전화)
values ('홍길동', '012-345-6789');
-- SQL = select
-- DML
-- insert, update, delete, select(*****)
-- 데이터 가져오기
-- select 컬럼리스트 from 테이블명
select 이름, 전화 from 전화번호부; -- 가독성O, 타이핑, 속도빠름
select * from 전화번호부; -- * : 모든 컬럼(all)
-- 컬럼리스트 유형..
-- 일부 컬럼만 select
select 이름 from 전화번호부;
select 전화 from 전화번호부;
-- 같은 컬럼 2번이상 select
select 이름, 이름 from 전화번호부;
select 이름, 전화, 이름, 전화 from 전화번호부
select 이름 + '님' from 전화번호부;
select 이름 + 전화 from 전화번호부;
select 이름 + '(' + 전화 + ')' from 전화번호부;
-- 별칭(Alias)
-- 1. 가공된 결과 컬럼값에 이름을 붙이는 용도
select 이름 + '님' as '고객명' from 전화번호부;
select 이름 as '친구이름' from 전화번호부;
-- select를 통해서 종(세로)으로 필터링
-- pubs.titles 테이블
select * from titles;
select title as [도서명], price as [가격] from titles;
-- 종으로 필터링
-- : 원하는 컬럼만을 select
-- 횡으로 필터링
-- : 원하는 레코드만을 select
-- 모든 레코드는 primary key를 대상으로 오름 차순 정렬
select title_id, title, price from titles;
select * from 전화번호부;
insert into 전화번호부(이름, 전화) values ('김유신', '011-111-3333');
-- 현재 순서에서 상위 n개를 select
-- 게시판 1페이지..
select top 5 title_id, title, price from titles;
-- 정렬
-- 특정컬럼을 대상으로 오름차순(ascending),내림차순(descending)
-- 정렬 지정X -> primary key로 정렬
-- order by 컬럼명 [asc | desc]
select title_id, title, price from titles order by price asc;
select title_id, title, price from titles order by price desc;
select title_id, title, price from titles order by title asc;
-- 서점에서 가장 비싼책의 제목?
select top 1 title from titles order by price desc;
CREATE TABLE Test
(
seq int identity(1,1) primary key not null,
num int not null,
string varchar(100) not null
)
--SQL 컬럼을추가하기
ALTER TABLE Test
add data2 nvarchar(10) not null;
--컬럼삭제하기
ALTER TABLE Test
DROP column data;
--컬럼수정
ALTER TABLE Test
ALTER column string varchar(2) null;
--DML(데이터조작)
--1. SELECT : 데이터를가져오기
--2. INSERT : 데이터를입력하기
--3. UPDATE : 데이터를수정하기
--4. DELETE : 데이터를삭제하기
--INSERT
--INSERT [into] 테이블명(컬럼리스트) values (값리스트);
SELECT *
FROM Test;
CREATE TABLE tblMemo
(
seq int identity(1,1) primary key,--구별할수있는고유번호1초기값1증가값메모번호
title varchar(200) not null, -- 메모제목
content varchar(4000) not null, --메모내용
regTime datetime not null --작성시간
)
--날짜기록(날짜자체를문자형으로저장하겠다.)
--1. datetime형
--2. varchar형
--id필드값은우리가건드릴수없다.
INSERT INTO tblMemo (title, content, regTime)
values('','','');
INSERT INTO tblMemo values('메모입니다.','메모내용입니다.', '2012-03-28
14:45:00');
-- 컬럼리스트는테이블원본과순서가달라도상관없음
-- 컬럼리스트의순서와값리스트의순서는일치해야함!!
-- 입력할때값의순서는컬럼의순서와맞춰야한다.
INSERT INTO tblMemo (content, title, regTime) values('하하하', '호호호', '2012-03-28
14:45:00');
CREATE TABLE Test3
(
seq int identity(1,1) not null primary key,
data1 varchar(100) not null,
data2 varchar(100) null,
data3 varchar(100) not null default('기본값'),
data4 int not null,
data5 int not null default(100)
)
--1. 풀버전
INSERT INTO Test3(data1, data2, data3, data4, data5)
values('하나', '둘', '셋', 10, 20);
--2. 컬럼리스트를생략가능(반드시값리스트의순서는테이블원본의컬럼순서대로기입****)
INSERT INTO Test3 VALUES('one', 'two', 'three', 30, 40);
--3. 컬럼리스트의순서는마음대로
INSERT INTO Test3 (data4, data5, data1, data2, data3)
VALUES(50,60, 'AAA', 'BBB', 'CCC');
--4-1. 컬럼에null값을넣기
INSERT INTO Test3(data1, data2, data3, data4, data5)
VALUES('가', null, '다', 10, 10);
--4-2. 컬럼에null값을넣기
INSERT INTO Test3 (data1, data3, data4, data5)
VALUES('가', '다', 10, 10);
--4-1-1
INSERT INTO Test3(data1, data2, data3, data4, data5)
VALUES('가', null, '다', 10, 10);
--5 default값처리
INSERT INTO Test3(data1, data2, data4)
values('하나', '둘', 10);
--5-1. default 값처리
INSERT INTO Test3(data1, data2, data3, data4, data5)
values('하나', '둘', '셋', 10, 20);
--5-2 default 값처리
INSERT INTO Test3('하나', '둘', default, 10, default);