本文已参与「新人创作礼」活动,一起开启掘金创作之路。
MySQL数据库
数据库概述
数据库相关概念
DB
数据库(database):是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。本质上是一个文件系统,是以文件的方式存在服务器的电脑上的。
DBMS
数据库管理系统(Database Management System)。是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和查询数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。
SQL的优点:
-
不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
-
简单易学
-
灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
为什么要使用数据库
数据存储在内存
优点:存储和读取速度快。
缺点:断电/程序退出,数据就清除了。而且内存价格贵。
数据存储在文件
优点:可以永久保存数据。
缺点:查找、增加、修改、删除数据比较麻烦,效率偏低。
数据存储在数据库
优点:可以永久保存数据。可以通过SQL语句方便的对数据进行查找、增加、修改、删除等操作,效率较高。
数据库的发展和分类
在数据库的发展历史上,先后经历了层次数据库、网状数据库、关系数据库、非关系型数据库等各个阶段。目前市场的主流数据库是关系型数据库,而非关系型数据库自2009年开始,发展趋势越发高涨,在很多领域也有广泛的应用。
关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库的行和列被称为表,一组表组成了数据库。
关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
常见的关系型数据库包括:Oracle、DB2、MySQL、PostgreSQL、SQL Server等。
非关系型数据库
NoSQL,泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储。
NoSQL有如下优点:
易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。 常见的非关系型数据库包括:Redis(key-value)、MongoDB、HBase、Graph等。
MySql数据库
优点:
成本低:开放源代码,一般可以免费试用
性能高:执行很快
简单:容易安装和使用
MySQL服务器的启动和停止
方式1:计算机—右击管理—服务
方式2:通过管理员身份运行
net start 服务器名(启动服务)
net stop 服务名(停止服务)
MySql服务的登录和退出
方式1:通过mysql自带的客户端(只限于root用户)
方式2:通过windows自带的客户端
登录:
mysql [-h 主机名 -P 端口号] -u 用户名 -P 密码
退出:
exit/ctrl+C
MySql常见命令介绍
查看当前所有的数据库
show databases;
打开指定的库
use 库名;
查看当前库的所有表
show tables;
查看其它库的所有表
show tables from 库名;
创建表
create table 表名(
列名 列类型,
列名 列类型,
。。。
);
查看表结构
desc 表名;
查看服务器的版本
方式一:登录到mysql服务端
select version();
方式二:
mysql --version
或
mysql -V
SQL语言
SQL语言概述
SQL语言介绍
SQL(Structured Query Language) 是结构化查询语言的缩写,使用SQL和DBMS进行交互,操纵关系型数据库中的资源。 SQL是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但为了加强SQL的语言能力,各个厂商都增加了特有内容。
SQL语言分类
数据定义语言(DDL):Data Definition Language,用来定义数据库的对象,如数据表、视图、索引等。
数据操纵语言(DML):Data Manipulation Language,用来在数据库表中更新,增加和删除记录。
事务控制语言(TCL):Transaction Control Language,用来做数据库中的事务管理。
数据查询语言(DQL):Data Query Language,用来查询数据库中的数据。
数据控制语言(DCL):Data Control Language,用来控制数据库的用户权限。
SQL语言特点
1、不区分大小写,关键字建议使用大写,而数据库名,数据表名,列名建议使用小写。
2、可以写成一行,也可以写成多行。
3、可使用空格和缩进来增强语句的可读。
4、3种注释:
单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
多行注释:/* 注释内容 */