Home >Database >Mysql Tutorial >MySQL Command Line[mysql命令行常用命令]_MySQL

MySQL Command Line[mysql命令行常用命令]_MySQL

WBOY
WBOYOriginal
2016-06-01 13:46:041113browse

bitsCN.com

 

 

MySql下载地址:www.mysql.org

 

第一招、mysql服务的启动和停止

net stop mysql

net start mysql

 

 

第二招、登陆mysql

mysql -u用户名-p用户密码

mysql -uroot -p, 回车後提示你输入密码,输入12345,然後回车即可进入到mysql中了,mysql的提示符是:

mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

 

第三招、增加新用户

grant 权限on 数据库.* to 用户名@登录主机identified by "密码"

增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然後键入以下命令:grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。

如果你不想user1有密码,可以再打一个命令将密码去掉。grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

 

 

第四招: 操作数据库登录到mysql中,然後在mysql的提示符下运行下列命令,每个命令以分号结束。

 

显示数据库列表。

show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

显示库中的数据表:

use mysql; show tables;

显示数据表的结构:

describe 表名;

建库与删库:

create database 库名; drop database 库名;

建表:

use 库名; create table 表名(字段列表); drop table 表名;

清空表中记录:

delete from 表名;

显示表中的记录:

select * from 表名;

 

 

第五招、导出和导入数据

导出数据:

mysqldump --opt test > mysql.test 即将数据库test数据库导出到mysql.test文件,後者是一个文本文件如:mysqldump -u root -p123456 --databases dbname > mysql.dbname 就是把数据库dbname导出到文件mysql.dbname中。

导入数据:

mysqlimport -u root -p123456

将文本数据导入数据库:

文本数据的字段数据之间用tab键隔开。use test; load data local infile "文件名" into table 表名;

SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"

sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]"

sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"

sql="select * from 数据表where 字段名in ('值1','值2','值3')"

sql="select * from 数据表where 字段名between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表set 字段名=字段值where 条件表达式"

sql="update 数据表set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名from 数据表where 条件表达式" set rs=conn.excute(sql)

用rs("别名") 获取统的计值,其它函数运用同上。

(6) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ……)

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称(永久性删除一个数据表)

MySQL批处理命令

 

批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令。

 

为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有与我们在mysql中输入的命令相同的文本。比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法名字,并不一定要以後缀sql结尾):

 

USE Meet_A_Geek;

INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Block");

INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Newton");

INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Simmons");

注意上面的这些句子的语法都必须是正确的,并且每个句子以分号结束。上面的USE命令选择数据库,INSERT命令插入数据。

 

下面我们要把上面的文件导入到数据库中,导入之前要确认数据库已经在运行,即是mysqld进程(或者说服务,Windows NT下面称为”服务“,unix下面为”进程“)已经在运行。然後运行下面的命令:

 

bin/mysql –p

接着按提示输入密码,如果上面的文件中的语句没有错误,那么这些数据就被导入到了数据库中。

 

命令行中使用LOAD DATA INFILE 从文件中导入数据到数据库: 现在您可能会问自己,"究竟为什么我要输入所有的这些SQL语句到文件中,然後通过程序运行它们呢?” 这样看起来好像需要大量的工作。很好,你这样想很可能就对了。但是假如你有从所有这些命令中产生的log记录呢?现在这样就很棒,嗯,大多数数据库都会自动产生数据库中的事件记录的log。而大部分log都包含有用过的原始的SQL命令。因此,如果您不能从您现在的数据库中导出数据到新的mysql数据库中使用,那么您可以使用log和mysql的批处理特性,来快速且方便地导入您地数据。当然,这样就省去了打字的麻烦。

 

LOAD DATA INFILE 这是我们要介绍的最後一个导入数据到MySQL数据库中的方法。这个命令与mysqlimport非常相似,但这个方法可以在mysql命令行中使用。也就是说您可以在所有使用API的程序中使用这个命令。使用这种方法,您就可以在应用程序中导入您想要导入的数据。

 

使用这个命令之前,mysqld进程(服务)必须已经在运行。启动mysql命令行:

 

bin/mysql –p

按提示输入密码,成功进入mysql命令行之後,输入下面的命令:

 

USE Meet_A_Geek;

LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;

简单的讲,这样将会把文件data.sql中的内容导入到表Orders中,如mysqlimport工具一样,这个命令也有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中,您可以使用下面的命令:

 

LOAD DATA LOCAL INFILE "C:/MyDocs/SQL.txt" INTO TABLE Orders;

上面的LOCAL参数表示文件是本地的文件,服务器是您所登陆的服务器。这样就省去了使用ftp来上传文件到服务器,MySQL替你完成了. 您也可以设置插入语句的优先级,如果您要把它标记为低优先级(LOW_PRIORITY),那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:

 

LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;

您也可以指定是否在插入数据的时候,取代或者忽略文件与数据表中重复的键值。替代重复的键值的语法:

 

LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders;

上面的句子看起来有点笨拙,但却把关键字放在了让您的剖析器可以理解的地方。

 

下面的一对选项描述了文件的记录格式,这些选项也是在mysqlimport工具中可以用的。他们在这里看起来有点不同。首先,要用到FIELDS关键字,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:

 

TERMINATED BY character

ENCLOSED BY character

ESCAPED BY character

这些关键字与它们的参数跟mysqlimport中的用法是一样的. The TERMINATED BY 描述字段的分隔符,默认情况下是tab字符(/t)ENCLOSED BY描述的是字段的括起字符。比方以引号括起每一个字段。ESCAPED BY 描述的转义字符。默认的是反些杠(backslash:/ ). 下面仍然使用前面的mysqlimport命令的例子,用LOAD DATA INFILE语句把同样的文件导入到数据库中:

 

LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '"';

LOAD DATA INFILE语句中有一个mysqlimport工具中没有特点:

 

     LOAD DATA INFILE 可以按指定的列把文件导入到数据库中。

当我们要把数据的一部分内容导入的时候,这个特点就很重要。比方说,我们要从Access数据库升级到MySQL数据库的时候,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。这个时候,我们的Access数据库中的数据仍然是可用的,但是因为这些数据的栏目(field)与MySQL中的不再匹配,因此而无法再使用mysqlimport工具。尽管如此,我们仍然可以使用LOAD DATA INFILE,下面的例子显示了如何向指定的栏目(field)中导入数据:

 

LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);

如您所见,我们可以指定需要的栏目(fields)。这些指定的字段依然是以括号括起,由逗号分隔的,如果您遗漏了其中任何一个,MySQL将会提醒您^_^

 

 

ubuntu 下的mysql 命令行方式。把blue.sql 下载下来,运行

 

(sudo) mysql

create database XXXX;

use XXXX;

source blue.sql

 

例:初始登陆远程MYSQL数据库mysql -hIP -u用户名-p密码

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn