MySQL系列-第1篇:MySQL的一些基础知识

第1篇:MySQL的一些基础知识

这是mysql系列第1篇。

本文主要内容

  1. 背景介绍
  2. 数据库基础知识介绍
  3. mysql的安装
  4. mysql常用的一些命令介绍
  5. SQL分类

背景介绍

我们每天都在访问各种网站、APP,如微信、QQ、抖音、今日头条、腾讯新闻等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪呢?数据库。

所以如果我们需要开发一个网站、app,数据库我们必须掌握的技术,常用的数据库有mysql、oracle、sqlserver、db2等。

上面介绍的几个数据库,oracle性能排名第一,服务也是相当到位的,但是收费也是非常高的,金融公司对数据库稳定性要求比较高,一般会选择oracle。

mysql是免费的,其他几个目前暂时收费的,mysql在互联网公司使用率也是排名第一,资料也非常完善,社区也非常活跃,所以我们主要学习mysql。


mysql系列我们主要介绍

  1. mysql的基本使用
  2. mysql性能优化
  3. 开发过程中mysql一些优秀的案例介绍


数据库常见的概念

DB:数据库,存储数据的容器。

DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB。

SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件持有的,而是几乎所有的主流数据库软件通用的语言。中国人之间交流需要说汉语,和美国人之间交流需要说英语,和数据库沟通需要说SQL语言。


数据库存储数据的一些特点

  • 数据存放在表中,然后表存放在数据库中
  • 一个库中可以有多张表,每张表具有唯一的名称(表名)来标识自己
  • 表中有一个或多个列,列又称为“字段”,相当于java中的“属性”
  • 表中每一行数据,相当于java中的“对象”


window中安装mysql

官网下载mysql5.7.25:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

win10安装mysql5.7详细步骤可以看:http://www.itsoku.com/article/192


mysql常用的一些命令

mysql启动2种方式

方式1:

cmd中运行services.msc

会打开服务窗口,在服务窗口中找到mysql服务,点击右键可以启动或者停止

方式2

以管理员身份运行cmd命令


停止命令:net stop mysql

启动命令:net start mysql

C:\Windows\system32>net stop mysql
mysql 服务正在停止.
mysql 服务已成功停止。


C:\Windows\system32>net start mysql
mysql 服务正在启动 .
mysql 服务已经启动成功。

注意:命令后面没有结束符号

mysql登录命令

mysql -h ip -P 端口 -u 用户名 -p

C:\Windows\system32>mysql -h localhost -P 3306 -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.25-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

说明:

  • -P 大写的P后面跟上端口
  • 如果是登录本金ip和端口可以省略,如:mysql -u 用户名 -p
  • 可以通过上面的命令连接原创机器的mysql

查看数据库版本

mysql --version 或者mysql -V用于在未登录情况下,查看本机mysql版本:

C:\Windows\system32>mysql -V
mysql  Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)

C:\Windows\system32>mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)

select version();:登录情况下,查看链接的库版本:

mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.25-log |
+------------+
1 row in set (0.00 sec)


显示所有数据库:show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| apolloconfigdb     |
| apolloportaldb     |
| config-server      |
| dblog              |
| diamond_devtest    |
| mysql              |
| nacos_config       |
| performance_schema |
| rs_elastic_job     |
| rs_master          |
| seata              |
| sys                |
+--------------------+
13 rows in set (0.00 sec)

进入指定的库:use 库名;

mysql> use seata;
Database changed

显示当前库中所有的表:show tables;

mysql> show tables;
+--------------------+
| Tables_in_dblog    |
+--------------------+
| biz_article        |
| biz_article_look   |
| biz_article_love   |
| biz_article_tags   |
| biz_comment        |
| biz_file           |
| biz_tags           |
| biz_type           |
| sys_config         |
| sys_link           |
| sys_log            |
| sys_notice         |
| sys_resources      |
| sys_role           |
| sys_role_resources |
| sys_template       |
| sys_update_recorde |
| sys_user           |
| sys_user_role      |
+--------------------+
19 rows in set (0.00 sec)

查看其他库中所有的表:show tables from 库名;

mysql> show tables from seata;
+-----------------+
| Tables_in_seata |
+-----------------+
| branch_table    |
| global_table    |
| lock_table      |
| t_account       |
| t_order         |
| t_storage       |
| undo_log        |
+-----------------+
7 rows in set (0.00 sec)

查看表的创建语句:show create table 表名;

mysql> show create table biz_tags;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| biz_tags | CREATE TABLE `biz_tags` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '书签名',
  `description` varchar(100) DEFAULT NULL COMMENT '描述',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT              |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

查看表结构:desc 表名;

mysql> desc biz_tags;
+-------------+---------------------+------+-----+-------------------+----------------+
| Field       | Type                | Null | Key | Default           | Extra          |
+-------------+---------------------+------+-----+-------------------+----------------+
| id          | bigint(20) unsigned | NO   | PRI | NULL              | auto_increment |
| name        | varchar(50)         | NO   |     | NULL              |                |
| description | varchar(100)        | YES  |     | NULL              |                |
| create_time | datetime            | YES  |     | CURRENT_TIMESTAMP |                |
| update_time | datetime            | YES  |     | CURRENT_TIMESTAMP |                |
+-------------+---------------------+------+-----+-------------------+----------------+
5 rows in set (0.00 sec)

查看当前所在库:select database();

C:\Windows\system32>mysql -h localhost -P 3306 -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.25-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select database();
+------------+
| database() |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)

mysql> use dblog;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| dblog      |
+------------+
1 row in set (0.00 sec)

查看当前mysql支持的存储引擎:SHOW ENGINES;

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

查看系统变量及其值:SHOW VARIABLES;

mysql> SHOW VARIABLES;
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name                                            | Value                                                                                                                                                                                                                                                                                                                                                                                                            |
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| auto_increment_increment                                 | 1                                                                                                                                                                                                                                                                                                                                                                                                                |
| auto_increment_offset                                    | 1                                                                                                                                                                                                                                                                                                                                                                                                                |
| autocommit                                               | ON                                                                                                                                                                                                                                                                                                                                                                                                               |
| automatic_sp_privileges                                  | ON                                                                                                                                                                                                                                                                                                                                                                                                               |
| avoid_temporal_upgrade                                   | OFF                                                                                                                                                                                                                                                                                                                                                                                                              |
| back_log                                                 | 90                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                             |
| warning_count                                            | 0                                                                                                                                                                                                                                                                                                                                                                                                                |
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
513 rows in set, 1 warning (0.00 sec)

查看某个系统变量:SHOW VARIABLES like '变量名';

mysql> SHOW VARIABLES like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set, 1 warning (0.00 sec)

mysql> SHOW VARIABLES like '%wait_timeou%t';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set, 1 warning (0.00 sec)

mysql语法规范

  1. 不区分大小写,但建议关键字大写,表名、列名小写
  2. 每条命令最好用英文分号结尾
  3. 每条命令根据需要,可以进行缩进或换行
  4. 注释单行注释:#注释文字单行注释:-- 注释文字 ,注意, 这里需要加空格多行注释:/* 注释文字 */


SQL的语言分类

  • DQL(Data Query Language):数据查询语言 select 相关语句
  • DML(Data Manipulate Language):数据操作语言 insert 、update、delete 语句
  • DDL(Data Define Languge):数据定义语言 create、drop、alter 语句
  • TCL(Transaction Control Language):事务控制语言 set autocommit=0、start transaction、savepoint、commit、rollback

MySQL系列(共27篇今天全部将发布出来)

MySQL系列-第7篇:select条件查询

MySQL系列-第6篇:select查下基础篇

MySQL系列-第5篇:DML常见操作

MySQL系列-第4篇:DDL常见操作汇总

MySQL系列-第3篇:MySQL管理员常用的一些命令

MySQL系列-第2篇:MySQL中数据类型介绍

MySQL系列-第1篇:MySQL的一些基础知识

了解更多
举报
评论 0