第二十三篇(初识MySQL)

初始MySQL

前言

为什么要使用数据库

因为使用io流文件存储数据有很多弊端:

  1. 文件存储数据存储效率低。
  2. 不管存还取操作比较麻烦。
  3. 一般只能保存小量字符串数据等。
    为了解决这些弊端,才有数据库的出现,使用数据库存储数据就可以很好的解决这些弊端。

1. 了解主流的数据库和数据库分类

1.1 数据库概念

数据库:按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库。

数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。

数据库的优势:

  1. 可以持久化存储大量的数据、方便我们进行检索
  2. 可以保证数据的安全和数据的一致性(事务…)
  3. 可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)
1.2 数据库的分类

RDB(Relational DataBase)关系型数据库: 经过数学理论验证 可以保存现实生活中的各种关系数据, 数据库中存储数据以表为单位。

关系数据库

  • MySQL
    • MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)
    • Percona Server(MySQL的代替品)
  • PostgreSQL
  • Microsoft Access
  • Microsoft SQL Server
  • Google Fusion Tables
  • FileMaker
  • Oracle数据库]Sybase
  • dBASE
  • FoxPro
  • foshub

性能方面 :关系型数据库受限于技术实现,所以有瓶颈。

但是它在安全方面比较可靠。(事务支持好)

NoSQL(Not only SQL)不仅仅是SQL 非关系型数据库: 通常用来解决某些特定的需求如:数据缓存,高并发访问。 存储数据的形式有多种,举例:Redis数据库:通过键值对的形式存储数据。

非关系型数据库(NoSQL)

  • BigTable(Google)
  • Cassandra
  • MongoDB
  • CouchDB

键值(key-value)数据库

  • Apache Cassandra(为Facebook所使用):高度可扩展
  • Dynamo
  • LevelDB(Google) [1]

它这种概念正式兴起于web2.0时代 2006-2009… 它的性能非常优异 。

但是它的安全方面要比较差。(事务支持不太好)

RDB(主) + NoSQL(副)。

1.3 主流数据库

RDB:

	MySQL   Oracle   SQLServer PostgreSQL MariaDB SQLlite.....

NoSQL:

	Redis   Memcached   MongoDB  HBase   Solr   ElasticSearch....
  • MySQL: 08年被sun公司收购09年sun被oracle收购,开源免费,到oracle发布了5.0版本(使用了oracle核心技术 性能提高30%),因为Oracle数据库地位受到威胁,计划把mysql闭源,原mysql作者们不干了,原程序员出去单干,发布了MariaDB数据库、名字是因为作者女儿叫Maria ,市场排名第一。
  • Oracle:闭源、最贵、性能最高,市场排名第二。
  • SQLServer:微软公司的产品,市场排名第三,主要应用在.net(C#)开发的网站中。
  • DB2:IBM公司有做网站的完整解决方案(操作系统,we服务器(如tomcat),数据库等)主要应用在银行等国有大型企业中。
  • sqlite:轻量级数据库,只有几十k,一般应用在嵌入式和移动设备中。

2. 了解MySQL并学会安装MySQL

在这里插入图片描述

2.1 MySQL

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.2 MySQL是一种数据库管理系统

数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。

2.3 MySQL是一种关联数据库管理系统

关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISO SQL标准定义的。SQL标准自1986年以来不断演化发展,有数种版本。在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:2003”指得是标准的当前版本。我们采用术语“SQL标准”标示SQL标准的当前版本。

2.4 MySQL软件是一种开放源码软件

“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。MySQL服务器还有一套实用的特性集合,在基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。

安装完后MySQL后,需要配置path环境变量

计算机 -> 属性 -> 环境变量 -> Path -> 最开头将bin这以及目录粘贴过来,后面加一个英文的分号。

2.5 使用MySQL

在DOS(cmd)命令调用:

	net start mysql	启动服务。

	net stop mysql	停止服务。

	mysql -u(root/登录用户名) -p(登录密码):调用mysql,u是username,p是password。

	quit  退出

3. 了解常用的数据库命令

3.1 数据库服务器的组成
数据库是基本单位

数据表是数据库的基本单位

例如:我们需要开发一个小说阅读器,它需要存储小说、分类、用户…信息。

创建一个小说阅读器的数据库:sun_reader_db

在sun_reader_db中创建小说表、分类表、用户表(二维表)

3.2 SQL介绍

**SQL:(**Structured Query Language)结构化查询语言 它也是一种规范、标准。

我们的关系型数据库都是采用SQL来进行操作的,不同的数据库对SQL进行了一些改造,但是类似。CRUD

DDL:数据定义语言 创建Create 删除Drop 修改Alter table…

DML:数据操作语言 CUD 增Insert 删Delete 改Update

DQL:数据查询语言 Select 查询

DCL:数据控制语言 Grant 、Roll back 、 commit…

3.3 数据库相关操作命令
	-- 创建数据库命令
	create database 数据库名; 

在这里插入图片描述

	-- 删除数据库命令
	drop database 数据库名;

在这里插入图片描述

	-- 查看数据库
	show databases;

在这里插入图片描述

	-- 切换数据库   如果需要在此数据库中进行操作 必须要先切换此数据库
	use 数据库名;

在这里插入图片描述

4. 熟悉数据表操作的语句/命令

4.1 创建数据库表
	create table 表名(
		列名1 数据类型(数据长度)  列约束/属性,
		列名2 数据类型  列约束....
	);



	-- 创建用户信息表  有些时候在MySQL中 如果有敏感字/关键字 可以添加反引号`来解决。注意不是单引号'
	create table `user`(
		id int,
	    username varchar(25)
	);

在这里插入图片描述

4.2 查看数据库中的数据表
	-- 查看数据库的所有表
	show tables;
	-- 查看表定义/结构
	desc/describe 表名;

在这里插入图片描述

4.3 删除数据库
	-- 删除数据库表
	drop table 表名;

在这里插入图片描述

5. 熟悉常见的数据列属性和类型

5.1 列属性
	not null  不允许字段为空
	unique 字段必须唯一
	unsigned 无符号 无负号  不能与unique关键字同时存在
	zerofill 以0补全某个字段类型的剩余长度  不能与unsigned同时使用
	default 默认值
	comment 注释
	primary key 主键:用来唯一标识一条数据的列就是主键   它的默认效果为 非空not null且唯一unique  它还能提升查询速度
	auto_increment 自动增长  用于主键列的值自增
5.2 列类型
	数值:可写可不写
		tinyint(短整型)	[int](整数型)   bigint(长整型)
		[double](双精度浮点数)
	字符串:字符串必须写长度
		[varchar] 可变字符串 最大长度255    char不可变字符串
		假设设置了varchar长度为10  char长度也为10  当真实存了1个字符  varchar占用1char占用10(效率高)
		text 长文本
	日期类型:日期类型不能写长度
		[datetime]    timestamp
		年月日    		年月日时分秒 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值