본문 바로가기

   
Programming/MS - SQL

예제파일, insert, select, top, create

반응형
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);



반응형