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

6498 ワード

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件のみをリストします.すべてリストしたい場合はshow full processlistを使用します.

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のカラム値は変化するため,VARCHARを選択し,その長さは必ずしも20ではない.
1から255までの任意の長さを選択できます.後で文字長を変更する必要がある場合は、ALTER TABLE文を使用します.
性別は1文字で「m」または「f」を表すことができるので、CHAR(1)を選択します.
birthカラムでは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

このコマンドを使用して、テキストファイル「mytable.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);

primary keyの削除

alter table tablename drop primary key;
drop primary key on tablename;

tableテーブルデータエンジンの変更

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からTINYINT NOT NULL(名前同じ)に変更し、
列bを変更し、CHAR(10)からCHAR(20)に変更し、同時に名前を変更し、bからcに変更する.

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

dという新しいTIMESTAMP列を追加します.

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カラムはインデックス化されている必要があります.
また、インデックスされたカラムはNULLではないため、cをNOT 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にバックアップします.db2.sqlファイル、db 1.db2.sqlはテキストファイルで、ファイル名です.
任取、開けてみると新しい発見があります.
(例を挙げると:
mysqldump -h host -u user -p pass --databases dbname > file.dump
ホスト上の名前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>