Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sql & DB 2009.04.07.

Similar presentations


Presentation on theme: "Sql & DB 2009.04.07."— Presentation transcript:

1 Sql & DB

2 DataBase 사용하기 Access Delphi에서 Access사용하기 Sample mdb 복사 (C:\db.mdb)
Table Field Delphi에서 Access사용하기 ADO

3 Access (sample mdb : db.mdb)

4 Access 디자인보기(t_div)

5 Access Table(t_div)

6 Access Table 구조 t_div 분류코드 div_no Long(일련번호) div_kind 텍스트(50) 분류
div_model 텍스트(50) 모델 div_maker 텍스트(50) 제조사 div_i_price Long 구매가 div_j_price Long 지도가 t_mk 오픈마켓 mk_no Byte 오픈마켓코드 mk_name 텍스트(50) 오픈마켓이름 t_fee 수수료 fee_no Long t_div(div_no)분류코드 fee_mk Byte t_mk(mk_no)오픈마켓코드 fee_value Single 수수료율

7 Access Table 구조 t_sp 상품 sp_no 텍스트(50) 오픈마켓 상품코드
sp_mk Byte t_mk(mk_no)오픈마켓 코드 sp_div long t_div(div_no)분류코드 일련번호 sp_name 텍스트 상품명 sp_price Long 판매가 sp_coupon Long 쿠폰가(할인가) sp_HTH 텍스트(50) 택배비관련 sp_st Byte 상태(판매중, 정지)

8 Access Table 관계 t_mk ------ mk_no mk_name t_sp ------ sp_no sp_mk
sp_div sp_name sp_price sp_coupon sp_HTH sp_st t_fee ------ fee_no fee_mk fee_value t_div div_no div_kind div_model div_maker div_i_price div_j_price

9 화면구성 컴포넌트 속성명 값 ADOConnection1 Name ADOConn ADOQuery1 Name ADOQuery
컴포넌트 속성명 값 ADOConnection1 Name ADOConn ADOQuery1 Name ADOQuery StringGrid1 Name SG1

10 DB연결1 컴포넌트 ADOConn

11

12 DB연결2 컴포넌트 ADOQuery

13 procedure TForm1.Button1Click(Sender: TObject);
var Sqry : String; i,j : integer; begin Sqry := Trim(memo1.Text); ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(Sqry); ADOQuery.Open; ADOQuery.First; if ADOQuery.RecordCount = 0 then exit; SG1.RowCount := ADOQuery.RecordCount + 1; SG1.ColCount := AdoQuery.FieldCount + 1; i := 0; While not ADOQuery.Eof do begin inc(i); SG1.Cells[0, i] := intToStr(i) + ' '; SG1.Cells[1, i] := ADOQuery.Fields[0].AsString; SG1.Cells[2, i] := ADOQuery.Fields[1].AsString; SG1.Cells[3, i] := ADOQuery.Fields[2].AsString; SG1.Cells[4, i] := ADOQuery.Fields[3].AsString; SG1.Cells[5, i] := ADOQuery.Fields[4].AsString; SG1.Cells[6, i] := ADOQuery.Fields[5].AsString; ADOQuery.Next; end;

14 수정 While not ADOQuery.Eof do begin inc(i);
SG1.Cells[0, i] := intToStr(i) + ' '; SG1.Cells[1, i] := ADOQuery.Fields[0].AsString; SG1.Cells[2, i] := ADOQuery.Fields[1].AsString; SG1.Cells[3, i] := ADOQuery.Fields[2].AsString; SG1.Cells[4, i] := ADOQuery.Fields[3].AsString; SG1.Cells[5, i] := ADOQuery.Fields[4].AsString; SG1.Cells[6, i] := ADOQuery.Fields[5].AsString; ADOQuery.Next; end; 수정 For j:= 1 to ADOQuery.FieldCount do SG1.Cells[j, i] := ADOQuery.Fields[j – 1].AsString;

15 SQL Select Where Order by Group by Having SELECT
[DISTINCT | ALL ] { * | 필드명 [AS 별명] … } FROM 테이블명 [ WHERE 조건] [ GROUP BY 필드명 [HAVING 조건] ] [ ORDER BY 필드명 [ASC | DESC ] ]

16 SQL - Where Select * from t_div 모든행이 출력된다

17 SQL - Where Where의 사용은 조건에 만족되는 것만 추출
Select * from t_div where div_i_price > 10000

18 SQL – Order by 정렬 Select * from t_div where div_i_price > 10000
order by div_i_price order by div_i_price desc

19 SQL-Group by 집단함수 사용 (count, sum, avg, min, max)
Select count(div_no) as 수량 from t_div Select count(div_no) as 수량, div_kind as 종류 from t_div group by div_kind

20 SQL - HAVING Select count(div_no) as 수량, div_kind as 종류
From t_div group by div_kind Having count(div_no) > 4

21 Joins (조인) 여러 개의 테이블에서 데이터를 모아 처리 외부 조인 수행 (outer join)
왼쪽 조인 수행 (left join) 오른쪽 조인 수행 (right join) 등가 조인 수행(equi-join) 비등가 조인 수행(non-equi-join) 테이블을 자체적으로 조인

22 조인 (등가 조인) Select * from t_sp Select * from t_mk Select * from t_div
Select a.sp_no, b.div_maker, b.div_model, c.mk_name From t_sp a, t_div b, t_mk c Where a.sp_div = b.div_no and a.sp_mk = c.mk_no

23 조인 (left join) Select * from t_sp Select * from t_mk
Select * from t_div Select a.sp_no, b.div_maker, b.div_model From t_sp a left outer join t_div b on(a.sp_div = b.div_no)

24 조인 (left join) Access에서 에러
Select * from t_sp Select * from t_mk Select * from t_div Select a.sp_no, b.div_maker, b.div_model, c.mk_name From t_sp a left outer join t_div b on(a.sp_div = b.div_no) ledt outer join t_mk c on(a.sp_mk = c.mk_no) Access에서는 Left outer Join을 한번만 사용 할 수 있음


Download ppt "Sql & DB 2009.04.07."

Similar presentations


Ads by Google