mysql学习之路--从安装开始

我是直接装的安装版,这个比较容易上手,官方下载地址:点我点我点我呀

安装教程:在这里,系统是win10,虽然不好用,但也没办法,好了,不瞎bb了,下面直接开始。

第一部分:基本概念

数据库分关系型数据库非关系型数据库,最常用的关系数据库就是mysql,其次还有MariaDB,sqlServer,sqLite等,非关系数据有mongoDB,redis,HBASE等等,下面了解一下二者的优缺点:

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

优点:

1、易于维护:都是使用表结构,格式一致;

2、使用方便:SQL语言通用,可用于复杂查询;

3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

1、读写性能比较差,尤其是海量数据的高效率读写;

2、固定的表结构,灵活度稍欠;

3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型

2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;

3、高扩展性;

4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;

2、无事务处理;

3、数据结构相对复杂,复杂查询方面稍欠

下面我们详细介绍一下MYSQL

1.什么是数据库?

数据库是按照数据结构来组织,存储和管理数据的仓库

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现
  • 2.每行为各种记录名称
  • 3.每列为记录名称所对应的数据域
  • 4.许多的行和列组成一张表单
  • 5.若干的表单组成database

2.了解一下RDBMS术语 

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

3.关于mysql

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,所以你不需要支付额外的费用。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的SQL数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
  • MySQL 对PHP有很好的支持,PHP是目前最流行的Web开发语言。
  • MySQL 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了GPL协议,你可以修改源码来开发自己的 MySQL 系统。   

二.命令

1.创建数据库

进入cmd输入以下命令

mysql -u root -p

默认没有密码直接回车进入,或者打开mysql终端直接回车,当你看到以下画面,说明你已经登陆成功了:

Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, 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>

你也可以使用一下命令创建root用户的密码:

mysqladmin -u root password "需要设置的密码";

登录成功后,我们来创建第一个数据库,命令如下

create database 数据库名;

切记一定要在sql语句后边家上分号,表示当前语句结束。

删除数据库用以下命令:

drop database 数据库名;

选择数据库命令:

use 数据库名

查看数据库命令:

show databases;

下面我创建一个叫running的数据库并选择使用它:

接下来,我们来学习创建数据表,在此之前我们先来了解一下数据类型都有哪些,这对数据库的优化非常重要

2.数据类型

 这个哥们总结的比较全,我这里就不抄袭了,传送门点我鸭

3.创建数据表

在创建数据表时,我们需要有以下信息:1:表名,2:字段名,3:每个字段的数据类型和长度,我们来看一下语法:

create table 数据表名 (字段名 数据类型(长度));

下面,我们来创建一个数据表:

create table if not exists test (user_id int unsigned auto_increment,name varchar(20) not null,age int,primary key (user_id))engine = innodb default charset=utf8;

这条语句的意思是如果不存在test数据表的时候创建该表,下面来介绍以下几个概念:

1,not null: 如果你不想该字段为空,可以设置该属性not null,如果在数据库插入数据是没有该数据,就会报错

2,unsigined:该属性表示无符号化,只表示大小,只针对整型,设置该属性会将改数值的取值范围增加一倍

3,auto_increment: 自增属性,一般用于主键,数值会自动+1

4,primary key;定义列为主键,可以设置多列

5,engine 设置储存引擎,charset设置字符编码

下面我们来学习如何删除数据表,用以下命令:

drop table 数据表名;

向数据表插入数据:

insert into 数据表名 (字段1,字段2....) values (值1,值2...);

如果值为字符型,必须用单引号或者双引号,如“张三”

如果建表的时候你没有设置字符编码,插入数据如果有汉子查询会有乱码现象,我们可以用以下命令设置编码:

set names utf8;

那么,如果我想插入多条数据怎么办?很简单,只需要将每行数据之间用逗号隔开就行了,格式如下:

insert into 数据表名 (字段1,字段2....) values (值1,值2...), (值1,值2...), (值1,值2...);

在程序中,插入批量数据时,最好使用这种通过一条INSERT语句来一次性插入的方式。这样可以避免程序和数据库建立多次连接,从而增加服务器负荷

下面我们来创建一个名叫test的数据表,分别有user_id,name,age三个字段:

4.数据表查询

猜你喜欢

转载自www.cnblogs.com/qisi007/p/10048267.html
今日推荐