MySQL系列-第1篇:MySQL的一些基础知识
第1篇:MySQL的一些基础知识
这是mysql系列第1篇。
本文主要内容
- 背景介绍
- 数据库基础知识介绍
- mysql的安装
- mysql常用的一些命令介绍
- SQL分类
背景介绍
我们每天都在访问各种网站、APP,如微信、QQ、抖音、今日头条、腾讯新闻等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪呢?数据库。
所以如果我们需要开发一个网站、app,数据库我们必须掌握的技术,常用的数据库有mysql、oracle、sqlserver、db2等。
上面介绍的几个数据库,oracle性能排名第一,服务也是相当到位的,但是收费也是非常高的,金融公司对数据库稳定性要求比较高,一般会选择oracle。
mysql是免费的,其他几个目前暂时收费的,mysql在互联网公司使用率也是排名第一,资料也非常完善,社区也非常活跃,所以我们主要学习mysql。
mysql系列我们主要介绍
- mysql的基本使用
- mysql性能优化
- 开发过程中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语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用英文分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释单行注释:#注释文字单行注释:-- 注释文字 ,注意, 这里需要加空格多行注释:/* 注释文字 */
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
请先 后发表评论~