【mysql】常用的mysql指令

说明:本文档记录常用操作,但不包括常用的SQL语句的规则。

CMD窗口相关指令:

(1)启动MySQL监视器: “mysql -u 用户名 -p 密码”

注:1: 如输入 “mysql -u 用户名 -p ”,则会出现“Enter password:”的提示。

注2:如果没有设置密码,则不要输入 “-p 密码” 这个选项。

注3:可以使用“–”来赋值,如“mysql –user=userabc –password=pass1234”。

注4:可使用制定字符编码器来启动MySQL监视器,如“mysql -u userabc -p password –default-character-set=gbk”。

注5:可使用“mysql db1 -u userabc -p pass1234” 指令来指定数据库名来执行mysql命令。

 

MySQL监视器相关指令:

(1)“status”    查看MySQL的状态,如版本、连接数、当前用户、字符编码的情况等。

(2)“SET PASSWORD FOR userabc@localhost=PASSWORD(‘pass1234’);”    修改密码。

(3)“CREATE USER 新用户名 IDENTIFIED BY ‘密码’;”   创建新用户。

(4)“GRANT 赋予的权限 ON 数据库名.表名 to 用户名;”   设置用户权限。

注1:“用户名”需按照 “用户名@主机名”的方式书写,如 “userabc@localhost”。

注2:“赋予的权限”如果是所有权限,就设置为“ALL”;如果允许“SELECT”和“UPDATE”,就设置为“SELECT,UPDATE”。

注3:如果是所有数据库的所有表,设置为“*.*”。

(5)“DROP USER userabc;”  删除用户。

(6)“CREATE DATABASE db1;”  创建数据库。

(7)“SHOW DATABASE;”  显示数据库一览。

(8)“USE db1;”   选择db1进行操作。

(9)“SELECT DATABASE();”  显示当前使用的数据库。

(10)“CREATE TABLE tb1 (列名1 数据类型1,列名2 数据类型2,列名3 数据类型3,……);” 创建表。

注1:常用数据类型: VARCHAR(10) , TEXT , INT , DOUBLE , DATETIME , DATE , YEAR等。

注2:数据库名、表名、列名,可以用  “ (反引号) 括起来使用。

注3:“CREATE TABLE tb1 (列名1 数据类型1,列名2 数据类型2,列名3 数据类型3,……) CHARSET=uft8;” 指定utf8字符集。

注4:“CREATE TABLE tb1 (列名1 数据类型1 PRIMARY KEY,列名2 数据类型2,列名3 数据类型3,……);” 创建带主键列的表。

注5:“CREATE TABLE tb1 (列名1 数据类型1 UNIQUE,列名2 数据类型2,列名3 数据类型3,……);” 创建带唯一值列的表。

注5:“CREATE TABLE tb1 (列名1 数据类型1 AUTO_INCREMENT,列名2 数据类型2,列名3 数据类型3,……);” 创建带自动连续编号的列的表。

注6:“CREATE TABLE tb1 (列名1 数据类型1 DEFAULT ‘缺省值’,列名2 数据类型2,列名3 数据类型3,……);” 创建带缺省值的列的表。

(11)“SHOW TABLES” 显示数据库中所有的标。

(12)“DESC tb1;” 显示出来表tb1的列结构。

(13)“ALTER TABLE 表名 MODIFY 列名 数据类型;” 修改表的列名、数据类型。

注1:ALTER操作除了MODIFY之外,还有 ADD、CHANGE、DROP等操作。

注2:ADD操作可以在后面加上 “FIRST” 表示新增加的列排在首位,加上 AFTER tempid表示新增加的列排在tempid列后面。

注3:“ALTER TABLE tb1 DROP col1;” 表示删除col1这个列。

(14)“CREATE INDEX 索引名 ON 表名(列名);”  “CREATE INDEX my_index ON tb1(Id);” 在表tb1的Id列上创建名为my_index的索引。

(15)“SHOW INDEX FROM tb1;” 显示表tb1上创建的索引。

注1:在这个语句后面加上 “ \G” ,可以纵向显示列值,这样看起来会美观一些。

(16)“DROP INDEX my_index ON tb1;”  删除索引。

(17)“delimiter //” 将分隔符改为“//”;   “delimiter ;”  将分隔符修改回“;”。

(18)以下是创建存储过程的语句:

delimiter //
CREATE PROCEDURE pr1()
BEGIN
SELECT * from tb1;
SELECT * from tb2;
END
//
delimiter ;

(19)“CREATE TRIGGER 触发器名 BEFORE(或者AFTER) DELETE等命令 ON 表名 FOR EACH ROW BEGIN 。。。 END;” 触发器。

(20)“START TRANSACTION;”   开启存储事务。

(21)“ROLLBACK;”    事务回滚。

(22)“COMMIT;”   事务提交。

(23)“SET AUTOCOMMIT=0;”  关闭自动提交功能。

(24)“LOAD DATA INFILE ‘文件名’ INTO TABLE 表名;” 从csv文本文件中读入内容。(详情展开请自行百度)

(25)“SELECT * INTO OUTFILE ‘c:/data.csv’ FIELDS TERMINATED BY ‘,’ FROM tb1;”  将数据表保存到csv中。

(26)“SOURCE 文本文件名” 执行包括SQL语句的文本文件。注意:不用在句子最后加“;”

(27)“tee 输出文件的名称”   将执行结果保存在特定的文件中。