为了账号安全,请及时绑定邮箱和手机立即绑定

MYSQL常用命令大全(四)【值得收藏】

标签:
MySQL

12、备份和恢复

备份数据库staffer

c:\mysql\bin\mysqldump -uroot -proot staffer>e:\staffer.sql

得到的staffer.sql是一个sql脚本,不包括建库的语句,所以你需要手工

创建数据库才可以导入

恢复数据库staffer,需要创建一个空库staffer

c:\mysql\bin\mysql -uroot -proot staffer

如果不希望后来手工创建staffer,可以

c:\mysql\bin\mysqldump -uroot -proot --databases staffer>e:\staffer.sql

mysql -uroot -proot >e:\staffer.sql

但这样的话系统种就不能存在staffer库,且无法导入其他名字的数据库,

当然你可以手工修改staffer.sql文件

13、从文本向数据库导入数据

1)使用工具c:\mysql\bin\mysqlimport

这个工具的作用是将文件导入到和去掉文件扩展名名字相同的表里,如

staffer.txt,staffer都是导入到staffer表中

常用选项及功能如下

-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息

-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据

-i or --ignore mysqlimport跳过或者忽略那些有相同唯一

关键字的行, 导入文件中的数据将被忽略。

-l or -lock-tables 数据被插入之前锁住表,这样就防止了,

你在更新数据库时,用户的查询和更新受到影响。

-r or -replace 这个选项与-i选项的作用相反;此选项将替代

表中有相同唯一关键字的记录。

--fields-enclosed- by= char

指定文本文件中数据的记录时以什么括起的, 很多情况下

数据以双引号括起。 默认的情况下数据是没有被字符括起的。

--fields-terminated- by=char

指定各个数据的值之间的分隔符,在句号分隔的文件中,

分隔符是句号。您可以用此选项指定数据之间的分隔符。

默认的分隔符是跳格符(Tab)

--lines-terminated - by=str

此选项指定文本文件中行与行之间数据的分隔字符串

或者字符。 默认的情况下mysqlimport以newline为行分隔符。

您可以选择用一个字符串来替代一个单个的字符:

一个新行或者一个回车。

mysqlimport命令常用的选项还有-v 显示版本(version),

-p 提示输入密码(password)等。

这个工具有个问题,无法忽略某些列,这样对我们的数据导入有很大的麻烦,虽然

可以手工设置这个字段,但会出现莫名其妙的结果,我们做一个简单的示例

我们定义如下的depart_no.txt,保存在e盘,间隔为制表符\t

10 10

11 11

12 24

执行如下命令

c:\mysql\bin\mysqlimport -uroot -proot staffer e:\depart_pos.txt

在这里没有使用列的包围符号,分割采用默认的\t,因为采用别的符号会有问题,

不知道是不是windows的原因

2)Load Data INFILE file_name into table_name(column1_name,column2_name)

这个命令在mysql>提示符下使用,优点是可以指定列导入,示例如下

c:\mysql\bin\mysql -uroot -proot staffer

mysql>load data infile "e:/depart_no.txt" into depart_no(department_id,position_id);

这两个工具在Windows下使用都有问题,不知道是Windows的原因还是中文的问题,

而且不指定的列它产生了空值,这显然不是我们想要的,所以谨慎使用这些工具

进入MySQL:mysql -uuser -ppassword --port=3307

1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:2、创建一个数据库MYSQLDATA

mysql> Create DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5:创建一个数据库表

mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:显示表的结构:

mysql> DESCRIBE MYTABLE;

7:往表中加入记录

mysql> insert into MYTABLE values ("hyq","M");

8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中数据

mysql>update MYTABLE set sex="f" where name='hyq';

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name

SET col_name1=expr1 [, col_name2=expr2 ...]

[WHERE where_definition]

[ORDER BY ...]

[LIMIT rows]

or

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]

SET col_name1=expr1 [, col_name2=expr2 ...]

[WHERE where_definition]

UPDATE 以新的值更新现存表中行的列。SET 子句指出要修改哪个列和他们应该给定的值。WHERE

子句如果被给出,指定哪个记录行应该被更新。否则,所有的记录行被更新。如果 ORDER BY 子句被指定,记录行将被以指定的次序更新。

如果你指定关键词 LOW_PRIORITY,UPDATE 的执行将被延迟,直到没有其它的客户端正在读取表。

如果你指定关键词 IGNORE,该更新语句将不会异常中止,即使在更新过程中出现重复键错误。导致冲突的记录行将不会被更新。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消