MySql常用クエリコマンド操作大全


MYSQL常用調査コマンド:

mysql> select version();   MySQL    
mysql> select current_date();   MySQL     
mysql> select version(),current_date();     MySQL         
mysql> show databases;           
mysql> USE mysql        (USE QUIT         )
Database changed
mysql> select database();           
mysql> show tables;             
mysql> select * from db;    (db)    
mysql> describe mytable;       
或いはshow columns from表名;

mysql> select
-> user()
-> \c
mysql>
練習は以下のとおりです。

mysql> select
-> USER()
-> ,
-> now()
->;
mysql> Select (20+5)*4;
mysql> Select (20+5)*4,sin(pi()/3);
mysql> Select (20+5)*4 AS Result,sin(pi()/3); (AS:      Result)
MySQLの現在のユーザーが占有している接続数を確認します。
コマンド:show processlist;rootアカウントなら、すべてのユーザーの現在の接続を見ることができます。他の普通のアカウントであれば、自分で使う接続しか見られません。
show processlist前の100条だけ書いてください。全部リストしたいならショーフルルプロcesslistを使ってください。

mysql> show processlist;
一。データベース:

mysql> CREATE DATABASE abccs;         
mysql> USE abccs        
mysql> drop database     ;      
二番目です。表:
1です。テーブルを作成:

mysql> CREATE TABLE mytable
-> (
-> name VARCHAR(20),
-> sex CHAR(1),
-> birth DATE,
-> birthaddr VARCHAR(20)
-> );
従業員の誕生日表を作って、表の内容は従業員の名前、性別、生年月日、生都市を含みます。
name、birthaddの列の値が変化しているので、VRCHARRを選択すると、その長さは必ずしも20ではない。
1から255までの長さを選択してもいいです。これからは字の長さを変えたいなら、ALTER TABLE文を使ってもいいです。
性別は1文字で「m」または「f」を表すことができますので、CHAR(1)を選択します。
ビッチ列はDATEデータタイプを使います。
2です。追加したレコードを問い合わせる:

mysql> select * from mytable;
Empty set(0.00 sec)は先ほど作成したテーブルはまだ記録されていないということです。
3です。新しいレコードを追加:

mysql> insert into mytable 
-> values
->(
->'abccs',
->'f',
->'1977-07-07',
->'china'
->);
4です。データをテキストでデータベーステーブルに読み込みます。
一つずつ新しい記録をつけるのは面倒くさいです。
テキストファイル「mysql.txt」を作成し、表の構造に従って行ごとに記録し、位置標本(tab)で値を分離します。

abccs f 1977-07-07 china 
mary f 1978-12-12 usa
tom m 1970-09-02 usa
このコマンドを使ってテキストファイル「mystable.txt」を表にロードします。

mysql> Load data local infile "mytable.txt" into table mytable;
データ着信コマンドload data local infile 「ファイル名」into table
注意:mysql/binディレクトリにファイルをコピーしたほうがいいです。そして先にuse命令でテーブルのあるライブラリを選択してください。
5です。更新履歴:

mysql> update mytable set birth = "1973-09-02" where name = "tom";
6です。レコードを削除:

mysql> delete from mytable where id=10; //     id=10   ;
mysql> delete from mytable where id=10 limit 1; //     1 id=10   ;
mysql> delete from mytable //          ;
mysql> DELETE FROM t1 WHERE C>10;
mysql> drop table tablename1,tablename2,…; //          ,    。
7です。テーブルの名前を変更:

mysql> alter table t1 rename t2;
8です。mysqlのテーブル構造を修正します。
mysqlの時計の構造を調べます。

mysql> describe mytable;   show columns from   ;
フィールドの属性を変更

mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null
標準の値を変更

mysql> alter table tablename alter id default 0
フィールドにprimary keyを追加します。

mysql> alter table tablename add primary key(id);
prmary keyを削除します

alter table tablename drop primary key;
drop primary key on tablename;
テーブルデータエンジンを修正する

mysql> alter table tableName ENGINE = MyISAM (InnoDB);
新しいフィールド名を追加:

mysql> alter table mytable add column single char(1);
mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL
フィールドを削除

mysql> alter table t2 drop column c;
添付:
列aを変えるために、INTEGERからTINNNNYINT NOT NULLに変更しました。
そして列bを変えて、CHAR(10)からCHAR(20)に変え、同時に名前を変えて、bからc:

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
新しいTIMESTAMP列を追加しました。名前はdです。

ALTER TABLE t2 ADD d TIMESTAMP;
列dに索引を追加し、列aをプライマリキーとします。

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
新しいAUTO_を追加します。INCREMENT整数列は、cと命名されています。

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
AUTO_のためにcをインデックスしました。INCREMENT柱はインデックスされなければなりません。
また、cはNOT NULLであると宣言します。インデックスされた列はNULLではないからです。
name列の先頭10文字を使ってインデックスを作成します。

CREATE INDEX part_of_name ON customer (name(10));
三番目です。データのバックアップと復元:
データのエクスポートと導入:(命令はDOSのmysql/binディレクトリで実行します)
エクスポートテーブル

mysqldump --opt school > school.sql
注:データベースschoolのテーブルをschool.sqlファイルにバックアップします。school.sqlはテキストファイルです。
ファイル名は取ってください。開けてみてください。新しい発見があります。

mysqldump --opt school teacher student > school.teacher.student.sql
注:データベースschoolのteacherテーブルとstudentテーブルをschool.teacher.student.sqlファイルにバックアップします。school.teacher.student.sqlはテキストファイルです。ファイル名は取って、開けてみてください。新しい発見があります。
インポートシート

mysql
mysql>create database school;
mysql>use school;
mysql>source school.sql;
(またはschool.sqlをschool.teacher.sql/school.teacher.student.sqlに切り替える)
データベースをエクスポート

mysqldump --databases db1 db2 > db1.db2.sql
注:データベースdblとdb 2をdb 1.db 2.sqlファイルにバックアップします。db 1.db 2.sqlはテキストファイルで、ファイル名です。
任取さん、開けてみてください。新しい発見があります。
(例をあげます
mysqldump-h host-u user-p pass--databases dbname>file.dump
つまり、host上の名前user、パスワードpassのデータベースdbnameをファイルfile.dumpに導入します。)
データベースをインポート

mysql < db1.db2.sql
コピーデータベースmysqldump --all-databases > all-databases.sql注:すべてのデータベースをall-databases.sqlファイルにバックアップします。all-databases.sqlはテキストファイルで、ファイル名は担当します。
データベースをインポート

mysql
mysql>drop database a;
mysql>