ラベル mysql の投稿を表示しています。 すべての投稿を表示
ラベル mysql の投稿を表示しています。 すべての投稿を表示

2011年4月22日金曜日

データの件数を調べる

SELECT COUNT( * )
FROM `テーブル名`

重複データを除いて検索

select DISTINCT `フィールド名` from `データベース名`.`テーブル名`

2011年4月21日木曜日

データをコピーする

コピー先のテーブルは事前に作っておく

INSERT INTO `コピー先のテーブル` SELECT * FROM `コピー元のテーブル`

INSERT INTO `4-22-1`
SELECT *
FROM `4-22`

テーブルのコピー(フィールドのみ)

CREATE  TABLE `新しいテーブル名` LIKE  `コピー元のテーブル名`;
CREATE  TABLE  `4-22-1`  LIKE  `4-22` ; 

phpでレスポンスを取得

$result=simplexml_load_string(file_get_contents($resUrl));

リクエストURLの作成

sony とゆう検索ワードで検索したい場合のリクエストURL

http://auctions.yahooapis.jp/AuctionWebService/V2/search?appid=<
あなたのアプリケーションID>&query=sony

< あなたのアプリケーションID>は各々ご自分のIDに変更してください。

レスポンスのXML

<ResultSet xsi:schemaLocation="urn:yahoo:jp:auc:search http://auctions.yahooapis.jp/AuctionWebService/V2/search.xsd" totalResultsAvailable="5057" totalResultsReturned="50" firstResultPosition="1">
<Result>
 <UnitsWord>SONY VAIO</UnitsWord>
 <UnitsWord>VAIO UX</UnitsWord>
 <UnitsWord>VAIO typep</UnitsWord>
 <UnitsWord>VAIO tz</UnitsWord>
 <UnitsWord>VAIO ジャンク</UnitsWord>
 <Item>
  <AuctionID>g93428619</AuctionID>
 <Title>
 【新品即決】SONY『VAIO N』Core2Duo P8700(2.53G)/250G/4G/4570
 </Title>
 <Seller>
  <Id>hu10n2ka2</Id>
  <ItemListUrl>
   http://auctions.yahooapis.jp/AuctionWebService/V2/sellingList?sellerID=hu10n2ka2
  </ItemListUrl>
  <RatingUrl>
   http://auctions.yahooapis.jp/AuctionWebService/V1/ShowRating?id=hu10n2ka2
  </RatingUrl>
 </Seller>
...............................................................

はじめに

Yahoo!デベロッパーネットワーク

リクエストURLを作成してアクセスして、
戻ってきたレスポンスを処理すればいい。

このサイトでは、
XMLのレスポンスをPHPで処理していく。

グループ分けして合計を表示-表示件数を指定

LIMIT 0 , 30 を追加する。
<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'as0188');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "select name, SUM(apTime) from `test`.`tv-performer`  WHERE name != 'SPORTS' GROUP BY name ORDER BY SUM( apTime ) DESC LIMIT 0 , 30";
   
 $res = mysql_query($sql) or die(mysql_error());

 // Print out result
 while($row = mysql_fetch_array($res)){
  echo $row['name'] . "--" . $row['SUM(apTime)'] . "分";
  echo "<br />";
 }

 if (!$res ) {
      die('エラーが発生しました。'.mysql_error());
  }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>

2011年4月20日水曜日

テーブルにフィールドを挿入

テーブル名tableNameのdateフィールドの後にdate2を挿入
ALTER TABLE `tableName` ADD `date2` VARCHAR( 20 ) NOT NULL AFTER `date` 

グループ分けして合計を表示-特定データを除いて表示

<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'pass');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "select type, SUM(price) from `test`.`sampletable`  WHERE type != '本' GROUP BY type ORDER BY SUM( price ) DESC";
   
 $res = mysql_query($sql) or die(mysql_error());

 // Print out result
 while($row = mysql_fetch_array($res)){
  echo $row['type'] . "--" . $row['SUM(price)'] . "円";
  echo "<br />";
 }

 if (!$res ) {
      die('エラーが発生しました。'.mysql_error());
  }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>

グループ分けして合計を表示-並べ替え(sort降順)

合計の大きい順に並べ替え
<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'pass');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "SELECT type, SUM(price) FROM test.sampletable GROUP BY type ORDER BY SUM( price ) DESC"; 
   
 $res = mysql_query($sql) or die(mysql_error());

 // Print out result
 while($row = mysql_fetch_array($res)){
  echo "Total ". $row['type']. " = \\". $row['SUM(price)'];
  echo "<br />";
 }

 if (!$res ) {
      die('エラーが発生しました。'.mysql_error());
  }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>
昇順の場合はDESCの代わりにASCを使う

グループ分けして合計を表示

データベース名:test
テーブル名:sampletable
id name type price
1 積み木 おもちゃ 400
2 科学 本 500
4 パン 食品 600
5 歴史 本 800
6 人形 おもちゃ 200
7 野菜 食品 100
接続に成功しました。

データを表示します。
Total おもちゃ = \600
Total 本 = \1300
Total 食品 = \700

切断に成功しました。
<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'pass');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "SELECT type, SUM(price) FROM test.sampletable GROUP BY type"; 
   
 $res = mysql_query($sql) or die(mysql_error());

 // Print out result
 while($row = mysql_fetch_array($res)){
  echo "Total ". $row['type']. " = \\". $row['SUM(price)'];
  echo "<br />";
 }

 if (!$res ) {
      die('エラーが発生しました。'.mysql_error());
  }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>

WHEREで絞り込む

<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'pass');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "select * from `test`.`tv-performer` WHERE name = '名前'";

 $res  = mysql_query($sql);

 while ($item = mysql_fetch_array($res)) {
  print $item['name'] . "--" . $item['apTime'] . "<br />";
 }

 if (!$res ) {
     die('エラーが発生しました。'.mysql_error());
 }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>

データ表示

<?php

 //データベース接続
 $link = mysql_connect('localhost', 'root', 'password');
 if (!$link) {
     die('接続失敗です。'.mysql_error());
 }
 print('<p>接続に成功しました。</p>');

 // MySQLに対する処理
 print('<p>データを表示します。</p>');

 $sql = "select * from `test`.`tv-performer`";

 $res  = mysql_query($sql);

 while ($item = mysql_fetch_array($res)) {
  print $item['name'] . "<br />";
 }

 if (!$res ) {
     die('エラーが発生しました。'.mysql_error());
 }

 $close_flag = mysql_close($link);
 if ($close_flag){
     print('<p>切断に成功しました。</p>');
 }

?>

カラムのデータ一括変換

UPDATE `tv-performer` SET `date` = replace( date, '4/21', '201104200500' ) ;

テーブルの全データを削除

TRUNCATE TABLE `テーブル名`;

2011年4月14日木曜日

コマンド一覧

データベース一覧表示
mysql> SHOW DATABASES;

データベースの削除
mysql> DROP DATABASE db_name;

データベースの選択
mysql> USE db_name

テーブル一覧表示
mysql> SHOW TABLES;

テーブルにあるレコード数
mysql> select count(*) from テーブル名

テーブルの作成
mysql> create table sampledb.personal(id int, name varchar(20));
mysql> create table personal(id int, name varchar(20));

テーブルの削除
mysql> DROP TABLE table_name;

データの追加
mysql> insert into table_name(id, name) values(1, 'Name');

データの確認
mysql> SELECT * FROM table_name;

データの削除
mysql> delete from table_name where id=2;