... | ... |
@@ -221,91 +221,82 @@ By default, the following ones is set to database handle attributes. |
221 | 221 |
If fatal error occuer, program terminate. |
222 | 222 |
If SQL is executed, commit is executed automatically. |
223 | 223 |
|
224 |
-=head2 2. �}��A�X�V�A�폜�A�I��̂��߂̃��\�b�h |
|
224 |
+=head2 2. Methods for insert, update, delete, or insert |
|
225 | 225 |
|
226 |
-L<DBIx::Custom>�́A |
|
227 |
-C<insert()>�AC<update()>�AC<delete()>�AC<select()> |
|
228 |
-�̂悤�ȑ}��A�X�V�A�폜�A�I���s�����߂̃��\�b�h���Ă��܂��B |
|
229 |
-�ȒP�Ȃ��Ƃ��s���̂ł���ASQL����ŋL�q����K�v������܂���B |
|
226 |
+There are following methods. |
|
230 | 227 |
|
231 |
-=head3 �f�[�^�̑}�� C<insert()> |
|
228 |
+=head3 C<insert()> |
|
232 | 229 |
|
233 |
-�f�[�^�x�[�X�Ƀf�[�^��}���ɂ�C<insert()>��g�p���܂��B |
|
230 |
+use C<insert()> to insert row into database |
|
234 | 231 |
|
235 | 232 |
$dbi->insert(table => 'book', |
236 | 233 |
param => {title => 'Perl', author => 'Ken'}); |
237 | 234 |
|
238 |
-C<table>�ɂ̓e�[�u�����AC<param>�ɂ͑}����f�[�^��w�肵�܂��B |
|
235 |
+C<table> is table name, C<param> is insert data. |
|
239 | 236 |
|
240 |
-����SQL�����s����܂��B |
|
237 |
+Following SQL is executed. |
|
241 | 238 |
|
242 | 239 |
insert into (title, author) values (?, ?); |
243 | 240 |
|
244 |
-=head3 �f�[�^�̍X�V C<update()> |
|
241 |
+=head3 C<update()> |
|
245 | 242 |
|
246 |
-�f�[�^�x�[�X�̃f�[�^��X�V����ɂ́AC<update()>��g�p���܂��B |
|
243 |
+use C<update()> to update row in database. |
|
247 | 244 |
|
248 | 245 |
$dbi->update(table => 'book', |
249 | 246 |
param => {title => 'Perl', author => 'Ken'}, |
250 | 247 |
where => {id => 5}); |
251 | 248 |
|
252 |
-C<table>�ɂ̓e�[�u�����AC<param>�ɂ͑}����f�[�^�AC<where>�ɂ� |
|
253 |
-���w�肵�܂��B |
|
249 |
+C<table> is table name, C<param> is update data, C<where> is condition. |
|
254 | 250 |
|
255 |
-����SQL�����s����܂��B |
|
251 |
+Following SQL is executed. |
|
256 | 252 |
|
257 | 253 |
update book set title = ?, author = ?; |
258 | 254 |
|
259 |
-C<update>���\�b�h�͈�S�̂��� |
|
260 |
-where��̂Ȃ�SQL�s���邱�Ƃ���Ă��܂���B |
|
261 |
-�����ׂĂ̍s��X�V�������ꍇ�� |
|
262 |
-C<update_all()>��g�p�����������B |
|
255 |
+You can't execute C<update()> without C<where> for safety. |
|
256 |
+use C<update_all()> if you want to update all rows. |
|
263 | 257 |
|
264 | 258 |
$dbi->update_all(table => 'book', |
265 | 259 |
param => {title => 'Perl', author => 'Ken'}); |
266 | 260 |
|
267 |
-=head3 �f�[�^�̍폜 C<delete()> |
|
261 |
+=head3 C<delete()> |
|
268 | 262 |
|
269 |
-�f�[�^�x�[�X�̃f�[�^��1���폜����ɂ́AC<delete()>��g�p���܂��B |
|
263 |
+use C<delete()> to delete rows from database. |
|
270 | 264 |
|
271 | 265 |
$dbi->delete(table => 'book', |
272 | 266 |
where => {author => 'Ken'}); |
273 | 267 |
|
274 |
-C<table>�ɂ̓e�[�u�����AC<where>�ɂ͏��w�肵�܂��B |
|
268 |
+C<table> is table name, C<where> is condition. |
|
275 | 269 |
|
276 |
-����SQL�����s����܂��B |
|
270 |
+Following SQL is executed. |
|
277 | 271 |
|
278 | 272 |
delete from book where id = ?; |
279 | 273 |
|
280 |
-C<delete>���\�b�h�͈�S�̂��� |
|
281 |
-where��̂Ȃ�SQL�s���邱�Ƃ���Ă��܂���B |
|
282 |
-�����ׂĂ̍s��폜�������ꍇ�� |
|
283 |
-C<delete_all()>��g�p�����������B |
|
274 |
+You can't execute C<delete()> without C<where> for safety. |
|
275 |
+use C<delete_all()> if you want to delete all rows. |
|
284 | 276 |
|
285 | 277 |
$dbi->delete_all(table => 'book'); |
286 | 278 |
|
287 |
-=head3 �f�[�^�̑I�� C<select()> |
|
279 |
+=head3 C<select()> |
|
288 | 280 |
|
289 |
-�s��I���ɂ�C<select()>��g�p���܂��B |
|
281 |
+use C<select()> to select rows from database |
|
290 | 282 |
|
291 | 283 |
my $result = $dbi->select(table => 'book'); |
292 | 284 |
|
293 |
-C<table>������w�肵�āA���̏��w�肵�Ȃ��ꍇ�͎���SQL�����s����܂��B |
|
285 |
+Following SQL is executed. |
|
294 | 286 |
|
295 | 287 |
select * from book; |
296 | 288 |
|
297 |
-C<select()>���\�b�h�̖߂�l��L<DBIx::Custom::Result> |
|
298 |
-�I�u�W�F�N�g�ł��B�s��t�F�b�`����ɂ�C<fetch()>��g�p���܂��B |
|
289 |
+Return value is L<DBIx::Custom::Result> object. |
|
290 |
+use C<fetch()> to fetch row. |
|
299 | 291 |
|
300 | 292 |
while (my $row = $result->fetch) { |
301 | 293 |
my $title = $row->[0]; |
302 | 294 |
my $author = $row->[1]; |
303 | 295 |
} |
304 | 296 |
|
305 |
-L<DBIx::Custom::Result>�ɂ��Ă͂��̌�L<3. �s�̃t�F�b�`/"3. �s�̃t�F�b�`">�ŏڂ��������܂��B |
|
297 |
+See L<3. Fetch row/"3. Fetch row"> about L<DBIx::Custom::Result>. |
|
306 | 298 |
|
307 |
-���܂��܂�C<select()>�̎g�����Ă����܂��傤�B |
|
308 |
-����C<select>�͍s�̖��O��where���w�肵����̂ł��B |
|
299 |
+Continue more examples. |
|
309 | 300 |
|
310 | 301 |
my $result = $dbi->select( |
311 | 302 |
table => 'book', |
... | ... |
@@ -313,26 +304,27 @@ L<DBIx::Custom::Result> |
313 | 304 |
where => {author => 'Ken'} |
314 | 305 |
); |
315 | 306 |
|
316 |
-C<column>�ɂ͗�AC<where>�ɂ͏��w�肷�邱�Ƃ��ł��܂��B |
|
317 |
-����SQL�����s����܂��B |
|
307 |
+C<column> is column names, C<where> is condition. |
|
308 |
+ |
|
309 |
+Following SQL is executed. |
|
318 | 310 |
|
319 | 311 |
select author, title from book where author = ?; |
320 | 312 |
|
321 |
-�e�[�u������������ꍇ�͂�C<relation>�Ƀe�[�u���� |
|
322 |
-�W��L�q���܂��B |
|
313 |
+Next example. |
|
323 | 314 |
|
324 | 315 |
my $result = $dbi->select( |
325 | 316 |
table => ['book', 'rental'], |
326 |
- where => {book.name => 'Perl'}, |
|
317 |
+ where => {'book.name' => 'Perl'}, |
|
327 | 318 |
relation => {'book.id' => 'rental.book_id'} |
328 | 319 |
); |
329 | 320 |
|
330 |
-book�e�[�u����id���rental�e�[�u����book_id���֘A�t�����܂��B |
|
331 |
-����SQL�����s����܂��B |
|
321 |
+C<relation> is relation of tables. This is inner join. |
|
322 |
+ |
|
323 |
+Following SQL is executed. |
|
332 | 324 |
|
333 | 325 |
select * from book, rental where book.name = ? and book.id = rental.book_id; |
334 | 326 |
|
335 |
-SQL���̖���ɕ������lj�������ꍇ��<append>��g�p���܂��B |
|
327 |
+Next example. |
|
336 | 328 |
|
337 | 329 |
my $result = $dbi->select( |
338 | 330 |
table => 'book', |
... | ... |
@@ -340,44 +332,37 @@ SQL |
340 | 332 |
append => 'for update', |
341 | 333 |
); |
342 | 334 |
|
343 |
-����SQL�����s����܂��B |
|
335 |
+C<append> is string appending to end of SQL. |
|
336 |
+ |
|
337 |
+Following SQL is executed. |
|
344 | 338 |
|
345 | 339 |
select * book where author = ? for update; |
346 | 340 |
|
347 |
-�܂�C<append>�́AC<select>�����łȂ�C<insert()>�AC<update()>�AC<update_all()> |
|
348 |
-C<delete()>�AC<delete_all()>�AC<select()>�Ŏg�p���邱�Ƃ�ł��܂��B |
|
341 |
+C<appned> is also used at C<insert()>, C<update()>, C<update_all()> |
|
342 |
+C<delete()>, C<delete_all()>, and C<select()>. |
|
349 | 343 |
|
350 |
-=head3 SQL�̎�s C<execute()> |
|
344 |
+=head3 C<execute()> SQL |
|
351 | 345 |
|
352 |
-�C�ӂ�SQL���s����ɂ�execute���\�b�h��g�p���܂��B |
|
346 |
+use C<execute()> to execute SQL |
|
353 | 347 |
|
354 | 348 |
$dbi->execute("select * from book;"); |
355 | 349 |
|
356 |
-C<execute()>��L<DBIx::Custom>�̍����̃��\�b�h�ł���^�O��W�J���܂��B |
|
350 |
+Process tag and execute SQL. |
|
357 | 351 |
|
358 | 352 |
$dbi->execute( |
359 | 353 |
"select * from book {= title} and {= author};" |
360 | 354 |
param => {title => 'Perl', author => 'Ken'} |
361 | 355 |
); |
362 | 356 |
|
363 |
-��L�̃^�O��܂�SQL�͎��̂悤�ɓW�J����܂��B |
|
357 |
+Following SQL is executed. |
|
364 | 358 |
|
365 | 359 |
select * from book title = ? and author = ?; |
366 | 360 |
|
367 |
-SQL����s�����Ƃ��Ƀv���[�X�z���_(?)�ɑΉ�����ʒu��title��author |
|
368 |
-�̒l���������I�ɖ��ߍ��܂�܂��B |
|
369 |
- |
|
370 |
-�^�O�ɂ��Ă�L<5. �^�O/"5. �^�O">�ŏڂ�������܂����A |
|
371 |
-�ЂƂ̒��ӓ_������܂��B |
|
372 |
-�^�O��W�J���邽�߂�C<{>��C<}>�͗\���ɂȂ�Ă��܂��B |
|
373 |
-�����p�������ꍇ�͒��O��\����ăG�X�P�[�v��s���K�v������܂��B |
|
374 |
- |
|
375 |
- $dbi->execute("... \\{ ... \\} ..."); |
|
361 |
+Values of title and author is embbdeded into placeholder. |
|
376 | 362 |
|
377 |
-\���̂�Perl�̃G�X�P�[�v�����ł��̂ŁA��K�v�ɂȂ�Ƃ����_�ɒ��ӂ��Ă��������B |
|
363 |
+See L<5. Tag/"5. Tag"> about tag. |
|
378 | 364 |
|
379 |
-�܂�execute�̃L���[�g�ȋ@�\�Ƃ��āASQL�̍Ō�ɃZ�~�R��������Ȃ��Ă� |
|
380 |
-���܂��܂���B |
|
365 |
+You don't have to wirte last semicolon in C<execute()>. |
|
381 | 366 |
|
382 | 367 |
$dbi->execute('select * from book'); |
383 | 368 |
|
... | ... |
@@ -746,81 +731,81 @@ C<table> |
746 | 731 |
$dbi->execute($sql, param => {title => 'Perl', author => '%Ken%'} |
747 | 732 |
table => ['book']); |
748 | 733 |
|
749 |
-=head2 �^�O�ꗗ |
|
734 |
+=head3 �^�O�ꗗ |
|
750 | 735 |
|
751 | 736 |
L<DBIx::Custom>�ł͎��̃^�O���g�p�\�ł��B |
752 | 737 |
|
753 | 738 |
���̂悤�Ƀ^�O��g���SQL����\������̂�L<DBIx::Custom>�� |
754 | 739 |
����ł��B�ȉ��̃^�O�����p�\�ł��B |
755 | 740 |
|
756 |
-=head3 C<?> |
|
741 |
+=head4 C<?> |
|
757 | 742 |
|
758 | 743 |
C<?>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
759 | 744 |
|
760 | 745 |
{? NAME} -> ? |
761 | 746 |
|
762 |
-=head3 C<=> |
|
747 |
+=head4 C<=> |
|
763 | 748 |
|
764 | 749 |
C<=>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
765 | 750 |
|
766 | 751 |
{= NAME} -> NAME = ? |
767 | 752 |
|
768 |
-=head3 C<E<lt>E<gt>> |
|
753 |
+=head4 C<E<lt>E<gt>> |
|
769 | 754 |
|
770 | 755 |
C<E<lt>E<gt>>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
771 | 756 |
|
772 | 757 |
{<> NAME} -> NAME <> ? |
773 | 758 |
|
774 |
-=head3 C<E<lt>> |
|
759 |
+=head4 C<E<lt>> |
|
775 | 760 |
|
776 | 761 |
C<E<lt>>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
777 | 762 |
|
778 | 763 |
{< NAME} -> NAME < ? |
779 | 764 |
|
780 |
-=head3 C<E<gt>> |
|
765 |
+=head4 C<E<gt>> |
|
781 | 766 |
|
782 | 767 |
C<E<gt>>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
783 | 768 |
|
784 | 769 |
{> NAME} -> NAME > ? |
785 | 770 |
|
786 |
-=head3 C<E<gt>=> |
|
771 |
+=head4 C<E<gt>=> |
|
787 | 772 |
|
788 | 773 |
C<E<gt>=>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
789 | 774 |
|
790 | 775 |
{>= NAME} -> NAME >= ? |
791 | 776 |
|
792 |
-=head3 C<E<lt>=> |
|
777 |
+=head4 C<E<lt>=> |
|
793 | 778 |
|
794 | 779 |
C<E<lt>=>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
795 | 780 |
|
796 | 781 |
{<= NAME} -> NAME <= ? |
797 | 782 |
|
798 |
-=head3 C<like> |
|
783 |
+=head4 C<like> |
|
799 | 784 |
|
800 | 785 |
C<like>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
801 | 786 |
|
802 | 787 |
{like NAME} -> NAME like ? |
803 | 788 |
|
804 |
-=head3 C<in> |
|
789 |
+=head4 C<in> |
|
805 | 790 |
|
806 | 791 |
C<in>�^�O�͈ȉ��̂悤�ɓW�J����܂��B�v���[�X�z���_�� |
807 | 792 |
�����Ŏw�肷��K�v�����邱�Ƃɒ��ӂ��Ă��������B |
808 | 793 |
|
809 | 794 |
{in NAME COUNT} -> NAME in [?, ?, ..] |
810 | 795 |
|
811 |
-=head3 C<insert_param> |
|
796 |
+=head4 C<insert_param> |
|
812 | 797 |
|
813 | 798 |
C<insert_param>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
814 | 799 |
|
815 | 800 |
{insert_param NAME1 NAME2} -> (NAME1, NAME2) values (?, ?) |
816 | 801 |
|
817 |
-=head3 C<update_param> |
|
802 |
+=head4 C<update_param> |
|
818 | 803 |
|
819 | 804 |
C<update_param>�^�O�͈ȉ��̂悤�ɓW�J����܂��B |
820 | 805 |
|
821 | 806 |
{update_param NAME1 NAME2} -> set NAME1 = ?, NAME2 = ? |
822 | 807 |
|
823 |
-=head2 �����̗�̈��� |
|
808 |
+=head3 �����̗�̈��� |
|
824 | 809 |
|
825 | 810 |
�����̗��܂ރ^�O������ꍇ�ɂ�ASQL���s���邱�Ƃ��ł��܂��B |
826 | 811 |
���Ƃ��A��̓�t�Ŕ�r���Ȃ���Ȃ�Ȃ��ꍇ�� |
... | ... |
@@ -832,7 +817,7 @@ C<update_param> |
832 | 817 |
|
833 | 818 |
my $dbi->execute($sql, param => {date => ['2010-10-01', '2012-02-10']}); |
834 | 819 |
|
835 |
-=head2 �^�O�̒lj� C<register_tag()> |
|
820 |
+=head3 �^�O�̒lj� C<register_tag()> |
|
836 | 821 |
|
837 | 822 |
L<DBIx::Custom>�ł̓^�O��Ǝ��ɒlj���邱�Ƃ��ł��܂��B |
838 | 823 |
�^�O��lj����ɂ�C<register_tag()>��g�p���܂��B |
... | ... |
@@ -15,7 +15,7 @@ L<DBIx::Custom>はO/Rマッパーではありません。O/Rマッパーは |
15 | 15 |
便利ですが、O/Rマッパのたくさんの文法を覚える必要があります。 |
16 | 16 |
また、O/Rマッパによって生成されたSQLは非効率なことがありますし、 |
17 | 17 |
複雑なSQLを生成することができないので、 |
18 |
-生のSQLを発行しなければならない場合がたくさんあります。 |
|
18 |
+生のSQLを実行しなければならない場合がたくさんあります。 |
|
19 | 19 |
|
20 | 20 |
L<DBIx::Custom>はO/Rマッパとは対照的な設計が行われています。 |
21 | 21 |
L<DBIx::Custom>の主な目的は、SQLを尊重しつつ、L<DBI>だけでは |
... | ... |
@@ -99,7 +99,7 @@ titleだけの場合は次のSQLを |
99 | 99 |
|
100 | 100 |
select * from book where title = ?; |
101 | 101 |
|
102 |
-authorだけの場合は次のSQLを発行した場合を考えましょう。 |
|
102 |
+authorだけの場合は次のSQLを実行した場合を考えましょう。 |
|
103 | 103 |
|
104 | 104 |
select * from book where author = ?; |
105 | 105 |
|
... | ... |
@@ -224,41 +224,37 @@ SQLが実行されると自動的にコミットされます。 |
224 | 224 |
|
225 | 225 |
=head2 2. 挿入、更新、削除、選択のためのメソッド |
226 | 226 |
|
227 |
-L<DBIx::Custom>は、 |
|
228 |
-C<insert()>、C<update()>、C<delete()>、C<select()> |
|
229 |
-のような挿入、更新、削除、選択を行うためのメソッドを持っています。 |
|
230 |
-簡単なことをを行うのであれば、SQLを自分で記述する必要がありません。 |
|
227 |
+下記のメソッドがあります。 |
|
231 | 228 |
|
232 |
-=head3 データの挿入 C<insert()> |
|
229 |
+=head3 行の挿入 C<insert()> |
|
233 | 230 |
|
234 |
-データベースにデータを挿入するにはC<insert()>を使用します。 |
|
231 |
+データベースに行を挿入するにはC<insert()>を使用します。 |
|
235 | 232 |
|
236 | 233 |
$dbi->insert(table => 'book', |
237 | 234 |
param => {title => 'Perl', author => 'Ken'}); |
238 | 235 |
|
239 |
-C<table>にはテーブル名、C<param>には挿入したいデータを指定します。 |
|
236 |
+C<table>はテーブル名、C<param>は挿入する行のデータです。 |
|
240 | 237 |
|
241 |
-次のSQLが発行されます。 |
|
238 |
+次のSQLが実行されます。 |
|
242 | 239 |
|
243 | 240 |
insert into (title, author) values (?, ?); |
244 | 241 |
|
245 | 242 |
=head3 データの更新 C<update()> |
246 | 243 |
|
247 |
-データベースのデータを更新するには、C<update()>を使用します。 |
|
244 |
+データベースの行を更新するには、C<update()>を使用します。 |
|
248 | 245 |
|
249 | 246 |
$dbi->update(table => 'book', |
250 | 247 |
param => {title => 'Perl', author => 'Ken'}, |
251 | 248 |
where => {id => 5}); |
252 | 249 |
|
253 |
-C<table>にはテーブル名、C<param>には挿入したいデータ、C<where>には |
|
254 |
-条件を指定します。 |
|
250 |
+C<table>はテーブル名、C<param>は更新データ、C<where>は |
|
251 |
+条件です。 |
|
255 | 252 |
|
256 |
-次のSQLが発行されます。 |
|
253 |
+次のSQLが実行されます。 |
|
257 | 254 |
|
258 | 255 |
update book set title = ?, author = ?; |
259 | 256 |
|
260 |
-C<update>メソッドは安全のため |
|
261 |
-where句のないSQLを発行することを許可していません。 |
|
257 |
+安全のためC<where>のないupdate()を実効することはできません。 |
|
262 | 258 |
もしすべての行を更新したい場合は |
263 | 259 |
C<update_all()>を使用してください。 |
264 | 260 |
|
... | ... |
@@ -267,19 +263,18 @@ C<update_all()>を使用してください。 |
267 | 263 |
|
268 | 264 |
=head3 データの削除 C<delete()> |
269 | 265 |
|
270 |
-データベースのデータを1件削除するには、C<delete()>を使用します。 |
|
266 |
+データベースの行を1件削除するには、C<delete()>を使用します。 |
|
271 | 267 |
|
272 | 268 |
$dbi->delete(table => 'book', |
273 | 269 |
where => {author => 'Ken'}); |
274 | 270 |
|
275 |
-C<table>にはテーブル名、C<where>には条件を指定します。 |
|
271 |
+C<table>はテーブル名、C<where>は条件です。 |
|
276 | 272 |
|
277 |
-次のSQLが発行されます。 |
|
273 |
+次のSQLが実行されます。 |
|
278 | 274 |
|
279 | 275 |
delete from book where id = ?; |
280 | 276 |
|
281 |
-C<delete>メソッドは安全のため |
|
282 |
-where句のないSQLを発行することを許可していません。 |
|
277 |
+安全のためC<where>のないC<delete()>を実効することはできません。 |
|
283 | 278 |
もしすべての行を削除したい場合は |
284 | 279 |
C<delete_all()>を使用してください。 |
285 | 280 |
|
... | ... |
@@ -291,11 +286,11 @@ C<delete_all()>を使用してください。 |
291 | 286 |
|
292 | 287 |
my $result = $dbi->select(table => 'book'); |
293 | 288 |
|
294 |
-C<table>だけを指定して、他の条件を指定しない場合は次のSQLが発行されます。 |
|
289 |
+次のSQLが実行されます。 |
|
295 | 290 |
|
296 | 291 |
select * from book; |
297 | 292 |
|
298 |
-C<select()>メソッドの戻り値はL<DBIx::Custom::Result> |
|
293 |
+戻り値はL<DBIx::Custom::Result> |
|
299 | 294 |
オブジェクトです。行をフェッチするにはC<fetch()>を使用します。 |
300 | 295 |
|
301 | 296 |
while (my $row = $result->fetch) { |
... | ... |
@@ -303,10 +298,9 @@ C<select()>メソッドの戻り値はL<DBIx::Custom::Result> |
303 | 298 |
my $author = $row->[1]; |
304 | 299 |
} |
305 | 300 |
|
306 |
-L<DBIx::Custom::Result>についてはこの後L<3. 行のフェッチ/"3. 行のフェッチ">で詳しく扱います。 |
|
301 |
+L<DBIx::Custom::Result>についてはL<3. 行のフェッチ/"3. 行のフェッチ">を見てください。 |
|
307 | 302 |
|
308 |
-さまざまなC<select()>の使い方を見ていきましょう。 |
|
309 |
-次のC<select>は行の名前とwhere句を指定したものです。 |
|
303 |
+サンプルを続けます。 |
|
310 | 304 |
|
311 | 305 |
my $result = $dbi->select( |
312 | 306 |
table => 'book', |
... | ... |
@@ -314,13 +308,13 @@ L<DBIx::Custom::Result>についてはこの後L<3. 行のフェッチ/"3. 行 |
314 | 308 |
where => {author => 'Ken'} |
315 | 309 |
); |
316 | 310 |
|
317 |
-C<column>には列名を、C<where>には条件を指定することができます。 |
|
318 |
-次のSQLが発行されます。 |
|
311 |
+C<column>は列名、C<where>は条件です。 |
|
312 |
+ |
|
313 |
+次のSQLが実行されます。 |
|
319 | 314 |
|
320 | 315 |
select author, title from book where author = ?; |
321 | 316 |
|
322 |
-テーブルを結合したい場合ははC<relation>にテーブルの |
|
323 |
-関係を記述します。 |
|
317 |
+次のサンプルです。 |
|
324 | 318 |
|
325 | 319 |
my $result = $dbi->select( |
326 | 320 |
table => ['book', 'rental'], |
... | ... |
@@ -328,12 +322,16 @@ C<column>には列名を、C<where>には条件を指定することができま |
328 | 322 |
relation => {'book.id' => 'rental.book_id'} |
329 | 323 |
); |
330 | 324 |
|
325 |
+C<relation>テーブル間の関係です。これは内部結合です。 |
|
326 |
+ |
|
327 |
+次のSQLが実行されます。 |
|
328 |
+ |
|
331 | 329 |
bookテーブルのid列とrentalテーブルのbook_idが関連付けられます。 |
332 |
-次のSQLが発行されます。 |
|
330 |
+次のSQLが実行されます。 |
|
333 | 331 |
|
334 | 332 |
select * from book, rental where book.name = ? and book.id = rental.book_id; |
335 | 333 |
|
336 |
-SQL文の末尾に文字列を追加したい場合は<append>を使用します。 |
|
334 |
+次のサンプルです。 |
|
337 | 335 |
|
338 | 336 |
my $result = $dbi->select( |
339 | 337 |
table => 'book', |
... | ... |
@@ -341,7 +339,9 @@ SQL文の末尾に文字列を追加したい場合は<append>を使用します |
341 | 339 |
append => 'for update', |
342 | 340 |
); |
343 | 341 |
|
344 |
-次のSQLが発行されます。 |
|
342 |
+C<append>はSQLの末尾に追加される文字列です。 |
|
343 |
+ |
|
344 |
+次のSQLが実行されます。 |
|
345 | 345 |
|
346 | 346 |
select * book where author = ? for update; |
347 | 347 |
|
... | ... |
@@ -350,35 +350,26 @@ C<delete()>、C<delete_all()>、C<select()>で使用することもできます |
350 | 350 |
|
351 | 351 |
=head3 SQLの実行 C<execute()> |
352 | 352 |
|
353 |
-任意のSQLを実行するにはexecuteメソッドを使用します。 |
|
353 |
+SQLを実行するにはC<execute()>を使用します。 |
|
354 | 354 |
|
355 | 355 |
$dbi->execute("select * from book;"); |
356 | 356 |
|
357 |
-C<execute()>はL<DBIx::Custom>の根幹のメソッドでありタグを展開します。 |
|
357 |
+タグを処理してSQLを実行します。 |
|
358 | 358 |
|
359 | 359 |
$dbi->execute( |
360 | 360 |
"select * from book {= title} and {= author};" |
361 | 361 |
param => {title => 'Perl', author => 'Ken'} |
362 | 362 |
); |
363 | 363 |
|
364 |
-上記のタグを含んだSQLは次のように展開されます。 |
|
364 |
+次のSQLが実行されます。 |
|
365 | 365 |
|
366 | 366 |
select * from book title = ? and author = ?; |
367 | 367 |
|
368 |
-SQLが実行されるときにプレースホルダ(?)に対応する位置にtitleとauthor |
|
369 |
-の値がが自動的に埋め込まれます。 |
|
370 |
- |
|
371 |
-タグについてはL<5. タグ/"5. タグ">で詳しく解説しますが、 |
|
372 |
-ひとつの注意点があります。 |
|
373 |
-タグを展開するためにC<{>とC<}>は予約語になっています。 |
|
374 |
-もし利用したい場合は直前に\をおいてエスケープを行う必要があります。 |
|
375 |
- |
|
376 |
- $dbi->execute("... \\{ ... \\} ..."); |
|
368 |
+プレースホルダにtitleとauthorの値が埋め込まれます。 |
|
377 | 369 |
|
378 |
-\自体がPerlのエスケープ文字ですので、二つ必要になるという点に注意してください。 |
|
370 |
+タグについてはL<5. タグ/"5. タグ">を見てください。 |
|
379 | 371 |
|
380 |
-またexecuteのキュートな機能として、SQLの最後にセミコロンをおかなくても |
|
381 |
-かまいません。 |
|
372 |
+またC<execute()>のSQLの末尾にはセミコロンを置く必要はありません。 |
|
382 | 373 |
|
383 | 374 |
$dbi->execute('select * from book'); |
384 | 375 |
|
... | ... |
@@ -747,81 +738,81 @@ C<table>を指定する必要があります。 |
747 | 738 |
$dbi->execute($sql, param => {title => 'Perl', author => '%Ken%'} |
748 | 739 |
table => ['book']); |
749 | 740 |
|
750 |
-=head2 タグ一覧 |
|
741 |
+=head3 タグ一覧 |
|
751 | 742 |
|
752 | 743 |
L<DBIx::Custom>では次のタグが使用可能です。 |
753 | 744 |
|
754 | 745 |
このようにタグを使ってSQL文を表現するのがL<DBIx::Custom>の |
755 | 746 |
特徴です。以下のタグが利用可能です。 |
756 | 747 |
|
757 |
-=head3 C<?> |
|
748 |
+=head4 C<?> |
|
758 | 749 |
|
759 | 750 |
C<?>タグは以下のように展開されます。 |
760 | 751 |
|
761 | 752 |
{? NAME} -> ? |
762 | 753 |
|
763 |
-=head3 C<=> |
|
754 |
+=head4 C<=> |
|
764 | 755 |
|
765 | 756 |
C<=>タグは以下のように展開されます。 |
766 | 757 |
|
767 | 758 |
{= NAME} -> NAME = ? |
768 | 759 |
|
769 |
-=head3 C<E<lt>E<gt>> |
|
760 |
+=head4 C<E<lt>E<gt>> |
|
770 | 761 |
|
771 | 762 |
C<E<lt>E<gt>>タグは以下のように展開されます。 |
772 | 763 |
|
773 | 764 |
{<> NAME} -> NAME <> ? |
774 | 765 |
|
775 |
-=head3 C<E<lt>> |
|
766 |
+=head4 C<E<lt>> |
|
776 | 767 |
|
777 | 768 |
C<E<lt>>タグは以下のように展開されます。 |
778 | 769 |
|
779 | 770 |
{< NAME} -> NAME < ? |
780 | 771 |
|
781 |
-=head3 C<E<gt>> |
|
772 |
+=head4 C<E<gt>> |
|
782 | 773 |
|
783 | 774 |
C<E<gt>>タグは以下のように展開されます。 |
784 | 775 |
|
785 | 776 |
{> NAME} -> NAME > ? |
786 | 777 |
|
787 |
-=head3 C<E<gt>=> |
|
778 |
+=head4 C<E<gt>=> |
|
788 | 779 |
|
789 | 780 |
C<E<gt>=>タグは以下のように展開されます。 |
790 | 781 |
|
791 | 782 |
{>= NAME} -> NAME >= ? |
792 | 783 |
|
793 |
-=head3 C<E<lt>=> |
|
784 |
+=head4 C<E<lt>=> |
|
794 | 785 |
|
795 | 786 |
C<E<lt>=>タグは以下のように展開されます。 |
796 | 787 |
|
797 | 788 |
{<= NAME} -> NAME <= ? |
798 | 789 |
|
799 |
-=head3 C<like> |
|
790 |
+=head4 C<like> |
|
800 | 791 |
|
801 | 792 |
C<like>タグは以下のように展開されます。 |
802 | 793 |
|
803 | 794 |
{like NAME} -> NAME like ? |
804 | 795 |
|
805 |
-=head3 C<in> |
|
796 |
+=head4 C<in> |
|
806 | 797 |
|
807 | 798 |
C<in>タグは以下のように展開されます。プレースホルダの |
808 | 799 |
数を引数で指定する必要があることに注意してください。 |
809 | 800 |
|
810 | 801 |
{in NAME COUNT} -> NAME in [?, ?, ..] |
811 | 802 |
|
812 |
-=head3 C<insert_param> |
|
803 |
+=head4 C<insert_param> |
|
813 | 804 |
|
814 | 805 |
C<insert_param>タグは以下のように展開されます。 |
815 | 806 |
|
816 | 807 |
{insert_param NAME1 NAME2} -> (NAME1, NAME2) values (?, ?) |
817 | 808 |
|
818 |
-=head3 C<update_param> |
|
809 |
+=head4 C<update_param> |
|
819 | 810 |
|
820 | 811 |
C<update_param>タグは以下のように展開されます。 |
821 | 812 |
|
822 | 813 |
{update_param NAME1 NAME2} -> set NAME1 = ?, NAME2 = ? |
823 | 814 |
|
824 |
-=head2 同名の列の扱い |
|
815 |
+=head3 同名の列の扱い |
|
825 | 816 |
|
826 | 817 |
同名の列を含むタグがある場合にも、SQLを実行することができます。 |
827 | 818 |
たとえば、二つの日付で比較しなければならない場合を |
... | ... |
@@ -833,7 +824,7 @@ C<update_param>タグは以下のように展開されます。 |
833 | 824 |
|
834 | 825 |
my $dbi->execute($sql, param => {date => ['2010-10-01', '2012-02-10']}); |
835 | 826 |
|
836 |
-=head2 タグの追加 C<register_tag()> |
|
827 |
+=head3 タグの追加 C<register_tag()> |
|
837 | 828 |
|
838 | 829 |
L<DBIx::Custom>ではタグを独自に追加することができます。 |
839 | 830 |
タグを追加するにはC<register_tag()>を使用します。 |