数据库-Mysql使用学习笔记(命令行及图形化界面)(1)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据库-Mysql使用学习笔记(命令行及图形化界面)(1)

注:本文是实践性文章,请导入文中提到的数据到数据库,跟着文章做,只是看没有太大意义。先根据需求,自己写SQL语句,再与我给出的进行对比。

环境及软件

  • Windows 10
  • Mysql 5.7.X
  • Navicat 12 for Mysql

安装目录

2020062310470442.png安装目录

  • bin 应用程序存放目录
  • docs 文档存放目录
  • data 数据存放目录
  • my.ini 配置文件配置文件配置文件
  • 2020062310470442.png

配置文件

教程

启动Mysql服务

图形化

任务管理器

打开任务管理器->服务->找到MySQL57,右键启动即可

2020062310470442.png

任务管理器启动

计算机服务

我的电脑/此电脑/计算机,右键,管理->服务和应用程序->服务,找到MySQL57

2020062310470442.png

                                                    MySQL57

同样是右键启动,双击进入属性(任务管理器方式也可右键,打开服务跳转到上图),选择启动类型(如果你最近一直使用Mysql,可以开机自启,即选择自动)。

2020062310470442.png

启动类型

命令行

使用管理员身份打开CMD窗口->输入命令

net start MySql57

注意服务名字和你的一致

2020062310470442.png

由于博主的已经启动了,所以显示上图,记下来,关一下再打开,使用命令

net stop MySql57

2020062310470442.png

关闭再打开

连接和断开服务器

图形化

打开Navicat->连接 MySql->输入端口,用户名,密码等->连接测试,弹出成功窗口->点击确定即可

2020062310470442.png

连接成功

双击左侧的连接即可进入,右键 关闭连接即可关闭。

命令行

打开CMD,使用命令

mysql -uroot -proot
exit

进行连接和断开,-u之后加的是用户名,-p之后加的是密码,也可在-p后什么也不写,之后再写密码,会用"*"代替,防止别人看见。

2020062310470442.png

连接,断开MySql

输入命令

mysql --help

可查看更多命令选项

2020062310470442.png

命令选项

在使用图形化的时候有个 主机名 端口 需要填,命令行是省略了,可使用-h、-P选项,如果你想要连接远程的Mysql的话。

2020062310470442.png

连接本地Mysql

注:由于-u -h选项可以加空格后再加内容,但-p后不能加空格,所以博主干脆都不加了。

SQL语句

介绍

SQL语言不是Mysql独有的,sqlserver、Oracle也是使用SQL语言,但有一些区别,Mysql中特有的有LIMIT、show databases等。以分号结尾,不区分大小写!!!

分类

  • DDL(Data Definition Language,数据定义语言) - Create、Alter、Drop 这些语句自动提交,无需用Commit提交。
  • DQL(Data Query Language,数据查询语言) - Select 查询语句不存在提交问题。
  • DML(Data Manipulation Language,数据操纵语言) - Insert、Update、Delete 这些语句需要Commit才能提交。
  • DTL(事务控制语言) - Commit、Rollback 事务提交与回滚语句。
  • DCL(Data Control Language,数据控制语言) - Grant、Revoke 授予权限与回收权限语句。也有称TCL。

自带表介绍

  • information_schema
  • performance_schema
  • mysql
  • test

在Mysql注入点知识讲了表Information_schema,有一些用户、表、列的数据,在注入后可以获得。

注释

注释分为行注释、行中间注释和多行注释

# 这个注释直到该行结束

-- 这个注释直到该行结束

/* 这是一个在行中间的注释 */

/*

这是一个

多行注释的形式

*/

数据库的添加与删除

2020062310470442.png

mysql命令

  • show:展示数据库、表等,例如,show databases; show tables;
  • use:使用哪个数据库等,例如,use test;
  • source: 导入数据,执行sql脚本文件

命令行

create database lady_killer9;

2020062310470442.png

创建数据库并导入数据

show create database lady_killer9;

2020062310470442.png

查看创建数据库的语句

可以看到使用字符集utf8

lady_killer9.sql脚本可从本文后面的资源一节下载。

缺点:sql脚本路径不能含中文

删除数据库

mysql> drop database lady_killer9;

Query OK, 3 rows affected (0.11 sec)

图形化

新建查询->输入sql语句->运行即可

2020062310470442.png

创建数据库

重连一下即可看见创建的数据库

也可这样创建数据库

2020062310470442.png

MySQL连接右键

2020062310470442.png

字符集选择utf8

选择数据库->运行SQL文件

2020062310470442.png

路径可以含中文

2020062310470442.png

2020062310470442.png

运行成功

2020062310470442.png

刷新即可看见表

接下来就看看表的创建,Navicat 中运行SQL语句不再赘述,之后的图形化只会展示非SQL语句运行方式

表的添加与删除

  • DEPT             部门表
  • EMP              员工表
  • SALGRADE  工资等级表

以EMP表为例,sql语句如下:

1.CREATE TABLE EMP
       (EMPNO int(4)  not null ,
  ENAME VARCHAR(10),
  JOB VARCHAR(9),
  MGR INT(4),
  HIREDATE DATE  DEFAULT NULL,
  SAL DOUBLE(7,2),
  COMM DOUBLE(7,2),
  primary key (EMPNO),
  DEPTNO INT(2) 
  );

命令行:

mysql> use lady_killer9;
Database changed
mysql> show tables;
+------------------------+
| Tables_in_lady_killer9 |
+------------------------+
| dept                   |
| emp                    |
| salgrade               |
+------------------------+
3 rows in set (0.00 sec)
mysql> drop table emp;
mysql> CREATE TABLE EMP(
    -> EMPNO int(4) not null,
    -> ENAME VARCHAR(10),
    -> JOB VARCHAR(9),
    -> MGR INT(4),
    -> HIREDATE DATE DEFAULT NULL,
    -> SAL DOUBLE(7,2),
    -> COMM DOUBLE(7,2),
    -> primary key (EMPNO),
    -> DEPTNO INT(2)
    -> );
Query OK, 0 rows affected (0.04 sec)
————————————————
版权声明:本文为CSDN博主「lady_killer9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lady_killer9/article/details/112212620

2020062310470442.png

desc 查看表结构

图形化

2020062310470442.png

删除表

删除表左侧按钮,新建表

2020062310470442.png

创建表EMP

点击添加字段来新建一行,

输入名,选择类型,输入长度,为浮点数的话输入小数点位数,点击不是null选框插入该字段时不能为空,键代表主键,注释可不写也可写名的中文含义等

下方为默认值,可不填,也可根据需要,对应DEFAULT

2020062310470442.png

点击保存,输入表名,点击确定即可

2020062310470442.png

右键设计表,查看表结构

表的字段含义

emp表

EMPNAME   员工名

JOB              工作岗位

MGR             上级领导

HIREDATE    入职日期

SAL               薪资

COMM          津贴

DEPTNO      部门编号


dept表

  • DEPTNO  部门编号
  • DNAME    部门名称
  • LOC          部门位置

salgrade表

  • GRADE     薪资等级
  • LOSAL      最低工资
  • HISAL       最高工资

查询语法

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
      [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]
————————————————
版权声明:本文为CSDN博主「lady_killer9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lady_killer9/article/details/112212620

基础查询

SELECT〈目标列组〉

    FROM〈数据源〉

    简单来说,就是从哪些表查什么条件的数据,查多少条,查到后怎么分组,怎么排序,是否将数据保存到文件

    最简单的,从某表查询所有数据

    select * from emp;
      2020062310470442.png

    某表查询所有数据

    添加目标列,例如,查员工名,及年薪。

    select ENAME,SAL * 12 from EMP;

    2020062310470442.png

    由于一般情况下,项目的瓶颈是数据库,所以会查出数据后使用项目的编程语言来进行处理,不会直接乘12这种。

    重命名,使用关键字AS,也可省略。

    select ENAME as 员工名,SAL * 12 as 年薪 from EMP;

    2020062310470442.png

    建议: 出现'员工名'、‘年薪’这种,可使用单引号,虽然也可以使用双引号,但是sqlserver、Oracle都是使用的单引号,所以统一一下,学习其他数据库的时候就简单点。

    读者自行尝试:

    select ENAME '员工名',SAL * 12 '年薪' from EMP;


      2020062310470442.png
    相关实践学习
    如何快速连接云数据库RDS MySQL
    本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    相关文章
    |
    5天前
    |
    存储 Oracle 关系型数据库
    数据库传奇:MySQL创世之父的两千金My、Maria
    《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
    23 3
    |
    5天前
    |
    安全 关系型数据库 MySQL
    MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
    《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
    28 3
    |
    5天前
    |
    SQL 关系型数据库 MySQL
    数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
    《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
    33 2
    |
    19天前
    |
    关系型数据库 MySQL 数据库
    Python处理数据库:MySQL与SQLite详解 | python小知识
    本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
    135 15
    |
    12天前
    |
    SQL 关系型数据库 MySQL
    数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
    |
    19天前
    |
    关系型数据库 MySQL 数据库
    数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
    mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
    |
    23天前
    |
    SQL 关系型数据库 MySQL
    MySQL导入.sql文件后数据库乱码问题
    本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
    |
    1月前
    |
    关系型数据库 MySQL 数据库
    GBase 数据库如何像MYSQL一样存放多行数据
    GBase 数据库如何像MYSQL一样存放多行数据
    |
    1月前
    |
    SQL 关系型数据库 MySQL
    12 PHP配置数据库MySQL
    路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
    43 1
    |
    1月前
    |
    运维 关系型数据库 MySQL
    安装MySQL8数据库
    本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
    188 0