本文主要内容
1.背景介绍
2.数据库基础知识介绍
3.mysql的安装
4.mysql常用的一些命令介绍
5.SQL分类
背景介绍
我们每天都在访问各种网站、APP,如微信、QQ、抖音、今日头条、腾讯新闻等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪呢?数据库。
所以如果我们需要开发一个网站、app,数据库我们必须掌握的技术,常用的数据库有mysql、oracle、sqlserver、db2等。
上面介绍的几个数据库,oracle性能排名第一,服务也是相当到位的,但是收费也是非常高的,金融公司对数据库稳定性要求比较高,一般会选择oracle。
mysql是免费的,其他几个目前暂时收费的,mysql在互联网公司使用率也是排名第一,资料也非常完善,社区也非常活跃,所以我们主要学习mysql。
mysql系列我们主要介绍
- mysql的基本使用
- mysql性能优化
- 开发过程中mysql一些优秀的案例介绍
数据库常见的概念
DB:数据库,存储数据的容器。
DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB。
SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件持有的,而是几乎所有的主流数据库软件通用的语言。中国人之间交流需要说汉语,和美国人之间交流需要说英语,和数据库沟通需要说SQL语言。
数据库存储数据的一些特点
数据存放在表中,然后表存放在数据库中。一个库中可以有多张表,每张表具有唯一的名称(表名)来标识自己。表中有一个或多个列,列又称为“字段”,相当于java中的“属性”。表中每一行数据,相当于java中的“对象”。
安装mysql
官网下载mysql5.7.25:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
linux中安装mysql
windows中安装mysql
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语法规范
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