タグ

sqlに関するnebokegaoのブックマーク (7)

  • 内部結合(INNER JOIN句)

    2 つのテーブルを結合してデータを取得する方法の中で、指定したそれぞれのテーブルのカラムの値が一致するデータだけを取得する方法が内部結合です。ここでは SQLite で内部結合を行うための INNER JOIN 句の使い方について解説します。 内部結合とは 最初に内部結合について簡単に説明しておきます。内部結合とは2つのテーブルでそれぞれ結合の対象となるカラムを指定し、それぞれのカラムに同じ値が格納されているデータを結合して取得するものです。 次の図を見て下さい。左側のテーブルと右側のテーブルを内部結合します。結合の対象となるカラムは左側のテーブルが「部署ID」、右側のテーブルが「ID」です。この2つのカラムの値が同じデータ同士を結合し取得します。 左側のテーブルのデータの中で「部署ID」カラムの値が右側のテーブルの「ID」カラムの値の中にない場合にはデータを取得しません。

    内部結合(INNER JOIN句)
  • 【SQL】複数の条件のcountを1回のクエリでおこなう at softelメモ

    問題 こんなテーブル a があります。 create table a (id int, flag int); こんなふうにデータを入れて、 insert into a (id, flag) values (1, 1), (2, 1), (3, 0), (4, 0), (5, 1); こんなふうになっているとします。 select * from a; +----+------+ | id | flag | +----+------+ | 1 | 1 | | 2 | 1 | | 3 | 0 | | 4 | 0 | | 5 | 1 | +----+------+ なるべく単純な1つのSQLで、すべてのレコード数と、flag=1のレコード数と、flag=0のレコード数を取得せよ。 なお、サブクエリは使わないこと。 ヒント 集計を3つしたいので、こうなる? select count(????), c

    【SQL】複数の条件のcountを1回のクエリでおこなう at softelメモ
  • mysqlで全テーブルのカラム一覧を見たい - It's raining cats and dogs.

    情弱メモ。 mysqlでテーブル一覧とかカラム一覧とかを見るときは /* テーブル一覧 */ mysql> show tables; /* カラム一覧 */ mysql> desc <table_name>; みたいにやるんだけど、mysqlコマンドではなくて、sqlで確認したいときは mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | projectdb | | test | +--------------------+ で表示されるinformation_schemaというDBにいろんな情報が入ってるので、このDBを使うと良い。 information_schemaのテーブル一覧を見ると mysql> use informat

    mysqlで全テーブルのカラム一覧を見たい - It's raining cats and dogs.
  • 意外と便利?PHP製のHTML用問い合わせ言語·htmlSQL MOONGIFT

    htmlSQLHTML構造にSQLを使って検索できるようにするライブラリです。 HTMLを操作する際にはDOMを使ったり、正規表現を使うのが一般的です。しかしもう一つのやり方を提案するのがhtmlSQLです。何とSQL(問い合わせ言語)を使ってHTMLソースを探索できます。 コード例。PHPで操作します。 こんな感じで取得できます(301になってしまっていますが…)。 こちらもコード例。SQLっぽい記述が面白いです。 クラスやIDなどで絞り込んだり、特定のタグだけを抽出することも簡単にできます。そして指定した要素だけ抽出して処理が可能です。今後、LIMITなどにも対応していくとのことです。 htmlSQLPHP製、New BSD Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る SQLはサーバサイドで使われるプログラミング言語と構造体系が大きく異なるために

    意外と便利?PHP製のHTML用問い合わせ言語·htmlSQL MOONGIFT
  • SQLアンチパターン - 開発者を待ち受ける25の落とし穴

    3. 諸君は自らの経験からいくらか学ぶことがで きるという、全く愚かな考えであろうが、 余はむしろ他人の失敗を学ぶことで、自分の 失敗を回避することを好む。 ─オットー・フォン・ビスマルク Nur ein Idiot glaubt, aus den eigenen Erfahrungen zu lernen. Ich ziehe es vor, aus den Erfahrungen anderer zu lernen, um von vorneherein eigene Fehler zu vermeiden.

    SQLアンチパターン - 開発者を待ち受ける25の落とし穴
  • SQL*Loader 改行コードを含む文字列をロードする方法 oracle 10g : 他事騒音.blog

    oracle10gにSQL*Loaderで、 改行コードを含む文字列をロードする方法 について いろいろ調べたけど、明確にこれだ!ってのが無かったので 自分でやってみて出来た方法を載せます。 制御ファイルの定義 --------------- INFILE 'hoge.csv' "str 'CRLF'" 1.hoge.csvというデータを取り込むという宣言 2.終端文字をCRLFという文字列にするという宣言 ※デフォルトでは改行コードが終端文字になる ロードデータ(hoge.csv)---------- "1","test","改行文字 ありのデータ"CRLF 1.各項目は文字列、数値に関わらず""(ダブルクォーテーション)で囲むこと 2.1レコードの最後に制御ファイルで指定した終端文字(この場合はCRLF)を入れること

    SQL*Loader 改行コードを含む文字列をロードする方法 oracle 10g : 他事騒音.blog
  • SQLで大量データを一気に作るでござる(MySQL編) @ t100のプログラミング脱出作戦

    自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30) 開発をしていて、大量のテストデータが欲しいなーということが時々あります。 先日の、「MySQLの using temporary; using filesort が何故遅いのか」の内容も、実際に検証してみるには、sort_buffer_size を超える量のテストデータが必要になります。 しかし、これが意外と面倒くさいっ 使い慣れたスクリプト言語で、チョチョイとコードを書くのもOKなのですが、でもやっぱり面倒くさいっ (ですよね?) ということで、今回はSQLだけで大量データを作る方法を考えて見ます。 といっても、ストアドプロシージャでループと

  • 1