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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 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
    相关实践学习
    如何在云端创建MySQL数据库
    开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    相关文章
    |
    1月前
    |
    SQL 关系型数据库 MySQL
    SQL命令行退出操作指南:轻松掌握不同数据库环境下的退出技巧
    在数据库管理与开发过程中,经常需要通过SQL命令行工具(如MySQL的mysql客户端、PostgreSQL的psql、SQL Server的sqlcmd等)与数据库进行交互
    235 59
    |
    1月前
    |
    存储 SQL 关系型数据库
    Mysql学习笔记(二):数据库命令行代码总结
    这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
    124 6
    |
    1月前
    |
    SQL 关系型数据库 MySQL
    Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
    MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
    51 3
    Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
    |
    1月前
    |
    SQL Ubuntu 关系型数据库
    Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
    本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
    69 3
    Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
    |
    1月前
    |
    关系型数据库 MySQL 数据库
    Mysql学习笔记(四):Python与Mysql交互--实现增删改查
    如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
    61 1
    |
    SQL Java 数据库连接
    MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
    MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
    188 0
    MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
    |
    SQL 关系型数据库 MySQL
    MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
    MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
    140 0
    MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
    |
    存储 SQL 关系型数据库
    MySQL---数据库从入门走向大神系列(五)-存储过程
    MySQL---数据库从入门走向大神系列(五)-存储过程
    138 0
    MySQL---数据库从入门走向大神系列(五)-存储过程
    |
    数据库
    MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系(3)
    MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系
    200 0
    MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系(3)
    |
    SQL 关系型数据库 MySQL
    MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查
    MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查
    210 0
    MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查