您现在的位置是: 网站首页> MySQL MySQL

MySQL的基本操作与使用(1)

Smile 2021-02-03 MySQL 阅读:1077

简介MySQL 是最流行的关系型数据库管理系统,在web应用开发中大量使用,与PHP和Apache堪称web开发中的黄金搭档,并且开源免费,备受开发者的喜爱,本文讲解MySQL一些基本操作和使用,让你快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。

1、连接MySQL

F:\phpEnv\server\mysql\mysql-5.7\bin>mysql -uroot -p
Enter password: ****

2、创建数据库

CREATE DATABASE  IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE  IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

(1)使用mysqladmin创建数据库

F:\phpEnv\server\mysql\mysql-5.7\bin>mysqladmin -uroot -p create test
Enter password: ****

(2)先连接MySQL,然后使用create创建数据库

mysql> create database test2;
Query OK, 1 row affected (0.00 sec)

3、查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| blog               |
| mysql              |
| myvideo            |
| performance_schema |
| sys                |
| test               |
| test2              |
+--------------------+
8 rows in set (0.00 sec)

4、删除数据库

(1)使用mysqladmin删除数据库

F:\phpEnv\server\mysql\mysql-5.7\bin>mysqladmin -uroot -p drop test
Enter password: ****
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'test' database [y/N] y
Database "test" dropped

(2)先连接MySQL,然后使用drop删除数据库

mysql> drop database test2;
Query OK, 0 rows affected (0.00 sec)

5、选择数据库

mysql> use mysql;
Database changed

6、创建数据表,先来个示例:

CREATE TABLE IF NOT EXISTS `article`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `title` VARCHAR(100) NOT NULL,
   `author` VARCHAR(40) NOT NULL,
   `content` TEXT NOT NULL,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

在客户端黑窗口输入时:

mysql> CREATE TABLE IF NOT EXISTS `article`(
    ->    `id` INT UNSIGNED AUTO_INCREMENT,
    ->    `title` VARCHAR(100) NOT NULL,
    ->    `author` VARCHAR(40) NOT NULL,
    ->    `content` TEXT NOT NULL,
    ->    PRIMARY KEY ( `id` )
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.60 sec)

注:

(1)上面创建数据表只列举了几个数据类型,更多数据类型自行百度

(2)MySQL 字段应该尽量设置为 NOT NULL,默认值应该用 0、一个特殊的值或者一个空串代替空值。因为NULL影响查询性能

#查看表结构

DESC  article \G;

7、删除数据表

mysql> drop table article;
Query OK, 0 rows affected (0.44 sec)

8、清空表数据

DELETE FROM 数据表名;
TRUNCATE TABLE 数据表名;(会重置自增)

9、导出数据

(1)使用 SELECT ... INTO OUTFILE 语句导出数据,示例:

SELECT * INTO OUTFILE 'C:\\Users\\Administrator\\Desktop\\article.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM article;

在客户端黑窗口输入时:

mysql> SELECT * INTO OUTFILE 'C:\\Users\\Administrator\\Desktop\\article.txt'
    -> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n'
    -> FROM article;
Query OK, 1 row affected (0.00 sec)

注:修改MYSQL配置文件my.cnf 或 my.ini,加入以下语句后重启mysql

secure_file_priv=''
  • secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出
  • secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行
  • secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出

(2)使用 mysqldump导出数据,示例:

mysqldump -u root -p test article > C:\\Users\\Administrator\\Desktop\\article.sql

输出:

F:\phpEnv\server\mysql\mysql-5.7\bin>mysqldump -u root -p test article > C:\\Use
rs\\Administrator\\Desktop\\article.txt
Enter password: ****

(3)导出所有数据库,示例:

mysqldump -u root -p --all-databases > C:\\Users\\Administrator\\Desktop\\all_database.txt

10、导入数据

(1)使用source 命令导入数据库文件

先连接MySQL

F:\phpEnv\server\mysql\mysql-5.7\bin>mysql -uroot -p
Enter password: ****

然后选择数据库

mysql> use test;
Database changed

最后导入数据库

source C:\\Users\\Administrator\\Desktop\\article.sql

(2)使用 LOAD DATA 导入数据,示例:

LOAD DATA LOCAL INFILE 'C:\\Users\\Administrator\\Desktop\\article.txt' INTO TABLE article
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

输出:

mysql> LOAD DATA LOCAL INFILE 'C:\\Users\\Administrator\\Desktop\\article.txt' I
NTO TABLE article
    -> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';
Query OK, 4 rows affected (0.13 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

当你的数据文件的每列数据与表的列不对应时,也可以指定数据表的列

LOAD DATA LOCAL INFILE 'C:\\Users\\Administrator\\Desktop\\article.txt' INTO TABLE article
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
(id, title, author, content, cid, status);
  • TERMINATED:表示字段间的分隔符
  • OPTIONALLY ENCLOSED BY:表示字段值由什么符号包围
  • ESCAPED BY:表示指定转义字符
  • LINES TERMINATED BY:表示每一行的起始符与终止符,默认情况下,起始符为空,终止符为'\n',对于windows产生的文本文件来说,需要指定换行符为'\r\n'

注:当数据量非常大时,建议使用SELECT ... INTO OUTFILE 和LOAD DATA 语句导出导入数据库,这种方式非常的快

很赞哦! (1)

文章评论

    2021-02-03ykl:

    看不懂

站点信息