ContentsClass #06: µ¥ÀÌŸº£À̽º ÀÀ¿ë ÇÁ·Î±×·¥
in place April 3, 2002, lasted modified April 10, 2002, working...
µ¥ÀÌŸº£À̽º ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±¸Á¶
- µ¥ÀÌŸº£À̽º·Î ºÎÅÍ ºñÀýÂ÷Àû ÀÚ·á¾ð¾îÀÎ SQL(Structured Query Language)¸¦ ÀÌ¿ëÇÏ¿© ·¹ÄÚµå ÁýÇÕÀ» °Ë»ö
- ÀÚ·á¾ð¾î´Â µ¶¸³ÀûÀ¸·Î ÀÚ·á¾ð¾î 󸮽ýºÅÛ¿¡ ÀÇÇÏ¿© »ç¿ë(Ad hoc Query)µÇ±âµµ ÇÏ°í ÇÁ·Î±×·¥¾ð¾î¿¡ Æ÷ÇԵǾî(Embeded Query) »ç¿ëµÇ±âµµ ÇÔ
- Embeded Query·Î »ç¿ëµÉ °æ¿ì °Ë»öµÈ ·¹ÄÚµå ÁýÇÕÀ» ÀýÂ÷Àû ¾ð¾îÀÎ ÀϹÝÀûÀÎ ÇÁ·Î±×·¥¾ð¾î¸¦ ÀÌ¿ëÇÏ¿© °Ë»ö, º¸¿©Áֱ⠵îÀÇ Ã³¸®¸¦ ÇÔ.
±×¸² 6-1. µ¥ÀÌŸº£À̽º ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±¸Á¶SQL (Structured Query Language)
SQL °³¿ä
SQL(Structured Query Langueage) 1970³â IBM San Jose ¿¬±¸¼Ò¿¡¼ °³¹ßµÇ¾î 1987 ISO Ç¥Áر¹¿¡¼ Ç¥ÁØÈµÇ¾î ´ëºÎºÐÀÇ »ó¿ë ½Ã½ºÅÛ¿¡ ä¿ëµÇ¾î ÀÖ´Ù.
- ´ëÈ½Ä ¾ð¾îÀÌ¸ç ³»Àå ¾ð¾îÀÌ´Ù.
- ÁýÇÕ´ÜÀ§·Î ¿¬»êÇÑ´Ù.
- ºñÀýÂ÷Àû ¾ð¾îÀÌ´Ù.
- Ç¥Çö·ÂÀÌ Ç³ºÎÇÏ°í ±¸Á¶°¡ °£´ÜÇÏ´Ù.
SQLÀÇ ¿ëµµ
- ´ëÈ½Ä Query ½Ã½ºÅÛÀÇ ¾ð¾î - Ad hoc Query
- DB Application °³¹ß½Ã Host language¿¡ Embeded SQL ÇüÅ·Π»ç¿ë
1. Å×ÀÌºí ¸¸µé±â
- SQL ÀÇ ÀÚ·áÇü
ÀÚ·áÇü ³»¿ª integer 4 ¹ÙÀÌÆ® Á¤¼ö smallint 2 ¹ÙÀÌÆ® Á¤¼ö float(n) ºÎµ¿ ¼Ò½ºÁ¡ ¼ö decimal(i,j) °íÁ¤ ¼Ò¼öÁ¡À» Æ÷ÇÔÇÏ´Â 10Áø¼ö char(n) ¹®ÀÚ¼ö°¡ nÀÎ ¹®ÀÚ¿ varchar(n) ¹®ÀÚÀÇ ÃÖ´ë¼ö°¡ nÀÎ ¹®ÀÚ¿ date ÀÏÀÚ(yyyymmdd) time ½Ã°£(hhmmss) - SQL ÀÇ Table µé
ÀÚ·áÇü ³»¿ª ±âº» Å×À̺í ÀڷḦ ±â¾ïÇÏ´Â ÆÄÀÏ Á¤ÀÇ, ¿°ú ÇàÀ¸·Î ÀÌ·ç¾îÁü ºä Å×ÀÌºí »ç¿ëÀÚ°¡ ÀÓÀÇ·Î ±âº» Å×À̺íÀ̳ª ºä Å×ÀÌºí¿¡¼ À¯µµ ÇÏ¿© ¸¸µç Å×ÀÌºí »öÀÎ Å×ÀÌºí ¼Ó¼º ´ÜÀ§·Î ÀڷḦ Ž»öÇϱâ À§ÇØ ¸¸µç Å×À̺í - SQLÀÇ ÀÚ·á Á¤Àǹ®
ÀÚ·áÇü ³»¿ª create table ±âº» Å×À̺íÀ» »ý¼ºÇÑ´Ù. create view ºä Å×À̺íÀ» ¸¸µç´Ù. drop Å×À̺íÀ» »èÁ¦ÇÑ´Ù. alter ±âÁ¸ Å×À̺íÀÇ ±¸Á¶¸¦ º¯°æÇÑ´Ù. - ±âº» Å×ÀÌºí »ý¼º/Á¦°Å
Å×À̺íÀÇ À̸§°ú ¼Ó¼ºÀ» Á¤ÀÇÇÏ°í ±âº»Å°¸¦ Á¤ÀÇÇÑ´Ù.
CREATE TABLE student ( student_name char(15), class_id int ); CREATE TABLE class ( class_id int, class_name char(15));Å×À̺íÀ» »èÁ¦ÇÑ´Ù.
DROP TABLE class;- ±âº» Å×ÀÌºí º¯°æ
Ãß°¡µÇ´Â ¼Ó¼ºÀÇ À̸§°ú ÀÚ·áÇü ±×¸®°í ÀÚ·á±æÀ̸¦ ÁöÁ¤ÇÑ´Ù.
ALTER TABLE class add year char(15);- View Å×ÀÌºí »ý¼º/Á¦°Å
View´Â À¯µµµÈ Å×À̺í·Î ½ÇÇà½Ã°£¿¡ Query¿¡ ÀÇÇÏ¿© »ý¼ºµÈ´Ù. ±×·¯¹Ç·Î View¿¡¼ »ç¿ëÇÏ´Â SQL ¹®Àº ÀÏ¹Ý SQL ¹®°ú °°À¸³ª UNION À̳ª ORDER BY ¸¦ »ç¿ëÇÏÁö ¸øÇÏ°í »ðÀÔ/»èÁ¦/°»½Åµî¿¡ ¸¹Àº Á¦ÇÑÀ» °®°í ÀÖ´Ù.
CREATE VIEW student_view (c_name, address) as select a.student_name, b.class_name where a.class_id = b.class_idºä¸¦ »èÁ¦ÇÑ´Ù.
DROP VIEW customer_view;2. SQL ÀÚ·áÁ¶ÀÛ¹®
ÀÚ·áÇü ³»¿ª select ÀڷḦ °Ë»öÇÑ´Ù. insert »õ·Î¿î ÀڷḦ Å×À̺íÀÇ Çà¿¡ »ðÀÔÇÑ´Ù. delete ƯÁ¤ÇÑ Á¶°Ç¿¡ ¸Â´Â ÇàÀ» Å×ÀÌºí¿¡¼ »èÁ¦ÇÑ´Ù. update ƯÁ¤ÇÑ Á¶°Ç¿¡ ¸Â´Â ÇàÀÇ ¼Ó¼ºµéÀÇ ÀÚ·á°ªÀ» °»½ÅÇÑ´Ù.
- INSERT ¹®Àå
INSERT INTO student(name, class_id) VALUES('È«±æµ¿', 1)- SELECT ¹®Àå
- SELCT attributes FROM tables [ WHERE conditions]
- attributes´Â Target Table¿¡ ¼ÓÇØ ÀÖ´Â ¿øÇÏ´Â Attribute list
- tables ´Â ÁúÀÇÀÇ ´ë»óÀÌ ÀÖ´Â Target Table
- WHERE Àý(WHERE clause)´Â Á¶°Ç½ÄÀ» Á¤ÀÇÇϸç ÁúÀÇ´Â Á¶°Ç½Ä¿¡ ¸Â´Â Tuple ¸¸ °Ë»ö
SELECT student_name FROM STUDENT WHERE class_id = 1;- UPDATE ¹®Àå
UPDATE STUDENT SET class_id =1 WHERE std_name ='µµ³²Ã¶'- DELETE ¹®Àå
DELETE FROM STUDENT WHERE std_name = 'µµ³²Ã¶'µ¥ÀÌŸº£À̽º ÀÀ¿ë ÇÁ·Î±×·¥ ¿¹:
°³¹ß ȯ°æ
- DBMS : MS Access
- Host Programming Language : MS Active Server Pages 6.0
- Client : Web Browser
µ¥ÀÌŸº£À̽º ±¸Á¶
±×¸² 6-2 µ¥ÀÌŸº£À̽º ±¸Á¶
- STUDNET Table
std_id std_name 16894 µµ³²Ã¶ - CLASS Table
class_id class_no class_name 1 EI216-065 Á¤º¸Åë½Å°³·Ð 2 EI317-065 µ¥ÀÌÅͺ£À̽º½Ã½ºÅÛ - COURSE Table
id class_id std_id year season 1 1 16894 2002 SPRING 2 2 16894 2002 SPRING - HOMEWORK Table
course_id homework_no title date path 1 1 Ä£Áö °ü°è ERD 2002-04-15 homework.doc ÁÖ¿ä ÁúÀǹ® (¿¹)
SELECT a.class_no, a.class_name, b.id FROM CLASS a, COURSE b, STUDENT c WHERE c.std_id='std_id' AND b.std_id = c.std_id AND b.class_id = a.class_idÇÁ·Î±×·¥ ÄÚµå (¿¹)
std_id = request("std_id") Call db_connection(DbCon) query = "SELECT std_name FROM STUDENT " &_ " WHERE std_id ='"+std_id + "' " Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open query, DbCon IF rs.EOF OR rs.BOF THEN response.write("Á¸ÀçÇÏÁö ¾Ê´Â ÇйøÀÔ´Ï´Ù.") END IF rs.close query = "SELECT a.class_no, a.class_name, b.id FROM CLASS a, COURSE b, STUDENT c " query = query + "WHERE c.std_id='"+std_id+"' AND b.std_id = c.std_id " query = query + " AND b.class_id = a.class_id " Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open query, DbCon IF rs.EOF OR rs.BOF THEN response.write("Á¸ÀçÇÏÁö ¾Ê´Â ¼ö¾÷ÀÔ´Ï´Ù.") END IF Response.Write("<FORM method=post action=upload.asp ENCTYPE='multipart/form-data'>") Response.Write("<SELECT NAME=course_id>") DO WHILE NOT rs.EOF Response.Write("<OPTION value="+CStr(rs("id"))+">"+CStr(rs("class_name"))+"("+CStr(rs("class_no"))+")") rs.MoveNext LOOP Response.Write("</SELECT>") %>
Knowledge & Engineering Databases (c) copyright Namchul Do, 2002