MySQL 数据库简单操作

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:     对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作。本文从描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一些简单的DML操作。

    对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作。本文从描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一些简单的DML操作。

 

1、连接到与退出mysql

为了连接mysql数据库服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个密码。如果服务器
运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机
、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:
shell> mysql -h host -u user -p
mysql> select version(),current_date;
+---------------------------------------+--------------+
| version()                             | current_date |
+---------------------------------------+--------------+
| 5.6.17-enterprise-commercial-advanced | 2014-04-28   |
+---------------------------------------+--------------+
1 row in set (0.03 sec)

--在允许匿名登录到本地服务器的情下可以直接在shell提示符下直接输入mysql即可实现登录
mysql> #提示符告诉你mysql准备为你输入命令。

shell> mysql
--输入分号表示结束命令输入并执行该命令
--成功地连接后,可以在mysql>提示下输入QUIT (或\q ,exit)随时退出
mysql> QUIT
Bye
--在Unix中,也可以按control-D键断开服务器。


2、发布命令

mysql执行命令可分为非交互与交互模式
a) 非交互模式
非交互模式,也叫批模式,也就是将想要运行的命令放在一个文件中,然后告诉mysql从文件读取它的输入。
通常用于返回数据量较大,以及批量管理,执行特殊脚本运行的情形。
shell> mysql <query.sql

[root@linux1 ~]# more query.sql 
show databases;
use cnfo
select * from tb_tmp; 
[root@linux1 ~]# mysql -u root -pmysql <query.sql
Warning: Using a password on the command line interface can be insecure.
Database
information_schema
cnfo
mysql
performance_schema
test
name    sex     birth
Jack    F       2014-04-28
John    M       2013-04-28

--也可以使用下面的2种方式来执行批
mysql > source /<dir>/filename 
mysql > \./<dir>/finename       

--如下面的演示
[root@linux1 ~]# mysql -u root -pmysql
mysql> source query.sql
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cnfo               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
+------+------+------------+
| name | sex  | birth      |
+------+------+------------+
| Jack | F    | 2014-04-28 |
| John | M    | 2013-04-28 |
+------+------+------------+
2 rows in set (0.00 sec)

也可以在shell模式下直接执行SQL,如下面的方法:
-e or --execution=option  
shell>mysql -e "SQL cmd1;SQL cmd2;.."
shell>mysql --execute="SQL cmd1;SQL cmd2;.."

b) 交互模式
交互模式就是直接在mysql提示符下发布命令并执行命令。
如下操作,不区分大小写,输入回车后会得到命令执行的结果,即为交互模式。
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

--简单计算
mysql> select power(2,3),(5-1)*4;
+------------+---------+
| power(2,3) | (5-1)*4 |
+------------+---------+
|          8 |      16 |
+------------+---------+
1 row in set (0.00 sec)

--分号分割多行
mysql> select version();select current_date;
+---------------------------------------+
| version()                             |
+---------------------------------------+
| 5.6.17-enterprise-commercial-advanced |
+---------------------------------------+
1 row in set (0.01 sec)

+--------------+
| current_date |
+--------------+
| 2014-04-28   |
+--------------+
1 row in set (0.00 sec)

--换行输入命令
--注,可以输入空行
mysql> select user(),
    -> current_date;
+----------------+--------------+
| user()         | current_date |
+----------------+--------------+
| root@localhost | 2014-04-28   |
+----------------+--------------+
1 row in set (0.00 sec)

--取消执行当前命令
mysql> select current_date()\c


3、获取mysql帮助信息
直接在提示符下输入mysql --help会得到mysql命令所有参数的相关帮助信息,可以配合管道符more使用
shell> mysql --help

 

4、mysql常用提示符的含义
提示符    含义
mysql>    准备好接受新命令。
->        等待多行命令的下一行。
'>        等待下一行,等待以单引号(“'”)开始的字符串的结束。
">        等待下一行,等待以双引号(“"”)开始的字符串的结束。
`>        等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
/*>       等待下一行,等待以/*开始的注释的结束。

 

5、日常操作

--创建数据库
mysql> create database cnfo;
Query OK, 1 row affected (0.00 sec)

--切换数据库
mysql> use cnfo
Database changed

--查看当前数据库
mysql> select database();
+------------+
| database() |
+------------+
| cnfo       |
+------------+
1 row in set (0.00 sec)

--启动mysql时连接到指定数据库
[root@linux1 ~]# mysql -u root -p cnfo
Enter password: 

mysql> select database();
+------------+
| database() |
+------------+
| cnfo       |
+------------+
1 row in set (0.01 sec)

--在当前库创建表
mysql> create table tb_tmp(name varchar(20),
    -> sex char(1),birth date);
Query OK, 0 rows affected (0.09 sec)

--显示当前库所有的表
mysql> show tables;
+----------------+
| Tables_in_cnfo |
+----------------+
| tb_tmp         |
+----------------+
1 row in set (0.00 sec)

--查看表的定义信息
mysql> desc tb_tmp
    -> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
| birth | date        | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

-- Author : Leshami
-- Blog   : http://blog.csdn.net/leshami
--为表插入记录
mysql> insert into tb_tmp values('Jcack','F','20140428');
Query OK, 1 row affected (0.08 sec)

mysql> insert into tb_tmp values('John','M','20130428');
Query OK, 1 row affected (0.02 sec)

--查看表上的记录
mysql> select * from tb_tmp;
+-------+------+------------+
| name  | sex  | birth      |
+-------+------+------------+
| Jcack | F    | 2014-04-28 |
| John  | M    | 2013-04-28 |
+-------+------+------------+
2 rows in set (0.00 sec)

--更新表上的记录
mysql> update tb_tmp set name='Jack' where name='Jcack';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

--过滤查询
mysql> select * from tb_tmp where sex='F';
+------+------+------------+
| name | sex  | birth      |
+------+------+------------+
| Jack | F    | 2014-04-28 |
+------+------+------------+
1 row in set (0.00 sec)
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
16天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
12天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
12天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
30 0
|
2天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
2天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
2天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
15 1
|
4天前
|
关系型数据库 MySQL 数据库
数据库基础(mysql)
数据库基础(mysql)
|
4天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
5天前
|
存储 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02
【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
10 3