Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

SQL-Tipsに関するhamastaのブックマーク (12)

  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
  • 地獄のようによくわかるSQLテーブル結合 - こせきの技術日記

    テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOINJOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。

    地獄のようによくわかるSQLテーブル結合 - こせきの技術日記
  • SQLを使うなら理解しておきたいアルゴリズム?(というか、select文の書き方) - where・order by・join・group by - 何かしらの言語による記述を解析する日記

    SQLのselect文の書き方の覚書です。 なお、文中の動作確認は「mysql Ver 5.0.67」で行いました。 2009/10/05 13:30 追記 予想外に多くのアクセスとブクマをいただき、正直驚いております。 文はsqlの内部処理には一切触れておりません。ごく普通のsqlの書き方にのみ触れています。 釣りのつもりはありませんが、釣られたと感じた方にはごめんなさい。 目次 説明に使用するデータ構造?(というかテーブル) 抽出(where句) ソート(order by句) ソートの例(昇順) ソートの例(降順) 結合(join句) 集計(group by句) 関連記事 説明に使用するデータ構造(というかテーブル) select文の使い方を説明するために、以下のようなテーブルを使います。 create table countries ( name nvarchar(30), cu

    SQLを使うなら理解しておきたいアルゴリズム?(というか、select文の書き方) - where・order by・join・group by - 何かしらの言語による記述を解析する日記
  • なければ INSERT、あれば UPDATE

    間違って主キーと同じ値を含む行を挿入しようとしたらエラーを出して教えてほしいとき INSERT INTO test VALUES(1,100); とすると、ERROR 1062 (23000): Duplicate entry '1' for key 1 というエラーが出る。 間違って主キーと同じ値を含む行を挿入しようとしても無視して処理を続行してほしいとき INSERT IGNORE INTO test VALUES(1,100); とすると、Query OK, 0 rows affected (0.00 sec) と表示される。テーブルは変更されていない。 主キーと同じ値を含む行がないなら新しく挿入し、あるならその行を更新してほしいとき REPLACE INTO test VALUES(1,500); とすると、Query OK, 2 rows affected (0.00 sec)

  • Oracle

    データベース・システムに関する情報をサイト内で提供しています。 Oracle リンク集 データベースと呼ばれているものたちのオフィシャルリンクです。(順不同) ice(管理人)は太字のDB以外は使ったことがありません。^^; Oracle DB2 SQL Server SQLite MariaDB MySQL PostgreSQL Access DynamoDB MongoDB Azure SQL Database Cassandra Redis Elasticsearch Teradata Adaptive Server Solr Splunk HBase Hive FileMaker HANA Neo4j Couchbase Informix Memcached CouchDB Vertica Firebird Netezz このページに関して管理人にメッセージを送ることができます。

    Oracle
    hamasta
    hamasta 2009/06/19
    OracleとSQLに関する情報サイト コマンド集
  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

  • RedLine Magazine : htmlSQL すごかった。感動した。

    htmlSQL すごかった。感動した。 PHPでtitleタグの中身を取り出すのにfile_get_contentsで全部htmlソース取得する方法以外に何かいい方法ないのかなみたいな事を書いたら、コメントにて「htmlSQLというモジュールが便利です。」とお教え頂いたのでさっそく試した。 >>jonasjohn.de: htmlSQL - a PHP class to query the web by an SQL like language >>htmlSQL - live example (デモ) すごいぞ。すごい細かい事まで指定できるぞ。 SQL文ちっくな書き方で抜き出したいものを指定してゲット。素人にも分かりやすい使い方で安心。ダウンロードするとデモが十数種同梱されてたので観察。titleの中身だけ欲しい時は「SELECT * FROM title」とか「SELECT text

  • SQLメモ – よく使うSELECT文を集めてみた - Archiva

    Make a note of it: Web tech, montaineering, and so on. Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。 読んで字のごとく。突っ込み歓迎! ちなみにMySQLです。 複数のテーブルからレコードを取り出す 複数の値と一致するレコードを取得する 副問合せ レコード件数を返す 取得したレコード、の値の合計 平均値を求める 値がNULLのもの 複数のテーブルからレコードを取り出す SELECT table1.* FROM table1,table2 WHERE table1.key1 = table2.key1 AND table1.field2 = 'value' AND table2.field2 = 'value'; memo: これは等価結合の場合。どちらかのデータが存在

  • http://labs.cybozu.co.jp/blog/kazuho/archives/2008/06/friends_timeline.php

  • SQL 基礎編 (その一) テーブル操作 create table、alter table、drop table - SAK Streets

    SQL 基礎編 (その一) テーブル操作 create table、alter table、drop table SQL は、Oracle であっても、パーソナルの Access の MDBSQL-Server でも 基的に同じです。 尚、VB の標準 RDB は、Access MDB そのものとなっています。 (Access はなくても良い。VB にエンジンが付いている。) ローカル RDB としてはなかなかのものです。(ちょっと見直してしまった。) リモート RDB となる Oracle は、rdo、ado、oo4o でアクセスします。 ■SQL コマンド create table テーブル作成 create view ビュー作成 alter table テーブル定義一部変更 insert データ追加 update データ修正 delete データ削除 commit トランザクショ

  • ハッカーの金鉱脈「SQLインジェクション」の正体

    最近,「SQLインジェクション」の危険性について語られる機会が増えているが,SQLインジェクションの正体,その問題点,そしてそれを防ぐための方策について詳しく理解している人はまだ多くない。ここでは,SQLインジェクションとは何かを明確に定義し,どのようにして行われるかを説明し,SQLインジェクションから組織を守る方法を読者に伝えることによって,この状況を改善したい。 SQLインジェクションとは何か SQLインジェクションとは,アプリケーションに含まれるコーディング・エラーが原因となって引き起こされるぜい弱性,または欠陥である。SQLインジェクションは,ユーザーが入力したデータを使ってアプリケーションがSQLステートメントを作成し,それをSQL Serverに送信して実行する場合に発生する。この欠陥が及ぼす影響は,コーディング・エラーの性質によって様々である。 具体的に言うと,その影響は,エ

    ハッカーの金鉱脈「SQLインジェクション」の正体
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    hamasta
    hamasta 2006/02/23
    あとで読む
  • 1