【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 输出文件的名称” 将执行结果保存在特定的文件中。