MySQL基础

什么是数据库?

数据库(Database)就是一个存储数据的仓库,这个仓库按照特定的格式对数据进行存储。我们的程序都是在内存中运行的,一旦程序运行结束或者计算机断电,程序运行中的数据都会丢失,所以我们就需要将一些程序运行的数据持久化到硬盘之中,以确保数据的安全性。

我们常说 XX 数据库,其实实质上是 XX 数据库管理系统(DBMS)

数据库的发展史

萌芽阶段:文件系统
	使用磁盘文件来存储数据。(早期计算机使用的磁盘是软盘,如今常用的磁盘是硬盘)

初级阶段:第一代数据库
	出现了网状模型、层次模型的数据库

中级阶段:第二代数据库
	关系型数据库和结构化查询语言

高级阶段:新一代数据库
	“关系-对象”型数据库

数据库分类

目前数据库主要分为传统的关系型数据库(SQL)和非关系型数据库(NoSQL),当然还有近几年新出现的NewSQL新型数据库、分布式数据库等等。

  • 常见的关系型数据库有MySQL、 Microsoft SQL Server、Oracle、PostgreSQL、DB2、Microsoft Access 等。

  • 常见的非关系型数据库有 Neo4j、MongoDB、Redis、Memcached、MemcacheDB 和 HBase 等。

关系型数据库: (SQL)

  • MySQL、Oracle、Sql Server, DB2,SQLlite

  • 通过表和表之间,行和列之间的关系进行数据的储存, 学员信息表,考勤表......

关系型数据库相关常用术语

  •  关系 :关系就是二维表,其中:表中的行、列次序并不重要

  •  列:一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。

  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

  • 优点

  • 二维表结构直观,易理解

  • 使用SQL语句操作非常方便,可用于比较复杂的查询,有明显的层次结构

非关系型数据库: (NoSQL) Not Only

  • Redis,MongDB

  • 非关系型数据库,对象储存,通过对象的自身的属性来决定

DBMS(数据库管理系统)

  • 数据库的管理软件,科学有效的管理我们的数据。维护和获取数据;

  • MySQL,数据库管理系统

NoSQL大致可以分为四种:

分类

数据模型

优势

举例

键值数据库(key-value)

哈希表

查询快、易部署、高并发

Redis、Memcached

列存储数据库

列式数据存储

查询快,数据压缩率高,不需要额外建立索引

HBase

文档型数据库

键值对扩展

将数据以文档的形式储存,数据结构不定

MongoDB

图数据库

节点和关系组成的图

利用图结构的相关算法

Neo4j、JanusGraph

总结:

关系型数据库和非关系型数据库的区别:

  1. 数据存储方式:非关系型数据库的存储方式是KEY-VALUE的形式、文档等形式,而关系型数据库只支持单一的存储方式。

  1. 查询效率:关系型数据库存储于磁盘,非关系型数据库存储于缓存,效率比关系型数据库更高。

  1. 事务:关系型数据库支持事务处理,可进行事务回滚。

  1. 成本:非关系型数据库基本是开源的,不需要像oracle花费大量的成本购买

SQL

结构化查询语言(Structured Query Language)简称SQL,1974年由Boyce和Chamberlin提出,是一种关系型数据库查询的标准编程语言,用于存取数据以及查询、更新、删除和管理 关系型数据库。为什么强调标准语言?我们知道关系型数据的主要三大实现者分别是,Mysql,MS SQLServer,Oracle。

它们实现数据存储的底层引擎或许不同,但提供出来管理数据的编程语言必须遵循 SQL 规范,但可以定制添加属于自己的额外语法,这些额外的、SQL 之外的语法又被称作它们各自的『SQL方言』。

所以如果你拿着 SqlServer 的方言跑到 Mysql 里去执行,那很大程度上是会报错的。因为sqlserver和mysql虽然都遵循着sql规范,但是它们又添加了属于自己的语法。所以语法是有区别的

SQL语法

一个数据库通常包含一个或多个表。每个表都有一个名字,表包含带有数据的记录(行)。表中的行也叫记录,列也叫字段或属性

  • sql对大小不敏感,SELECT与select是相同的

  • 每条sql语句使用分号结尾

这里我们选择mysql来练习sql语法。可以使用phpstudy自带的sql控制台来练习

MySQL

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司

  • 开源、免费

  • 使用标准的sql语句查询

MySQL5.0版本以上新增了 information_schema 数据库

如何搭建网站

搭建网站的条件:操作系统,web服务器(中间件)、服务端脚本语言、数据库。所以我们可以用如下的架构去搭建web服务

  • LAMP:linux + apache + mysql + php

  • WAMP:windows + apache + mysql + php

这里使用phpstudy开启web服务器

MySQL注释

MySQL数据库注释大概有以下几种:

#
--(杠杠空格) (注入中经常用到的)
/* ..... */
/*! .... */   内联查询

MySQL元数据库information_schema

mysql5.0版本之后产生了一个虚拟数据库information_schema,在这个数据库中有三个很重要的表:

information_schema: 该数据表存储了mysql数据库中的所有数据库的库名

information_schema.tables: 该数据库存储了mysql数据库中的所有数据库的表名

information_schema.columns: 该数据库存储了mysql数据库中的所有列的列名

默认库介绍

  • 5.7版本及以上自带库为4个:information_schema、mysql、performance_schema、sys

  • 5.7版本以下自带的库为4个:information_schema、mysql、performance_schema、test

test库:这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

sys库:Sys库所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况

命令行方式进入mysql

进入MySQL的bin目录下,并打开cmd

执行如下命令,然后按回车,输入密码

mysql.exe -u root -p 

  1. 新建数据库

create database 数据库名;
  1. 新建表

使用 create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型,…); 来创建一张表。

create table student(id int, name char(20), age int);
  1. 给表增加字段

使用 "alter table 表名 add 字段名 数据类型; " 为已存在的表添加一个新字段。

alter table student add score float  //新增score字段,类型为小数类型
  1. 表中插入数据

insert into 表明(字段1,字段2,...)values(值,值,...)

insert into xzc.student(id,name,age,score) values (1,"wgy",19,99)
insert into xzc.student(id,name,age,score) values (2,"xzc",25,98)
insert into xzc.student(id,name,age,score) values (3,"xya",1,90)
insert into xzc.student(id,name,age,score) values (4,"xja",1,90)
int:整数;char:字符串常数和变量可以包含一系列的字符;float:小数

系统是根据变量的类型为其分配不同容量的内存空间。

drop database 数据库名

select version();            //查看mysql版本信息

show databases               //查询所有数据库
use 数据库名字                //进入数据库

show tables                   //查询当前所在数据库的所有表
  1. 查询表中的所有数据

select*from xzc.student
  1. 查询表中的id为1的数据

select*from xzc.student where id=2
  1. 查询表中的数据只显示前两行

select*from xzc.student limit 2

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值