ภาษา SQL

เริ่มโพสต์โดย เทอร์โบบูสเตอร์, 05 ก.ค. 2006, 14:53 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

เบียร์

ถ้าของ php มีเพียบเลยครับ

อ้างอิง*  AYLOOP (http://homepage.mac.com/sbarnum/code/alyoop/)
    * Changes (http://www.sitepoint.com/forums/showthread.php?t=214183)
    * DB_DataContainer  (http://www.appelsiini.net/~tuupola/php/DBDataContainer/): DBDataContainer is a PEAR compliant database persistence layer and data encapsulation class. Based on ActiveRecord.
    * DB_DataObject (PEAR) - official PEAR page  (http://pear.php.net/package/DB_DataObject)
    * DBTable (http://wiki.ciaweb.net/yawiki/index.php?area=DBTable): DB_Table is an object-oriented interface to a database table. PEAR-compliant. Based on ActiveRecord.
    * DBDO (PECL) (http://pecl.php.net/package/DBDO): Same as DB_DataObject, except as a PHP Extension
    * Entity (http://tanus.dotgeek.org/): The Entity framework is a generic object to database mapping architecture.
    * EZPDO (http://www.ezpdo.net): Eazy PHP Data Objects, a lightweight and easy-to-use object-relational mapping and data persistence solution for PHP
    * LDO (http://www.wojciechszela.com): Lightweight Data Objects, lightweight, open, feature rich and intuitive persistence solution for PHP
    * Metastorage (http://www.meta-language.net/metastorage.html): Metastorage is an application that automatically generates code for an Object Oriented API to store, retrieve and manipulate the data objects of classes described in a high level data model definition.
    * MyObjects (http://www.myobjects.org/): MyObjects is a set of tools for class generation, database schema generation and object persistence for Php 5 and MySql.
    * phpersistence (http://www.phpersistence.org/): phpersistence is an object oriented persistence layer for php, using transparent object relational mapping.
    * PhpOpenbiz (http://www.phpopenbiz.org/) PhpOpenbiz is a metadata-driven framework that implements MVC, ORM and object persistence. It also has an Eclipse plugin to help ORM configuration.
    * PPO (PHP Persistent Object) - Changes for PHP5
    * Perdure (http://sourceforge.net/projects/perdure/): Perdure is a transparent object relational persistence and query tool for PHP.
    * Propel (http://propel.phpdb.org): Propel is a full-service object persistence and query toolkit for PHP5.
    * phpCr (http://www.phpcr.org/): php Content Repository is a collection of interfaces. It aims to provide a framework for implementing jsr-170 (http://jcp.org/aboutJava/communityprocess/pfd/jsr170/index.html) for php.
    * DBOO & DBOO2  (http://www.sergiocarvalho.com/wiki/OpenSourceSoftware/#toc3): A PEAR-compliant orm for php4 and php5
    * Php Object Generator (POG)  (http://www.phpobjectgenerator.com/): Free Online Generator which automatically generates tested ORM code that you can use for your PHP4/PHP5 application.
    * Qcodo (http://www.qcodo.com/): Code-generation based PHP Development Framework that not only creates your ORM, but also creates classes for your forms. Architected to allow full customization to work hand-in-hand with infinite code regenerations. Recently presented at the Zend/PHP Conference (http://zend.kbconferences.com/).

ที่มา : _http://weblog.punneng.net/2005/11/30/object-relational-mapping

ใน link ยังมีรายละเอียดของ java กับ .net ด้วยครับ

java

http://www.javaskyline.com/database.html

.net

http://sharptoolbox.com/categories/object-relational-mappers




นายโอ้เอ้

ขอบคุณครับ  :32:
Today you , Tomorrow me.

ยุนเอ

ruby ก็ได้นะครับ

เห็นเรียกแค่ find(name:=>"a") ประมาณนี้
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

ต้น

#108
ครับ ใน ruby จะใช้เป็น active record ซึ่งเป็นการทำ ORM model ลักษณะเดียวกันกับ hibernate ใน java

แต่ใน ruby จะได้เปรียบตรงการเขียนคอนฟิกไฟล์ที่น้อยกว่ามากๆ

รายละเอียดเพิ่มเติมครับ

http://weblog.punneng.com/2006/5/20/ruby-on-rails-activerecord

Castle Active Record ของทางฝั่ง .NET

http://coredeveloper.net/blogs/wiennat/archive/2008/04/13/castle-active-record-intro.aspx

โตน


php เขียนเป็นออปเจ็ค ก็ง่ายดีนะพี่โอ้เอ้
E entao pergunta Se eu estou em paz E eu digo sim, i feel wonderful tonight

WuTtY

อ้างคำพูดจาก: icez เมื่อ 12 มี.ค. 2008, 12:39 น.

ต้นฉบับ:
SELECT SUM(area_male_population) + SUM(area_female_population) AS population
FROM tbl_area WHERE state_id IN (
SELECT state_id FROM tbl_state WHERE country_id IN (
SELECT country_id FROM tbl_coutry WHERE country_id = xxx
));

แปล: sub นรก :30:
เลือก ผลรวม(area_male_population) + ผลรวม(area_female_population) ในฐานะ population
จาก tbl_area โดยที่ state_id อยู่ใน (
เลือก state_id จาก tbl_state โดยที่ country_id อยู่ใน (
เลือก country_id จาก tbl_coutry โดยที่ country_id = xxx
));

แปล: sub นรก กำลัง 2
เลือก ผลรวม(พื้นที่_ชาย_ประชากร) + ผลรวม(พื้นที่_หญิง_ประชากร) ในฐานะ ประชากร
จาก ทีบีแอล_พื้นที่ โดยที่ รัฐ_ไอดี อยู่ใน (
เลือก รัฐ_ไอดี จาก ทีบีแอล_รัฐ โดยที่ ประเทศ_ไอดี อยู่ใน (
เลือก ประเทศ_ไอดี จาก ทีบีแอล_ประเทศ โดยที่ ประเทศ_ไอดี = xxx

นายโอ้เอ้

อ้างคำพูดจาก: WuTtY เมื่อ 13 ส.ค. 2008, 15:48 น.
แปล: sub นรก กำลัง 2
เลือก ผลรวม(พื้นที่_ชาย_ประชากร) + ผลรวม(พื้นที่_หญิง_ประชากร) ในฐานะ ประชากร
จาก ทีบีแอล_พื้นที่ โดยที่ รัฐ_ไอดี อยู่ใน (
เลือก รัฐ_ไอดี จาก ทีบีแอล_รัฐ โดยที่ ประเทศ_ไอดี อยู่ใน (
เลือก ประเทศ_ไอดี จาก ทีบีแอล_ประเทศ โดยที่ ประเทศ_ไอดี =  :04:
Today you , Tomorrow me.

narii

ว้าว กำลังเรียนอยู่เลยค่ะ เป็นประโยชน์มาก ขอบคุณค่ะ :45:
แต่ทำไมรูปมันไม่ขี้นล่ะคะ
whatever will be will be

narii

กำลังเรียนอยู่เลย
ไว้ค่อยมาหาความรู้
whatever will be will be

ยุนเอ



ขุด  :37:

ช่วงนี้ inner join บ่อยมาก จนอธิบายถูกแล้วครับ  :30:

แปลเป็นไทยง่ายๆ ว่า

รหัสลับที่เราใส่ไว้ที่ table หนึ่ง
แต่คำแปลอยู่อีก table หนึ่ง

พอเราต้องการคำแปล
เราก็ inner join เอาครับ ตามที่เราใส่รหัสไว้

เช่น

table personal
name | surname | sex_id <--- รหัสลับ

table sex
sex_id | sex_type <-- คำแปล

จะคิวรีหาคนจาก personal แล้วอยากรู้เพศด้วย แต่ถ้าคิวรีเฉยๆ จะได้รหัสลับบ้าบออะไรไม่รุ้อออกมา
เลย inner join ครับผม

select p.name, p.surname, s.sex_type
from personal p
  inner join sex s
  on (p.sex_id = s.sex_id) <-- เป็นตัวบอกว่ารหัสที่ personal นะเอามาถอดรหัสที่ sex นะ



:53: :53: :53:

ถ้าใส่รหัสไว้หลาย table ก็ใส่อย่างนี้ไปอีก

ข้อควรวะรัง  :37:
อย่าลืมตั้งชื่อเล่นหน่อมแหน้มให้ table คุณด้วยยยยยยย




เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

น็อต

INNER JOIN ต่างจาก LEFT JOIN หรือ RIGHT JOIN ยังไงครับ  :09:

ปกติผมใช้ LEFT JOIN ตลอดเลย
.. What you think, you are ..

☼ แอนมินิ ☼

left join กับ right join มันถือเป็น outer join ล่ะ (ถ้าจำไม่ผิด)

เช่น ตารางแรก คือตารางชื่อคน กับแผนก ถ้า - คือยังไม่สังกัดแผนก
ชื่อ    แผนก
aaa   1
bbb   2
ccc    -
ddd   4
eee   -

ตารางที่ 2 รายละเอียดแผนก
รหัส ชื่อแผนก  bla bla
1    nnn
2    mmm
3    ppp
4    qqq
5    yyy

ถ้า left outer join แสดงว่ายึดตารางที่เราใส่ทางซ้ายเป็นหลัก เช่น ตารางแรกอยู่ทางซ้าย
จะได้ผลลัพธ์คือ
ชื่อคนทุกคนไม่ว่าจะมีแผนกหรือไม่ก็ตาม
aaa  nnn
bbb  mmm
ccc    -
ddd   qqq
eee   -

ถ้า left outer join แสดงว่ายึดตารางที่เราใส่ทางซ้ายเป็นหลัก เช่น ตารางที่สองอยู่ทางซ้าย
จะได้ผลลัพธ์คือ
ชื่อทุกแผนกแทน

ถ้า inner join จะได้
aaa   nnn
bbb   mmm
ddd   qqq

จริงๆตัวอย่างยังไม่ค่อยดีเท่าไหร่
แต่ไม่ค่อยมีเวลาอธิบายแล้ว คงไม่งงเนอะ  :40:




น็อต

ถ้าใส่

ตารางแรก left join ตารางสอง on (ตารางแรก.แผนก = ตารางสอง.รหัส)

อย่างงี้ก็ได้ผลแบบ inner รึเปล่าครับ ?

.. What you think, you are ..

กากก่อเกรียนนู้บ

อ้างคำพูดจาก: แอนค่ะ เมื่อ 16 ก.พ. 2009, 22:09 น.
จริงๆตัวอย่างยังไม่ค่อยดีเท่าไหร่
แต่ไม่ค่อยมีเวลาอธิบายแล้ว คงไม่งงเนอะ  :40:

:05:/ งงครับ

☼ แอนมินิ ☼

เดี๋ยวมีเวลาจะอธิบายใหม่นะ   :30: :05a:

SMF 2.1.7 © 2026, Simple Machines