MySql数据库学习笔记(二)—MySQL使用

1、基本命令

1、 连接数据库  mysql –u用户名 –p密码 –h主机IP

2、 创建数据库  mysql> create database 数据库名

3、 创建表    mysql> create table 表名(列名 类型 primary key(定义主键) auto_increment )

4、 查看所有数据库  mysql> show databases;

5、 选择数据库  mysql> use 数据库名;

6、 查看数据库所有的表  mysql> show tables;

7、 查看表结构  mysql> desc 表名;

8、 删库和删表  mysql> drop database 数据库名;

          mysql> drop table 表名;

9、 执行sql文件  mysql> source D:/文件名.sql;

2、高级命令

1.1.1       mysql

mysql是一个简单的SQL外壳。

命令模式:

shell> mysql db_name

或:

shell> mysql --user=user_name --password=your_password db_name

或:

shell> mysql -uuser_name -pyour_password db_name
或:
shell> mysql < filename
或:
shell> mysql dbname < filename(可用于数据库恢复)

 

1.1.2       mysqladmin

mysqladmin是一个执行管理操作的客户程序。可以用它来检查服务器的配置和当前的状态,创建并删除数据库等等。

mysqladmin [options] command [command-options] [command [command-options]] ...

支持命令


命令


说明


create db_name


创建一个名为db_name的新数据库


drop db_name


删除名为db_nam的数据库和所有表


extended-status


显示服务器状态变量及其值


flush-hosts


刷新主机缓存中的所有信息


flush-privileges


重载授权表(类似reload)


flush-tables


刷新所有表


old-password new-password


修改密码,

如:mysqladmin   –uroot –poldpwd password newpwd


ping


检查服务器是否仍活动。如果服务器在运行mysqladmin返回状态0,如果不运行返回1。

如:mysqladmin   –uroot –ppwd ping


shutdown


停止服务器


version


显示服务器的版本信息

1.1.3       mysqldump

用于导出数据,或备份数据库。

命令模式:


有3种方式来调用mysqldump

shell>   mysqldump [options] db_name [tables]

shell>   mysqldump [options] ---database DB1 [DB2 DB3...]

shell>   mysqldump [options] --all--database

备份数据库:

shell> mysqldump –uname –ppwd dbname > db.sql

备份数据库并压缩

shell> mysqldump –uname –ppwd dbname | gzip > db.sql.gz

恢复数据库:

shell> mysql –uname –ppwd dbname < db.sql

直接从压缩文件恢复:

shell> gzip –d < db.sql.gz | mysql –uname –ppwd dbname

选项说明


参数


说明


--opt


此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。


-q

or

-quick


这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。


--add-drop-table


这个选项将会在每一个表的前面加上DROP TABLE IF   EXISTS语句,不添加该选项也是有的。


--add-locks


这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作


--all-database


转储所有数据库中的所有表


--create-option


在CREATE TABLE语句中包括所有MySQL表选项


-c

or

-complete_insert


这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出到另外一个数据库时这个选项很有用。


-F

or

-flush-logs


使用这个选项,在执行导出之前将会刷新MySQL服务器的log


-f

or

-force


使用这个选项,即使有错误发生,仍然继续导出


-l

or

-lock-tables


使用这个选项,导出表的时候服务器将会给表加锁


-t

or

-no-create-info


这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。


-d

or

-no-data


这个选项使mysqldump命令不创建INSERT语句。在您只需要DDL语句时,可以使用这个选项。


--skip-comments


可以去掉导出文件中的注释语句


--compact


选项可以只输出最重要的语句,而不输出注释及删除表语句等等

1.1.4       mysqlimport

mysqlimport客户端提供了LOAD DATA INFILEQL语句的一个命令行接口。mysqlimport的大多数选项直接对应LOAD DATA INFILE子句。

命令模式:mysqlimport [options] db_name textfile1 [textfile2 ...]

命令选项:


参数


说明


--help


显示帮助消息并退出


--columns=column_list,   -c column_list


该选项采用用逗号分隔的列名作为其值。列名的顺序指示如何匹配数据文件列和表列


--compress


压缩在客户端和服务器之间发送的所有信息


--delete


导入文本文件前清空表


--force


忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件。不使用--force,如果表不存在则mysqlimport退出。


-h host_name


将数据导入给定主机上的MySQL服务器。默认主机是localhost


--ignore-lines=n


忽视数据文件的前n行


--local


从本地客户端读入输入文件


--lock-tables


处理文本文件前锁定所有表以便写入。这样可以确保所有表在服务器上保持同步。


-p[password]


当连接服务器时使用的密码。


-u user_name


当连接服务器时MySQL使用的用户名


FIELDS TERMINATED   BY ‘string‘


1、FIELDS   子句必须出现在LINES 子句之前

2、字段值之间以什么字符分割,如:abc   de


FIELDS [OPTIONALLY] ENCLOSED BY ‘char‘


每个字段值两边以什么包围,如:”abc”


FIELDS ESCAPED   BY ‘char‘


以什么字符作为转义字符


LINES STARTING   BY ‘string‘


每行以什么开头


LINES TERMINATED   BY ‘string‘


每行以什么结尾,或各行之间以什么分割


--version


显示版本信息并退出

1.1.1       load data infile

命令模式:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ‘file_name.txt‘
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY ‘string‘]
        [[OPTIONALLY] ENCLOSED BY ‘char‘]
        [ESCAPED BY ‘char‘ ]
    ]
    [LINES
        [STARTING BY ‘string‘]
        [TERMINATED BY ‘string‘]
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...)]

 

命令参数


参数


说明


LOW_PRIORITY |   CONCURRENT


1、如果用户指定关键词LOW_PRIORITY,LOAD   DATA 语句的执行将会被延迟,直到没有其它的客户端正在读取表

2、如指定了CONCURRENT,则当LOAD   DATA 正在执行时,其它线程会从表中重新获取数据。即使没有其它线程在同时使用本表格,使用本选项也会略微影响LOAD   DATA 的性能。


LOCAL


1、如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被给予一个完整的路径名称,以指定确切的位置。如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录。

2、如果LOCAL没有被指定,则文件必须位于服务器主机上,并且被服务器直接读取。


INFILE [path]


指定源文件路径。指定Windows   路径名时,使用的是斜线而不是反斜线。如果要用反斜线,必须双写。


REPLACE |   IGNORE


1、如果指定了REPLACE,输入行将会代替已存在的行

2、如果指定了IGNORE,与已存在行主键值重复的输入行将被跳过。

3、如果不指定二者中的任一个,则操作行为将依赖是否指定了LOCAL   关键字。没有指定LOCAL,则如果发现有重复的键值,将产生一个错误,并忽略文本文件的其余部分。如果指定了LOCAL,则缺省的操作行为将与指定了IGNORE   的相同;这是因为,在操作过程中,服务器没有办法终止文件的传送。


FIELDS TERMINATED   BY ‘string‘


1、FIELDS   子句必须出现在LINES 子句之前

2、字段值之间以什么字符分割,如:abc   de


FIELDS [OPTIONALLY]   ENCLOSED BY ‘char‘


每个字段值两边以什么包围,如:”abc”


FIELDS ESCAPED   BY ‘char‘


以什么字符作为转义字符


LINES STARTING   BY ‘string‘


每行以什么开头


LINES TERMINATED   BY ‘string‘


每行以什么结尾,或各行之间以什么分割


IGNORE number   LINES


用户忽略前number行


(col_name_or_user_var,...)


指定导入表中的字段名


SET col_name =   expr,...)

用于给指导导入表中的字段赋值,该值不在文件中或需要经过计算,如下:
LOAD DATA INFILE ‘file.txt‘
  INTO TABLE t1
  (column1, column2)
  SET column3 = CURRENT_TIMESTAMP;

 

LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。如果指定LOCAL关键词,从客户主机读文件。如果LOCAL没指定,文件必须位于服务器上。如果你使用LOCAL关键词从一个本地文件装载数据,服务器没有办法在操作的当中停止文件的传输,因此缺省的行为好像IGNORE被指定一样。

为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用LOAD DATA INFILE,在服务器主机上你必须有file的权限。

REPLACE和IGNORE关键词控制对现有的唯一键记录的重复的处理。如果你指定REPLACE,新行将代替有相同的唯一键值的现有行。如果你指定IGNORE,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键键时,出现一个错误,并且文本文件的余下部分被忽略时。

例子:

LOAD DATA INFILE ‘data.txt‘ INTO TABLE db2.my_table;

时间: 2024-10-10 01:15:21

MySql数据库学习笔记(二)—MySQL使用的相关文章

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引

注:本文转自:http://www.cnblogs.com/smyhvae/p/4042303.html 本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两

MySQL数据库学习笔记&lt;一&gt;

MySQL基本概念以及简单操作 一.MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件. MySQL是将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语

MySQL数据库学习笔记(三)----基本的SQL语句

主要内容: 一.cmd命令行的常用命令 二.数据定义语言(DDL) 三.数据操纵语言(DML) 四.数据查询语言(DRL) 五.事务控制语言(TCL) 一.cmd命令行的常用命令: 当我们使用MySQL 5.5 Command Line Client这个客户端登陆时,只能登陆root用户.如果今后创建了别的用户,就很麻烦了,所以我们不用MySQL 5.5 Command Line Client这个客户端,而是直接使用cmd. 登录MySQL数据库: 因为在这之前安装MySQL的时候,已经将环境变

MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4030506.html 联系方式:[email protected] [正文] 一.navicat的引入:(第三方可视化的客户端,方便MySQL数据库的管理和维护) NavicatTM是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开

mysql数据库学习(二)--表操作

一.表操作 以下内容都是自己学习的时候看过的一些知识,作为笔记记录一下吧,大部分都是所看文章的内容. 1.创建表 前面的基础篇笔记是相当于搭建了一个方便管理的文件夹树根,下面要学习的是一些关于表的知识,相当于树上的叶子吧! create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8: 下面这两个变量是: ENGINE :存储引擎 charset:字符集 是否可空,null表示空,非字符串 not

MySQL数据库学习笔记(八)----JDBC入门及简单增删改查数据库的操作

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4050825.html 联系方式:[email protected] [正文]