約 5,029,882 件
https://w.atwiki.jp/johzue/pages/22.html
psql注 psql データベース名psqlインタプリタの起動 psql -n データベース名日本語使用の場合 psql -lデータベースの一覧表示 psql -H データベース名出力をHTMLタグにするオプション psql -H -T border データベース名ボーダーを表示するオプション psql \(逆スラッシュ)zアクセス権限付きでテーブル一覧表示 psql \(逆スラッシュ)d テーブル名スキーマの確認 データベース操作 createdb データベース名データベースを作る createdb データベース名 -E 文字コード文字コードを指定して作る destroydb データベース名データベースを削除作成者かスーパーユーザが可能 テーブル操作 create table テーブル名;テーブルを作る create table テーブル名 (カラム名 型、・・・);カラムを指定してテーブル作成例)create table shinamono(hinmei text、nedan int); drop table テーブル名;テーブルを削除 選択 select カラム名 from テーブル名;カラムを抽出select * from テーブル名 で全て抽出 select カラム名 from テーブル名 where カラム名=値;特定カラムが[値]のカラムを抽出 select カラム名 from テーブル名 limit n;n件までの選択結果を返す select カラム名 from テーブル名 limit n offset m;n件まで、m件からの結果を返す 挿入 insert into テーブル名 values (値、値・・・);データの登録例)insert into sample values (1、 テスト 、2); insert into テーブル名(age、name) values(値、値);データの登録 更新 update テーブル名 set カラム名 = 値データの更新 update テーブル名 set カラム名 = 値 where カラム名 = 値;データの更新 削除 delete from テーブル名 where カラム名 = 値;データの削除 権限 grant 種類 on テーブル名 to 対象ユーザ権限を与える種類 = all、select、update、delete、rule revoke 種類 on テーブル名 to 対象ユーザ権限を奪う種類 = all、select、update、delete、rule
https://w.atwiki.jp/wnt0/pages/36.html
#include iostream #include string #include list using namespace std; enum E_STATE { OFF, ON }; /* * observer ボタン、LED * subject コントローラ */ // prototype class Observer; // 通知する人 class Subject { public void AddObserver(Observer *observer); void DelObserver(Observer *observer); virtual void NotifyObserver(); protected list Observer* m_observers; }; class Controller public Subject { public Controller() { m_state = OFF; } virtual void NotifyObserver(); E_STATE GetState() { return m_state; } void SetState(E_STATE state) { m_state = state; } private E_STATE m_state; }; /// 監視する人 class Observer { public virtual void Update(Subject *subject) = 0; }; class ButtonObserver public Observer { public ButtonObserver(Controller *controller) { m_controller = controller; m_controller- AddObserver(this); } virtual ~ButtonObserver() { m_controller- DelObserver(this); } virtual void Update(Subject *subject) { if (((Controller*)subject)- GetState() == ON) { cout "~ button vibration ~" endl; } } void Push() { cout "[Button Push]" endl; m_controller- SetState(ON); m_controller- NotifyObserver(); } void Release() { cout "[Button Release]" endl; m_controller- SetState(OFF); m_controller- NotifyObserver(); } private Controller *m_controller; }; class LEDObserver public Observer { public LEDObserver(Controller *controller) { m_controller = controller; m_controller- AddObserver(this); } virtual ~LEDObserver() { m_controller- DelObserver(this); } virtual void Update(Subject *subject) { if (((Controller*)subject)- GetState() == ON) { cout "LED ON" endl; } else { cout "LED OFF" endl; } } private Controller *m_controller; }; /////// void Subject AddObserver(Observer *observer) { m_observers.push_back(observer); } void Subject DelObserver(Observer *observer) { m_observers.push_back(observer); } void Subject NotifyObserver() { list Observer* iterator it = m_observers.begin(); while (it != m_observers.end()) { (*it++)- Update(this); } } void Controller NotifyObserver() { list Observer* iterator it = m_observers.begin(); while (it != m_observers.end()) { (*it++)- Update(this); } } ///// int main() { Controller *cont = new Controller; ButtonObserver *button = new ButtonObserver(cont); LEDObserver *led = new LEDObserver(cont); button- Push(); button- Release(); delete button; delete led; delete cont; return 0; } 参考サイト デザインパターンを“喩え話”で分かり易く理解する http //www.netlaputa.ne.jp/~hijk/study/oo/designpattern.html TECHSCORE http //www.techscore.com/tech/DesignPattern/index.html/ Programing Place http //www.geocities.jp/ky_webid/index_old.html デザインパターンの骸骨たち http //www002.upp.so-net.ne.jp/ys_oota/mdp/
https://w.atwiki.jp/ninja22/pages/61.html
前のページ < | > 次のページ (4) データベースを作ってみる 3 phpMyAdminの操作 ●挿入 上メニューの「挿入」をクリックするとレコードを入力することができる。 「実行する」を押すとデータを保存することができる。 ●表示 上メニューの「表示」をクリックすると既存の全レコードを一覧表示できる。 ●検索 上メニューの「検索」をクリックすると検索できる。「演算子」と「値」の欄で検索の条件を指定し、「実行する」ボタンで検索されたレコードが一覧表示される。 演算子について 演算子 意味 = フィールドが指定した値と等しい != フィールドが指定した値と等しくない > フィールドが指定した値より大きい < フィールドが指定した値より小さい >= フィールドが指定した値以上 <= フィールドが指定した値以下 LIKE フィールドが指定したパターンとマッチする %LIKE% フィールドに指定したものが含まれている NOT LIKE フィールドが指定したパターンにマッチしない REGEXP フィールドが指定した正規表現パターンにマッチする NOT REGEXP フィールドが指定した正規表現パターンにマッチしない IS NULL フィールドがNULLである。 IS NOT NULL フィールドがNULLでない。 ●SQL SQL(Structured Query Langage)とは、データベースにアクセスするための言語である。 SQLでは、挿入(insert)、編集(update)、削除(delete)、選択(select)といった命令を使ってデータの読み書きができる。 上メニューの「SQL」をクリックすると、SQL命令コードを入力することができる。 レコードの追加 レコードのすべてのフィールドにデータを入れる insert into テーブル名 values (値1, 値2 ..., 値n) レコードの一部のフィールドにデータを入れる insert into テーブル名 (フィールド名1, フィールド名2, ..., n) values (値1, 値2, ..., n) 「’」や「”」 このような記号は直前に「¥」を入れる必要があります。 insert into テーブル名 values (値1, 値2 ..., 値n) レコードの削除条件を指定していないと全部消えてしまうので注意! delete from テーブル名 where 条件 categoryテーブルからidのフィールドが1のレコードを削除する場合 delete from category where id = 1 レコードの変更update命令を使います。 update テーブル名 set フィールド名1=値1, フィールド名2=値2, ..., n where 条件 categoryテーブルからidフィールドが5のレコードを、そのnameフィールドの値を「ペット」に変更する場合 update category set name = ペット where id = 5 レコードを取り出すすべてのレコードを取り出す。 select * from テーブル名 特定のフィールドを取り出す。 select フィールド名1, フィールド名2, ..., n from テーブル名 条件をつけてレコードを取り出す。 select フィールド名1, フィールド名2, ..., n from テーブル名 where 条件 条件を組み合わせてレコードを取り出す。(prefフィールドの値が「東京都」とsexフィールドの値が「男」の条件を同時に満たすレコードを検索する)「or」を使うと、「または」表現になる。 select フィールド名 from テーブル名 where pref = 東京都 and sex = 男 値の範囲を指定する。(idフィールドの値が3~5の間) select * from テーブル名 where id between 3 and 5 値の範囲を指定する2。(prefフィールドの値が○○か□□か△△であるレコード) select * from テーブル名 where pref in ( 東京都 , 神奈川県 ) 文字列を指定する。(nameフィールドの値の先頭に「山田」が含まれるレコード) select * from テーブル名 where name like 山田% 検索方法 意味 田% 最初に「田」がつく文字列 %田 最後が「田」で終わる文字列 %本% 途中に「本」が含まれる文字列 %100¥% 最後に「100%」がつく文字列 正規表現を使った検索※PHPでは「¥s」で数字の集合を表すが、MySQLでは下記表のようになる。 phoneフィールドの先頭部分が数字3桁か4桁であるレコードを検索する。 select * from テーブル名 where phone regexp ^[[ digit ]]{3,4} 文字クラス 内容 digit 数字 alpha アルファベット alnum アルファベットと数字 upper アルファベットの大文字 lower アルファベットの小文字 space ホワイトスペース nullを検索。(phoneフィールドに値が入っていない人を検索) select * from テーブル名 where phone is null nullを検索2。(phoneフィールドに値が入っている人を検索) select * from テーブル名 where phone is not null レコードを並べ替える。(idフィールドの値が5以下のレコードが取り出され、idフィールドの値の昇順に並べ替えられる。)/降順:order by フィールド名 desc select * from テーブル名 where id = 5 order by id 取り出す件数を制限する (limit x, y)先頭からx件のレコードを飛ばし、その後y件のレコードを取り出す。 select * from テーブル名 limit 10, 5 ※ XAMPP 1.7.7 [PHP 5.3.8] での設定項目です。 前のページ < | > 次のページ ◆ ◆ ◆
https://w.atwiki.jp/c21coterie/pages/576.html
問い31 1,5,10,20,50,100,200の硬貨を使って200を作る方法はいくつあるか? 簡単な問題なので楽々。 #include stdio.h int main(){ int memo[201]={0}; int coins[]={1,2,5,10,20,50,100,200},coin; memo[0]=1; for(int i=0;i 8;i++){ coin=coins[i]; for(int j=0;j =200-coin;j++){ memo[j+coin]+=memo[j]; } } printf("%d\n",memo[200]); } 問い32 7254は面白い性質を持っている. 39 × 186 = 7254と書け, 掛けられる数/掛ける数/積に1から9の数が1回ずつ出現する. 掛けられる数/掛ける数/積に1から9の数が1回ずつ出現するような積の総和を求めよ. HINT いくつかの積は, 1通り以上の掛けられる数/掛ける数/積の組み合わせを持つが1回だけ数え上げよ. 条件を満たす組み合わせが1桁*4桁=4桁か 2桁*3桁=4桁しかないのでこの範囲を全探索してチェック関数で条件を満たしているか調べるだけです。 #include stdio.h #include set bool check(int a,int b){ int count[10]={1,0}; int c=a*b; while(a!=0){ count[a%10]++; a/=10; } while(b!=0){ count[b%10]++; b/=10; } while(c!=0){ count[c%10]++; c/=10; } bool ok=true; for(int i=0;i 10;i++){ if(count[i]!=1)ok=false; } return ok; } int main(){ std set int memo; std set int iterator it; for(int a=1;a 10;a++){ for(int b=1000;b 10000;b++){ if(check(a,b)==true){ printf("%d %d %d\n",a,b,a*b); memo.insert(a*b); } } } for(int a=10;a 100;a++){ for(int b=100;b 1000;b++){ if(check(a,b)==true){ printf("%d %d %d\n",a,b,a*b); memo.insert(a*b); } } } int ans=0; for(it=memo.begin();it!=memo.end();it++){ ans+=(*it); } printf("%d",ans); } 問い33 http //projecteuler.net/problem=33 親切なヒントだらけの簡単な問題。 条件を満たす答えが4つとか親切すぎると思う。 ルールが恣意的なせいかコードが膨らんでしまった。 条件を満たす削除を探して無理やり約分して比較。 ルール上数字を二つとも消すというのはないので分岐は楽。 Lispで書けばもっと簡単? #include stdio.h int main(){ int ansA=1,ansB=1,aa,bb,aaa,bbb; for(int a=10;a 100;a++){ for(int b=10;b a;b++){ if(a%10+b%10==0)continue; // b/a if(a%10==b%10){ // bb/aa aa=a/10; bb=b/10; }else if(a/10==b%10){ aa=a%10; bb=b/10; }else if(a%10==b/10){ aa=a/10; bb=b%10; }else if(a/10==b/10){ aa=a%10; bb=b%10; }else{ continue; } //if(a==98 b==49)printf("(%d/%d)",bb,aa); aaa=a; bbb=b; for(int i=2;i 100;i++){ while(aaa%i==0 bbb%i==0){ aaa/=i; bbb/=i; } while(aa%i==0 bb%i==0){ aa/=i; bb/=i; } } if(aaa==aa bbb==bb){ printf(" %d/%d ",b,a); ansA*=a; ansB*=b; } } } printf("(%d/%d)",ansB,ansA); for(int i=2;i =ansA;i++){ while(ansA%i==0 ansB%i==0){ ansA/=i; ansB/=i; } } printf("(%d/%d)",ansB,ansA); } 問い34 各桁の階乗の和が元の数と同じになる数の合計値を求める問題。 階乗の和を求める関数をf(n)とするとf(n)は250万あたりでnより小さい値しか返さなくなるので後は力づくでもとめます。 #include stdio.h int last=0; int p[10]; int calc(int n){ int ans=0; while(n!=0){ ans+=p[n%10]; n/=10; } return ans; } int main(){ int i=1; p[0]=1; int ans=0,last; for(int i=1;i 10;i++){ p[i]=p[i-1]*i; } for(int i=3;i 6000000;i++){ if(i==calc(i)){ ans+=i; last=i; } } printf("%d %d",ans,last); } 問い35 ある数字の並びを右から左へ巡回させて出来る数を巡回数と呼び、巡回数が全部素数である巡回数を巡回素数という。 100万以下の巡回素数の数を求めよ。 std setにsosuuを保管して後は全探索で片が付きました。 #include stdio.h #include set #include algorithm const int up=1000000; std set int sosuu; bool so[up]; void setSo(){ int i2; memset(so,true,sizeof(so)); sosuu.insert(2); for(int i=3;i =up;i+=2){ if(so[i]==false)continue; sosuu.insert(i); i2=i*2; for(int j=i*3;j up;j+=i2){ so[j]=false; } } } int main(){ setSo(); int size,n,ans=0,m; for(std set int iterator it=sosuu.begin();it!=sosuu.end();it++){ bool ok=true; n=(*it); size=0; m=1; while(n!=0){ size++; n/=10; m*=10; } m/=10; n=(*it); for(int i=0;i size;i++){ //printf("%d ",n); if(sosuu.find(n)==sosuu.end())ok=false; n=n/10+n%10*m; } ans+=ok; //printf("\n"); } printf("%d\n",ans); } 問い36 100万以下の2進数で表しても10進数で表しても左右対称な数の和を求めよ。 100点満点でいえば多分60点くらいの平凡なコードでクリア。 #include stdio.h #include iostream int rev(int n){ int re=0; //20回もビットシフトするとか贅沢だな while(n!=0){ re =1; re|=(n 1); n =1; } return re; } int main(){ //この処理も贅沢に int n,m; __int64 ans=0; for(int i=1;i 1000000;i++){ n=i; m=0; while(n!=0){ m*=10; m+=n%10; n/=10; } if(i==m rev(i)==i){ printf("%d ",i); ans+=i; } } std cout "\n" ans; } 問い37 3797は面白い性質を持っている. まずそれ自身が素数であり, 左から右に桁を除いたときに全て素数になっている (3797, 797, 97, 7). 同様に右から左に桁を除いたときも全て素数である (3797, 379, 37, 3). 右から切り詰めても左から切り詰めても素数になるような素数は11個しかない. 総和を求めよ. とりあえず100万以下の素数で条件を満たすかチェックする関数で試したところ11個目が100万以下で見つかったので答えとしました。 何故11個しかないと証明できるのか少し不思議です。 上限があると教えるのは何だか親切な問題ですね。 #include stdio.h #include set #include algorithm const int up=1000000; std set int sosuu; bool so[up]; void setSo(){ int i2; memset(so,true,sizeof(so)); sosuu.insert(2); for(int i=3;i =up;i+=2){ if(so[i]==false)continue; sosuu.insert(i); i2=i*2; for(int j=i*3;j up;j+=i2){ so[j]=false; } } } bool check(int n){ int r=n,l=n,ten=1;//右から削除、左から削除 while(r =10){ r/=10; ten*=10; if(sosuu.find(r)==sosuu.end()||sosuu.find(l%ten)==sosuu.end())return false; //printf("(%d %d)",r,l%ten); } return true; } int main(){ setSo(); int ans=0; for(std set int iterator it=sosuu.begin();it!=sosuu.end();it++){ if((*it) 10)continue; if(check((*it))==true){ printf("(%d)",(*it)); ans+=(*it); } } printf("%d\n",ans); } 問い38 192を1, 2, 3で掛けてみよう. 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576 積を連結することで1から9のPandigital数 192384576 が得られる. 192384576を 192と(1,2,3)の連結積と呼ぶ. 同じようにして, 9を1,2,3,4,5と掛け連結することでPandigital数918273645が得られる. これは9と(1,2,3,4,5)との連結積である. 整数と(1,2,...,n) (n 1) との連結積として得られる9桁のPandigital数の中で最大のものを答えよ. 解法 条件を満たす数を全探索してチェック条件を満たしたものをアウトプット、出てきた表をExcelで処理すれば完了です。 #include stdio.h #include string.h int check(int a,int count[10]){ while(a!=0){ count[a%10]++; a/=10; } //出てきている数の種類を数えて返す関数,条件を満たさなければ-1を返す int sum=-1;//0をカウントしないようにする for(int i=0;i 10;i++){ if(count[i] 1)return -1; sum+=count[i]; } return sum; } int main(){ int count[10],c;//0~9までをカウントする for(int i=1;i 10000;i++){ //5桁*1=5桁 //5桁*2 =5桁より10ケタを超えるのでi 10000までしか試す必要がない memset(count,0,sizeof(count)); count[0]=1;//0は出てきてはならない for(int j=1;j 10;j++){ c=check(i*j,count); if(c 9){ break; }else if(c==9){ printf("%d %d ",i,j); for(int k=1;k =j;k++){ printf("%d",i*k); } printf("\n"); } } } } 問い39 辺の長さが{a,b,c}と整数の3つ組である直角三角形を考え, その周囲の長さをpとする. p = 120のときには3つの解が存在する {20,48,52}, {24,45,51}, {30,40,50} p ≦ 1000 で解の数が最大になる p を求めよ. #include stdio.h int calc(int p){ int ans=0; for(int a=1;a =p/3;a++){ for(int b=a;b =p;b++){ int c=p-a-b; if(c =b)break; if(a*a+b*b==c*c){ printf("(%d %d %d)",a,b,c); ans++; } } } if(ans 0)printf("\n"); return ans; } int main(){ int ans=0,mymax=0,t; for(int i=4;i =1000;i++){ t=calc(i); if(mymax t){ mymax=t; ans=i; } } printf("\n %d %d ",ans,mymax); } 問い40 正の整数を順に連結して得られる以下の10進の無理数を考える 0.123456789101112131415161718192021... 小数第12位は1である. dnで小数第n位の数を表す. d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000 を求めよ. コードに落とし込むのに苦労した問題。 我流で到達した方法なのでもっと賢い方法がありそう。 #include stdio.h int main(){ int ups[10]; int base[10]; int calc[10]; int ten=100; ups[0]=10; base[0]=10; for(int i=1;i 7;i++){ ups[i]=ups[i-1]+(ten-ten/10)*(i+1); base[i]=ten; ten*=10; //printf("%d %d\n",ups[i],base[i]); } int k,t,point,ans=1;//ans=d1 for(int ten=10;ten =1000000;ten*=10){ k=ten; //for(int i=98;i 103;i++){ //k=i; for(int j=6;j =0;j--){ if(k =ups[j]){ k-=ups[j]; t=k/(j+2)+base[j]; point=k%(j+2); break; } } printf("(%d %d)",t,point); k=0; while(t!=0){ calc[k]=t%10; t/=10; k++; } ans*=calc[k-1-point]; } printf("%d\n",ans); }
https://w.atwiki.jp/nyk69/pages/28.html
on duplicate key updateを使ってみる insert文の後に、on duplicate key updateを付加することによって、 keyに一致するレコードが無ければinsert,無ければupdateという 非常に便利な処理が可能となります。 例 INSERT into tableName (id, value, timestamps) VALUES (?,?,?,?) on duplicate key update value=?, timestamp=? レコードの存在チェックと、登録が一本のSQLで同時に実行できるため、 SQLの発行や、データベースのアクセス集中時の負荷を軽減できるかもしれないのである。 counter -
https://w.atwiki.jp/m_shige1979/pages/559.html
コマンド一覧 パラメータ 一覧 パラメータ 内容 -u ユーザーID ユーザーIDを指定 -p パスワードをプロンプトで入力 --password= パスワード パスワードを指定 --execute= SQLを指定 --database= データベース データベース名を指定 --host= ホスト名 ホスト名、IPアドレス指定 --port= ポート番号 ポート番号指定 詳細は「mysql --help」と押下 MySQLクライアント サーバへ接続 パスワードをコマンドで入力 C \ mysql -u root -p Enter password ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version 5.1.47-community MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type help; or \h for help. Type \c to clear the current input statement. mysql \q Bye C \ Enter password ********でパスワードを設定する パスワードをコマンドで入力 C \ mysql -u root --password=password Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version 5.1.47-community MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type help; or \h for help. Type \c to clear the current input statement. mysql \q Bye C \ mysql -u root --password=password サーバを切断 \q、quit、exit、[CTRL+C]のどれかをキーを入力 mysql \q Bye C \ 接続情報を表示 \sでキー入力 mysql \s -------------- mysql Ver 14.14 Distrib 5.1.47, for Win32 (ia32) Connection id 6 Current database Current user root@localhost SSL Not in use Using delimiter ; Server version 5.1.47-community MySQL Community Server (GPL) Protocol version 10 Connection localhost via TCP/IP Server characterset latin1 Db characterset latin1 Client characterset latin1 Conn. characterset latin1 TCP port 3306 Uptime 5 hours 51 min 57 sec Threads 1 Questions 10 Slow queries 0 Opens 15 Flush tables 1 Open tab les 0 Queries per second avg 0.0 -------------- mysql データベースを選択 USE データベース名 の選択 mysql use testdb1; Database changed mysql MySQLはデータベースを選択する必要があるのでこの処理が必要 SQLを実行 mysql insert into testtable1(data1, data2, data3) - values( 000001 , aaaaa , aaaaa-1 ); Query OK, 1 row affected (0.11 sec) mysql insert into testtable1(data1, data2, data3) - values( 000002 , aaaaa , aaaaa-2 ); Query OK, 1 row affected (0.04 sec) mysql select * from testtable1; +--------+-------+---------+ | data1 | data2 | data3 | +--------+-------+---------+ | 000001 | aaaaa | aaaaa-1 | | 000002 | aaaaa | aaaaa-2 | +--------+-------+---------+ 2 rows in set (0.09 sec) mysql MySQLコマンド SQLコマンドを直接実行 c \ mysql -u root --password=password --database=testdb1 --execute="select * from testtable1;" +--------+-------+---------+ | data1 | data2 | data3 | +--------+-------+---------+ | 000001 | aaaaa | aaaaa-1 | | 000002 | aaaaa | aaaaa-2 | +--------+-------+---------+ c \ SQLファイルを実行 c \ mysql -u root -t --password=password --database=testdb1 testtable1.SQL +--------+-------+---------+ | data1 | data2 | data3 | +--------+-------+---------+ | 000001 | aaaaa | aaaaa-1 | | 000002 | aaaaa | aaaaa-2 | +--------+-------+---------+ c \ testtable1.SQLの内容 select * from testtable1;
https://w.atwiki.jp/hirono2021/pages/12.html
(setq default-format "%Y/%m/%d %H %M %S") (defvar insert-date-format-history ()) (read-string (format "Format (default %s) " default-format) "" insert-date-format-history xxx) "てすと" "x" (setq xxx "てすと") "てすと"
https://w.atwiki.jp/nicepaper/pages/263.html
MySQLであとからカラムを追加したい場合について考えていきます。10月19日記事 目次 テーブル作成 適当に作成 確認 ただ単に追加(最後に追加) 確認 特定のカラムの直後に追加 確認 特定のカラムの直後に追加&デフォルト値の追加 データ挿入 ALTER句の追加 テーブル作成 適当に作成 まずは適当なテーブルを設計していきます。 CREATE TABLE pra_alter( id INT NOT NULL AUTO_INCREMENT, col1 VARCHAR(255) NOT NULL, col2 INT NOT NULL, col3 TEXT NOT NULL, PRIMARY KEY(id) ); 確認 DESC pra_alter; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | col1 | varchar(255) | NO | | NULL | | | col2 | int(11) | NO | | NULL | | | col3 | text | NO | | NULL | | +-------+--------------+------+-----+---------+----------------+ ただ単に追加(最後に追加) ただ単にカラムの最後に追加したい場合は ALTER TABLE テーブル名 ADD 追加カラム名 その型 ALTER TABLE pra_alter ADD col4 VARCHAR(255) NOT NULL; 確認 DESC pra_alter; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | col1 | varchar(255) | NO | | NULL | | | col2 | int(11) | NO | | NULL | | | col3 | text | NO | | NULL | | | col4 | varchar(255) | NO | | NULL | | +-------+--------------+------+-----+---------+----------------+ 特定のカラムの直後に追加 特定のカラムの直後に追加したい場合は ALTER TABLE テーブル名 ADD 追加カラム名 その型 AFTER 既存のカラム ALTER TABLE pra_alter ADD col2_2 INT NOT NULL AFTER col2; 確認 DESC pra_alter +--------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | col1 | varchar(255) | NO | | NULL | | | col2 | int(11) | NO | | NULL | | | col2_2 | int(11) | NO | | NULL | | | col3 | text | NO | | NULL | | | col4 | varchar(255) | NO | | NULL | | +--------+--------------+------+-----+---------+----------------+ 特定のカラムの直後に追加&デフォルト値の追加 データ挿入 INSERT INTO pra_alter (col1,col2,col2_2,col3,col4)VALUES ( あ ,1,2, い , う ); INSERT INTO pra_alter (col1,col2,col2_2,col3,col4)VALUES ( え ,1,2, お , か ); INSERT INTO pra_alter (col1,col2,col2_2,col3,col4)VALUES ( き ,1,2, く , け ); ALTER句の追加 ALTER TABLE pra_alter ADD col3_2 INT NOT NULL default 100 AFTER col3; SELECT * FROM pra_alter; +----+------+------+--------+------+--------+------+ | id | col1 | col2 | col2_2 | col3 | col3_2 | col4 | +----+------+------+--------+------+--------+------+ | 1 | あ | 1 | 2 | い | 100 | う | | 2 | え | 1 | 2 | お | 100 | か | | 3 | き | 1 | 2 | く | 100 | け | +----+------+------+--------+------+--------+------+ 追加されると、デフォルトは 今までのフィールドのデフォルト値も100になる ということです。 以上
https://w.atwiki.jp/program/pages/121.html
トップページ プログラミング言語 C/C++ C++標準ライブラリ C++標準ライブラリ・ヘッダー別索引 ISO IEC 14882 内の関連するセクション 19.2 Assertions 名前 コメント ページビュー -
https://w.atwiki.jp/ce00582/pages/4668.html
class ren{ public static void main(String args[]){ int[] tsecode=new int[1000]; int[] tyear=new int[1000]; int[] tmonth=new int[1000]; int[] tday=new int[1000]; int[] oprice=new int[1000]; int[] hprice=new int[1000]; int[] lprice=new int[1000]; int[] cprice=new int[1000]; int[] rprice=new int[1000]; int[] volume=new int[1000]; int s,tsenumber; int key; int check; key=0; table2 t1=new table2(); if (key 50)t1.makedata("doro6"); datainput dp=new datainput(); dp.str="1720.txt"; dp.makedata(); oprice=dp.oprice; hprice=dp.hprice; lprice=dp.lprice; cprice=dp.cprice; rprice=dp.rprice; volume=dp.volume; tmonth=dp.tmonth; tday=dp.tday; tyear=dp.tyear; tsecode=dp.tsecode; tsenumber=dp.tsenumber; insert2 inh =new insert2(); for(s=1;s tsenumber+1;s++){; inh.oprice=oprice[s]; inh.hprice=hprice[s]; inh.lprice=lprice[s]; inh.cprice=cprice[s]; inh.rprice=rprice[s]; inh.volume=volume[s]; inh.tmonth=tmonth[s]; inh.tday=tday[s]; inh.tyear=tyear[s]; inh.tsecode=tsecode[s]; inh.makedata("doro6"); } } }