-
MySQL命令执行sql文件的两种方法
-
摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库、表以及数据等各种操作。下面笔者讲解MySQL执行sql文件命令的两种方法,希望能给刚开始学习 MySQL 数据库的朋友们。
-
学习过 SQLServer 或 Oracle 的朋友会知道,sql 脚本是包含一到多个 sql 命令的 sql 语句集合,我们可以将这些 sql 脚本放在一个文本文件中(我们称之为“sql 脚本文件”),然后通过相关的命令执行这个 sql 脚本文件。基本步骤如下:
1、创建 sql 脚本文件,例如下面一段 sql 语句,把它们拷贝到记事本,然后保存为 sql 后缀文件。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586c-- phpMyAdmin SQL Dump-- version 2.10.0.2---- 主机: localhost-- 生成日期: 2007 年 10 月 27 日 06:38-- 服务器版本: 5.0.37-- PHP 版本: 5.2.1SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO";---- 数据库: `votesystem`--CREATEDATABASE`votesystem`DEFAULTCHARACTERSETlatin1COLLATElatin1_general_ci;USE `votesystem`;-- ------------------------------------------------------------ 表的结构 `admin`--CREATETABLE`admin` (`username`char(20)NOTNULLdefault\'\',`passwd`char(20)NOTNULLdefault\'\',PRIMARYKEY(`username`)) ENGINE=MyISAMDEFAULTCHARSET=gb2312;---- 导出表中的数据 `admin`--INSERTINTO`admin`VALUES(\'admin\',\'admin\');-- ------------------------------------------------------------ 表的结构 `voteitem`--CREATETABLE`voteitem` (`voteitem_id`smallint(5) unsignedNOTNULLauto_increment,`vote_id`smallint(5) unsignedNOTNULLdefault\'0\',`vote_item`varchar(100)NOTNULLdefault\'\',`vote_count`smallint(5) unsignedNOTNULLdefault\'0\',PRIMARYKEY(`voteitem_id`)) ENGINE=MyISAMDEFAULTCHARSET=gb2312 AUTO_INCREMENT=34 ;---- 导出表中的数据 `voteitem`--INSERTINTO`voteitem`VALUES(25, 6,\'perl\', 10);INSERTINTO`voteitem`VALUES(24, 6,\'python\', 20);INSERTINTO`voteitem`VALUES(23, 6,\'c++\', 20);INSERTINTO`voteitem`VALUES(22, 6,\'c\', 15);INSERTINTO`voteitem`VALUES(21, 6,\'php\', 25);INSERTINTO`voteitem`VALUES(29, 6,\'shell\', 5);INSERTINTO`voteitem`VALUES(28, 6,\'asm\', 5);INSERTINTO`voteitem`VALUES(27, 6,\'java\', 3);INSERTINTO`voteitem`VALUES(26, 6,\'c#\', 4);INSERTINTO`voteitem`VALUES(33, 7,\'Mac OS\', 60);INSERTINTO`voteitem`VALUES(32, 7,\'OS/2\', 5);INSERTINTO`voteitem`VALUES(31, 7,\'Windows\', 50);INSERTINTO`voteitem`VALUES(30, 7,\'Linux\', 51);-- ------------------------------------------------------------ 表的结构 `votemain`--CREATETABLE`votemain` (`vote_id`smallint(5) unsignedNOTNULLauto_increment,`vote_name`varchar(100)NOTNULLdefault\'\',`vote_time` datetimeNOTNULLdefault\'0000-00-00 00:00:00\',PRIMARYKEY(`vote_id`)) ENGINE=MyISAMDEFAULTCHARSET=gb2312 AUTO_INCREMENT=8 ;---- 导出表中的数据 `votemain`--INSERTINTO`votemain`VALUES(7,\'你最喜欢的系统\',\'2007-10-26 14:10:13\');INSERTINTO`votemain`VALUES(6,\'你最喜欢的语言\',\'2007-10-26 14:09:15\');2、使用命令执行 sql 脚本文件
方法一,在 Windows 下使用 cmd 命令执行(或 Unix 或 Linux 控制台下)
【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】,示例:
C:\MySQL\bin\mysql –uroot –p123456 -Dtest<C:\test.sql
注意:
A、如果在 sql 脚本文件中使用了 use 数据库,则 -D数据库 选项可以忽略
B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:\Program Files\MySQL\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
C、如果 sql 没有创建数据库的语句,而且数据库管理中也没有该数据库,那么必须先用命令创建一个空的数据库。方法二,进入 MySQL 控制台(如:MySQL 5.5 Command Line Client),使用 source 命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】,示例:
source C:\test.sql 或者 \. C:\test.sql
打开 MySQL Command Line Client,输入数据库密码进行登录,然后使用 source 命令或者 \.或者