1 :
名無しさん@お腹いっぱい。 :
03/06/30 11:07 ID:VGDYPcbU どうぞ
SQLってなに?
4 :
名無しさん@お腹いっぱい。 :03/06/30 11:17 ID:78rOgJ5V
Structure Query Language の略。日本語で言うと「構造化照会言語」 C言語や perl の様に構造化されたロジックを組みながら、 データベースにアクセスできるようにする言語。一応、統一規格がある
5 :
キユ :03/06/30 11:29 ID:n85ML9TW
SキューL
| |且 ダレモイナイ |谷) Create Table スルナラ イマノウチ |/ | ♪ _,-, ⊂iヾ、 且 / / Create Table DB_DragonBall ( ♪ \( 谷)/ Goku Number (01)); ヽ i' |,へ )人i 、ゝ / / ヽi // ゚∴ (/ ∵+ ∵+ ♪ 且 Drop Table DB_DragonBall; ♪ (谷 )__ スジャ〜タ〜 (_ ̄iつ ,---'、i ( (( |人 ( `/ / ) )) i _|ヽ |_)'。 ∵ ∴+ | _/) | / / 且 スジャータガ | \(谷 )⌒_)⊃ 「15:46」ヲ オシラスシマス | / ' ( | i⌒iヽ _, ゞ | ∪/ ,/ ∴ | |_.i +∵。 | i_)'∵
7 :
名無しさん@お腹いっぱい。 :03/06/30 16:46 ID:Lf/h8tD9
age
8 :
名無しさん@お腹いっぱい。 :03/06/30 17:02 ID:6Ns55P3E
複問合せは悪じゃない!! Indexやレコード件数を考慮すれば 効果的な読み込みが可能なのだ。 ただ複雑化するから慣れないユーザがついていけないだけだ。 とか書いてみる。
10 :
名無しさん@お腹いっぱい。 :03/06/30 21:40 ID:Lf/h8tD9
age
板違い
12 :
名無しさん@お腹いっぱい。 :03/07/01 00:50 ID:Bm1bDGkm
ヽ( ´ー`)ノ パ ヽ( ´ー`)ノ パ ヽ( ´ー`)ノ パラドクスー
ソフ開に SQL を出すなと小一時間・・・
CREATE VIEW KAMISAMA AS SELECT * FROM PIKKORO WHERE TYPE='AKU'
Insert Into Goku Values ('Genki'); Select OraniTikarawo From Goku Where Waza = 'Kaiou'; ----------------------------------------------------- Genkidama
>>4 それ、どこのコピペか知らないけど、違うような。
> C言語や perl の様に構造化されたロジックを組みながら、
全く別物だと思う。
C や Perl は手続き型言語。書いた順に実行される。
SQL は非手続き型言語。一つの命令文が複数の手続きに展開され、実行される。
よって、どのように展開されるか(Oracleなら、どのような実行計画が作成されるか)
考慮しながら書く必要がある。
18 :
名無しさん@お腹いっぱい。 :03/07/02 03:39 ID:7ARcHJ3A
age
あぼーん
DELETE FROM "pc2.2ch.net/test/read.cgi/db/1056938879" WHERE ID='DvO3q4Fe'
Update "pc2.2ch.net/test/read.cgi/db/1056938879"
Set "
>>19 " = 'アボーン'
Where = 'DvO3q4Fe';
22 :
名無しさん@お腹いっぱい。 :03/07/02 08:05 ID:FOLZjtLH
>19 二本筋だったら怖えよ と業者にマジレス
本当にデータベース板だったのかよ。需要ないでしょうに。 SQLは小文字派。 select * from UriageDat where BumonCD = 10 order by Hizuke, UriageNo
24 :
名無しさん@お腹いっぱい。 :03/07/02 10:18 ID:42+kqt87
drop database
>>1 ;
^D
make reinstall
rm -fr
>>1
三本筋ならありがちだな
>>21 Where ID = 'DvO3q4Fe';
しかしここ、シングルクォーテーションが多いって事は、Oracle が多いんですかね。
>>26 Oracleだよ。
元だけど。
Conect DragonBall/DBita@Toriyama
>>26 Postgresもシングルクォートだよ。
30 :
名無しさん@お腹いっぱい。 :03/07/02 14:24 ID:dwopzrCx
(1) FROM 甲, 乙 WHERE 甲.コード = 乙.コード (2) FROM 甲 LEFT JOIN 乙 ON 甲.コード = 乙.コード (3) FROM 甲,乙,丙 (1)のようにテーブルが二つの場合は、(2)のように書けますが、 (3)のようにテーブルが三つの場合はLEFT JOINではどのように かけばよいのでしょうか?
>>30 ここは質問スレではありません。
別スレで聞いてください。
>>26 私はシングルクォートでないのを使ったことがないのですが、
どんな DB つかってて、なにでクォートしてるん?
>>30 FROM (甲 LEFT JOIN 乙 ON 甲.コード = 乙.コード) LEFT JOIN 丙 ON 甲.コード = 丙.コード
合ってる?
7777777777777777777777777777777777 hgggggggggggggggggggggg
39 :
名無しさん@お腹いっぱい。 :03/07/04 19:55 ID:aBCtkKEB
>>13 今の業務アプリでRDB使わない開発なんて滅多にないから
将来PG目指すなら、それくらい覚えておいて損はない。
SQLもかけないようなPGなんて要らないってのが 正直なところではないかと?
あぼーん
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
あぼーん
あぼーん
45 :
名無しさん@お腹いっぱい。 :03/08/10 07:52 ID:NAKv7sy5
SQLについて語るスレ.EmptyTable
46 :
1を”削除” :03/08/12 12:40 ID:SwBK3qme
47 :
213 :03/08/12 17:04 ID:???
>>46 ERROR: parser: parse error at or near "[" at character 13
update
>>50 update ta_DQN set IP = 'アボーン';
あぼーん
54 :
名無しさん@お腹いっぱい。 :03/08/12 21:19 ID:ClWPxTzt
55 :
山崎 渉 :03/08/15 22:01 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
56 :
山崎 渉 :03/08/15 22:47 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
性器表現つかえたらいいなと思った 今
59 :
名無しさん@お腹いっぱい。 :03/09/16 22:43 ID:2Hyf/e7I
ループの中でSQLを実行させるのは止めてほしい。 Joinで一発でとってこい。
62 :
NAME IS NULL :04/05/05 19:23 ID:/b6SEtO9
話豚切りすまそ SQLって…もとはIBM? ポスグレなんかはもとはクエイルだかシークエルだかだったんだよな。 名前に構造化とか付いてる割りには微妙に文法に統一感が なくて好きじゃない。insertはカッコで変数と値を別にくくるのに updateはイコール使うとか。 いつのまにか共通語になったのでみんな仕方なくつかってるんじゃ ないのか? 新しい問い合わせ言語が広まることを望む。 主眼は文法解析ルーチンが簡単になり、かつ人間にもわかりやすいこと。 といいつつSQL以外なんも知らんけどさ
63 :
NAME IS NULL :04/08/12 10:59 ID:cX4fv/f0
はやく SQL が COBOL 化しますように
そうそう
>63 それだけは勘弁していただけませんか?
/* 2ch投稿用に C/C++ソースのスペースとタブを に変換する 入力:標準入力 出力:標準出力 */ #include <stdio.h> #define TABSP 4 /* タブ間隔をここで設定する */ int main ( int argc, char *argv[] ) { int c, col = 0; if ( argc > 1 ) fprintf ( stderr, "usage: src2nbsp < INPUT-FILE > OUTPUT-FILE\n" ); else while ( (c = getchar()) != EOF ) { switch ( c ) { case ' ' : puts ( " " ); ++col; break; case '\t' : do puts ( " " ); while ( ++col % TABSP ); break; case '\n' : putchar ( c ); col = 0; break; case '\r' : /* 無視 */ break; default : putchar ( c ); ++col; break; } } return 0; }
67 :
retry :2005/07/28(木) 00:04:35 ID:???
/* src2nbsp.c - 2ch投稿用に C/C++ソースのスペースとタブを &nbsp; に変換する 入力:標準入力 出力:標準出力 */ #include <stdio.h> #define TABSP 4 /* タブ間隔をここで設定する */ int main ( int argc, char *argv[] ) { int c, col = 0; if ( argc > 1 ) fprintf ( stderr, "usage: src2nbsp < INPUT-FILE > OUTPUT-FILE\n" ); else while ( (c = getchar()) != EOF ) { switch ( c ) { case ' ' : printf ( "&nbsp;" ); ++col; break; case '\t' : do printf ( "&nbsp;" ); while ( ++col % TABSP ); break; case '\n' : putchar ( c ); col = 0; break; case '\r' : /* 無視 */ break; default : putchar ( c ); ++col; break; } } return 0; }
68 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 16:40:28 ID:xc9ohWdm
SQL文で、ナンバー型の項目に値を参照する時は 例えば AAAA=1 のように構文としてはシングルコーテーション無しの書き方が一般的ですが AAAA='1' のようにシングルコーテーション有りの書き方でもエラーにはなりませんが この書きかたって保障されているんでしょうか? 実は私の納品したソースが全てナンバー型にもシングルコーテーション無しになってしまって いるんですが何か問題ありますか? ぶっちゃけ、めんどくさいので特に問題が無ければそのままにしておきたいのですが。
>68 製品によって異なると思われます。 oracleであれば勝手に直してくれたような・・・。 ただし、パフォーマンスに悪影響を及ぼす可能性は否定できません。 書式のミスなら単体テストではじけますが パフォーマンスの影響は下手すると稼動してからでないと発覚しないんで 直すリスクと放置するリスクを比較すると私ならリーダーに直す方向で相談します。 というかこういうときこそ相談しましょう。 いざというときの責任逃れのために(^^;
70 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:49:53 ID:zG/dBAzZ
>>69 単体テストでは問題ありませんでした。
ソフトのバージョンとかによって直してくれなかったり
とか直してくれるとかそんなのがあったら怖いんですよ。
どうしよ俺。
>>68 AAAAにつけたインデックスって使われてる?
DBが条件をデータ型に合わせてくれるならいいけど、その逆だと・・・。
72 :
NAME IS NULL :2005/09/12(月) 12:38:35 ID:AJMa3i/a
73 :
NAME IS NULL :2005/09/12(月) 15:43:02 ID:fgh/N+NC
すいません、情報処理の勉強してるのですが、SQLのINとEXISTSって 何が違うのですか?
初めまして。 Paradox使用でのSQLについての初歩的な質問です。 他サイトでの説明が理解できないぐらいのレベルなのですが どうか御教授よろしくお願いいたします。 select A.管理番号,A.設置年度,B.布設年度 from A,B,C where (B.作業番号 = C.作業番号 and B.手順番号 = C.起点番号) and (A.作業番号 = C.作業番号 and A.起点番号 = C管路.起点番号) and (B.布設年度 like '%S%') B.布設年度は「S58、H08」などで書かれています。 A.設置年度は「1999」などの西暦で入力されています。 B.布設年度を西暦に変換し、尚且つA.設置年度と合っているかどうかを調べたいのです。 以下の文はAccessでのSQLの文です。 and (substring (B.布設年度,2,1) <> '0') and ((A.設置年度)<>(substring(B.布設年度,2)+1925)) 上記2行のAccessの文はそのままParadoxに持っていく事が出来ません。 どのように変更したらよいでしょうか? 皆様よろしくお願いいたします!
75 :
NAME IS NULL :2005/09/14(水) 16:23:08 ID:KsTuXUq/
76 :
69 :2005/09/14(水) 23:54:44 ID:???
>70 古いバーションから新しいのにもっていく場合でそういう不具合は正直経験ないですね。 上司に雑談のネタとして振ってみて、スルーされたら放置でいいかもw
77 :
NAME IS NULL :2005/09/15(木) 17:05:31 ID:YAKfI9Lt
78 :
NAME IS NULL :2005/09/16(金) 11:28:07 ID:kUbt9r5f
79 :
NAME IS NULL :2005/09/16(金) 11:29:47 ID:kUbt9r5f
× r ○ e
80 :
NAME IS NULL :2005/09/16(金) 11:32:08 ID:kUbt9r5f
select count from where group by having
82 :
NAME IS NULL :2005/09/27(火) 00:40:47 ID:qbapjLHZ
83 :
NAME IS NULL :2005/10/10(月) 11:19:17 ID:lF9+pPKy
84 :
NAME IS NULL :2005/10/31(月) 22:01:28 ID:+snrpl4m
Like演算子を2つ使いたい時って、 たとえば↓見たいな感じで良いんですよね? なんか構文エラーになるんですけど・・・。 Select * Form Teble Where Name Like "%太郎" And Name2 Like "%本"
ダブルクォートってAccessか? Formになってるぞ
ここで豆知識 Accessのワイルドカードは % じゃなく *
87 :
とんかち :2005/11/01(火) 20:45:56 ID:tdr9kzuO
>>85 SQLServerだす!
シングルコートにして
Fromにしたら大丈夫かな!!!
まあ括弧付けた方がわかりやすいかな Where (Name Like "%太郎") And (Name2 Like "%本") あとはTableのほうがいいな
冷静なツッコミにワラタ
90 :
NAME IS NULL :2006/02/12(日) 00:55:51 ID:RvqXzbWh
oracle9iではで外部結合を書く場合 (+)じゃなくてouter join って書くほうが推奨されてるの!?
Oracleによって推奨されているかいないかは知らんし、どっちかを推奨しているかは わからん。 好みの問題でいいんじゃ?? 俺はなるべく、分かりやすいouter join使いたいところだけど。 outer join使うと結合条件と他の条件が分かれてすっきりすりし。
>(Name Like "%太郎") And (Name2 Like "%本") ANDだと1件もヒットしなくね?
>>90 Oracleが推奨っつーか、outer join句の方がよそのRDBMSのSQLでも使える場合が多いので
どっかのローカルルールとしてouter joinを推奨してるってとこじゃないかと
データベースって何ですか?
kstr-tsidunokoyofsyo
96 :
NAME IS NULL :2006/03/17(金) 12:05:57 ID:NzFO+vao
97 :
NAME IS NULL :2006/04/03(月) 16:03:56 ID:E79P7eVa
98 :
"" :2006/04/25(火) 20:16:11 ID:3eqCav1R
left joinの使い方教えてください。お願いします。
SQLの厳密な文法を構文図かBNFで記載したサイトか書籍はないでしょうか? よろしくお願いします
規格票にあると思うよ。高いけど。
それぞれのDBのマニュアルについているよ^^
AccsessでもADOならワイルドカードはやっぱり% とか、いつのレスに対してだか誰のレスに対してだか分からない どうでもいいようなことを書いてみる
あの、一行だけの表(ORACLEのDUALとかDB2のsysdummy1)を 指定の行数出力することは可能ですか? もちろん select * from dual union all select * from dual で繋げていけば指定の行数出力可能だとは思うんですが・・・ この方法以外で1ステートメントで・・変数として行数を指定したいんです。 10を入れれば下記のような出力となるSQLです。 DUMMY -------- X X X X X X X X X X SQLだけでは無理ですかね・・・
ストアド書きなはれ
select 'X' from all_objects where rownum<=&1;
107 :
NAME IS NULL :2007/03/20(火) 07:23:07 ID:fNM6Qnn+
sqlで検索条件を書くときに、絞り込み量が大きい順にすると検索結果が速くなるときいたのですが本当ですか?
SQLのコーディングスタイル(大文字/小文字とか改行とかインデントとか) って何かいいのないかな? 例えば下のようなSQLだったらおまいらどう書きますか? (俺は予約語小文字派。) select C.DATA, C.COL, sum(C.COL2) / count(*) from (select * from (select * from TABLEA) as A cross join (select DATA as DATA2, COL as COL2 from TABLEA) as B order by A.DATA desc, B.DATA2 DESC) as C where C.DATA >= C.DATA2 and C.DATA2 > C.DATA - 5 group by C.DATA, C.COL order by C.DATA desc ;
漏れだったらこう書くな。 select C.DATA , C.COL , sum(C.COL2) / count(*) from ( select * from ( select * from TABLEA ) as A cross join ( select DATA as DATA2, COL as COL2 from TABLEA ) as B order by A.DATA desc, B.DATA2 DESC ) as C where C.DATA >= C.DATA2 and C.DATA2 > C.DATA - 5 group by C.DATA , C.COL order by C.DATA desc ; 大文字小文字は拘らない。
予約語は大文字派
112 :
◆O7Fiuvx.6o :2008/04/01(火) 13:09:53 ID:ufIqo/xg
テスト
全部小文字派だったんだが、 SQL Server でデータの大文字小文字を区別しないとかいう設定があったらしく、 区別するようにしたら、列名まで大文字小文字を区別するようになって、 小文字ではデータにアクセスできなくなった。 それ以来、全部大文字。 SQL Server にはあまりなれてない DBA なので、何かの勘違いじゃないかと思うんだが、 そんなことはないか?
まあアンダースコア使わないのはありえないな
115 :
NAME IS NULL :2008/05/05(月) 10:56:26 ID:5HiaOU4r
カンマ行頭派 vs 行末派を開催しましょう
>>113 そういう設定あるよ。Collationのことだろう。サーバーにデフォルトが設定されているが、
create database やカラムで指定することもできるし、where で文字列比較時に指定することもできる。
大文字小文字の識別有無だけでなく、全角と半角、ひらがなとカタカナ、仮名の濁音と半濁音に
ついても、識別するかそれとも同じ文字と見なすか、という指定ができる。
アンスコ派だったけアンスコを単語区切りに使うのもったいないからキャメル派に転向しました
119 :
NAME IS NULL :2008/10/26(日) 18:13:57 ID:0SMHVjon
【質問】 みなさん、SQLエディタ?ってなにを使われてますか? ぼくは、CSEを使っています。 ただ、少々ふるいので、新しいエディタを使いたいと考えてます。 お勧めのエディタがあれば教えてください。 因に、 OS;WinXP DBMS;oracle 10g です。 よろしくお願いします。
CSEで困ったのがUTF-8を正しく認識してくれないこと。 S-JISで設計されてるのかな? 黒猫 SQL Studio
121 :
NAME IS NULL :2008/10/26(日) 20:20:57 ID:0SMHVjon
>>120 黒猫は使ったことないので、使ってみます。
世界的に有名なエディタってご存知ですか?
検索しても見つからないので・・・
世界的にとか言ったら、emacsのsql-modeぐらいしかないのでは。 全然新しくないけど。
A5:SQL Mk-2 … 世界的じゃなさそうだが、フリーの中では最強と思う。
sage
127 :
NAME IS NULL :2009/11/15(日) 12:43:10 ID:NGi10r9r
ひさびさに業務系のカスタマイズ案件をやってるんだが、 やっぱウォーターフォールだとSQL文が複雑になる傾向が あるなぁ。 SEが自らの存在価値を出そうと、なんでもSQLでやろうと するからだと思うんだが、複雑なSQLはデバッグと メンテが大変だから、勘弁して欲しい。
なんでも手続き型で、というのも問題があるけどな。
男は黙ってスラムダンク
左手を添えてるだけじゃん
table1 id 名前 状態_id ------------------ 1 キムラ A 2 田中 B talbe2 id 状態_id 状態(varchar) ------------------ 1 A 0 2 A 0 3 A 1 4 B 0 5 B 0 結果 名前 状態 ------------------ キムラ 1 田中 0 になるようなSQL文でどう書きまっか?ちなみにORACLE9i。
132 :
131 :2010/01/13(水) 11:40:58 ID:???
GROUP BYで自己解決しますた。
134 :
NAME IS NULL :2010/10/12(火) 15:25:25 ID:vxRffEeS
10年ほど前、N*CのSQLコーディング規約 SELECT命令のところ FROM句には複数のテーブルを記述してはならない、 とあって笑った。
なんで? べつに面白くないが
「底辺グラマが結合をつかうのはまかりならん。必要なときはSEか上級グラマが VIEWを作ってやるからそれを使え。」ってやつかな。 たぶんそれは底辺向けの規約なんだよ。
138 :
NAME IS NULL :2010/10/19(火) 13:49:18 ID:dBdSbcBS
>>137 不二通でも、同じような規約があった。
200人以上開発メンバーがいるプロジェクトのSQLに自称いちばんくわしい
というF社社員がFROM句に1つ以上のテーブルを書くとエラーになると
思っていた。木亥火暴
MySQL 5.1.45 作者テーブル author_tbl id int(5) ← PK auto_increment author_name varchar(30) ← unique index 作者別名変換テーブル author_changetbl change_id int(5) ← PK auto_increment betumei varchar(30) ← unique index moto_id int(5) author_tbl id name 1 xxxxx 2 dddddd 3 rrrrrr 4 ssssss 6 nnnnnnn author_changetbl change_id betumei moto_id 1 fffffff ????? 2 rrrrrrr ????? author_changetblのchange_id 1 は author_tblのid 3の別名、 author_changetblのchange_id 2 は author_tblのid 1の別名として 作者テーブルと作者別名変換テーブル(改名等で名前を変更)の2つがあります moto_idの値は事前に必ずauthor_tblのauthor_idに登録されています。 作者別名変換テーブルにデータを登録する際に、moto_idを元の author_tblから拾って登録するようにしたいのですが、insertにそういう事って 出来ますか? fffffffとそれに対応するrrrrrrは事前に判ってはいるのですが
SQLよく知らん
∧,,,∧ ( ・∀・) ほー それで ( : ) し─J
ここで質問するのがあっているかどうかわからんのですが、 トランザクションって、複数のConnectionに対してかけることはできないのでしょうか? MySQLで。 ある1つのConnectionでSQLを実行してConnectionを閉じた後、 別に新しいコネクションを開いて実行したSQLまでをトランザクションの範囲とする ことは不可能でしょうか?
143 :
NAME IS NULL :2014/07/30(水) 08:52:27.89 ID:+2NTFeTZ
★2ch勢いランキングサイトリスト★ ◎ +ニュース ・ 2NN ・ 2chTimes ◎ +ニュース新着 ・ 2NN新着 ・ Headline BBY ◎ +ニュース他 ・ Desktop2ch ・ 記者別一覧 ◎ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ◎ 実況込み ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索
>>142 コネクション閉じたら、そのあとコミットしたかロールバックしたか判断できんぞ