简介
数据库DB
数据库( DataBase , DB )从本质上讲就是一个文件系统,它能够将数据有组织地集合在一起,按照一定的规则长期存储到计算机的磁盘中,并且能够供多个用户共享和 使用,同时,用户能够对数据库中的数据进行插入、删除、修改和查询等操作。
数据库管理系统DBMS
数据库管理系统(DataBase Management System , DBMS 从本质讲就是一个为管 理数据库中的数据而设计的一套管理系统。它依托数据库,对外提供统一管理数据库中 数据的功能和接口能够有效地对数据库的安全、认证、数据 备份、数据恢复、数据传输等进行统一的管理。同时,数据库管理系统能够根据所依托的数据库模型对数据库进行相应的分类。大多数的数据库都是通过数据库管理系统对数据库中的数据进行管理和 维护的。
DB与DBMS的关系

数据库的分类
关系型数据库
依据所有存储数据的模型之间的关系建立的数据库。所谓关系模型,指的是“ 一对一、 一对多、多对多” 等 关系型。常见的关系型数据库如下:
Oracle:是 Oracle 公司的数据库产品
Mysql: 最早属于瑞典的 MysqlAB 公司的,后被 Sun 公司收购, Sun 在 2009 年 4月 20 号被 Oracle 收购。
SQLServer:微软旗下的数据库产品
Access:微软旗下的数据库产品
DB2:IBM 公司旗下的数据库产品
非关系型数据库
泛指非关系型的数据库,区别于关系数据库。采用了没有特定关系模型来组织数据。常见的非关系型数据库如下:
MongoDB:是一个面向文档的开源 NoSQL 数据库 .MongoDB 使用 JSON 之类的文档来存储任何数据. 它是用 c++ 写的。
Cassandra:是 Facebook 为收件箱搜索开发的 .Cassandra 是一个用于处理大量结构化数据的分布式数据存储系统
Redis:是最著名的键值存储。 Redis 是用 C 语言编写的。它是根据 BSD 授权的。
HBase:谷歌为 BigTable 数据库设计的分布式非关系数据库
数据库的安装及配置
安装
安装命令:
sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装 mysql
安装过程会提示设置mysql root 用户的密码
连输两遍密码
启动或关闭MySQL
启动命令
service mysql start
关闭命令
service mysql stop
重启命令
service mysql restart
注意 : 默认安装完成后, MySQL 为启动状态
确认是否启动成功
命令 :
sudo netstat -tap | grep mysql
注意 :
mysql节点处于 LISTEN 状态表示启动成功
进入MySQL Shell
命令 :
mysql -u root -p
回车
输入安装mysql 时的密码
mysql中文乱码
原因 :
character_set_server 默认设置是 latin1
查看命令 :
show variables like "char%";
查看结果如下
解决方案 : 修改 mysql 配置
步骤0:
退出mysql
exit
步骤 1: 编辑配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
步骤 2: 在文件 [mysqld] 下添加 character_set_server=utf8. 保存退出
步骤 3: 重启 mysql 服务
service mysql stop
service mysql start
或
service mysql restart
步骤 4: 登录 MySQL, 并查看 MySQL 目前设置的编码。 show variables like "char%";
外部工具连接mysql失败
原因:
Ubuntu下默认安装 MySQL 只支持本地机的 localhost 和 127.0.0.1 进行连接访问 , 不能通 过虚拟机的IP 地址进行远程访问 MySQL
修改 :
1,修改 mysql
1.1:在Ubuntu 系统的 dos 中打开 mysql 库。
mysql -u root -p
这时会提示你输入 root 的密码,输入 root 密码后登陆进入 mysql 控制台。
在 mysql 控制台中执行如下 sql 语句
1.2:切换之mysql 库中
use mysql;
1.3:修改权限表,将 root 的登陆 host 改为 ‘%’, 即允许所有 ip 。
update user set host = '%' where user = 'root';
1.4:立刻刷新权限
flush privileges;
注意:如果你还是不能远程连接,则继续执行下一步操作
2,修改 mysql 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改其中的 bind-address 后面的 ip 值为 0.0.0.0 ,如下:
bind-address = 0.0.0.0
保存修改,重启 mysql ,即可。命令如下 :
service mysql restart
至此,即可通过远程 ip 登陆 mysql 了
SQL语句
简介
SQL( Structured Query Language )结构化查询语言,用于存取、查询、更新数据以 及管理关系型数据库系统
SQL是在 1981 年由 IBM 公司推出,一经推出基于其简洁的语法在数据库中得到了广泛的 应用,成为主流数据库的通用规范
SQL由 ANSI 组织确定规范 在不同的数据库产品中遵守SQL 的通用规范,但是也对 SQL 有一些不同的改进,形成了一 些数据库的专有指令
MySQL : limit
SQLServer : top
Oracle : rownum
分类
根据 SQL 指令完成的数据库操作的不同,可以将 SQL 指令分为四类
数据存在表中 , 表是存储在数据库中 ,mysql 中可以有多个数据库
表 : 类似与 Execl
- DDL(Data Definition Language )数据定义语言
- 用于完成对数据库对象(数据库、数据表、视图、索引等)的创建、删除、修改
- DML ( Data Manipulation Language )数据操作 / 操纵语言
- 用于完成对数据表中的数据的添加、删除、修改操作
- 添加:将数据存储到数据表
- 删除:将数据从数据表移除
- 修改:对数据表中的数据进行修改
- DQL ( Data Query Language )数据查询语言
- 用于将数据表中的数据查询出来
- DCL ( Data Control Language )数据控制语言
- 用于完成事务管理等控制性操作
基础语法
在MySQL Command Line Client 或者 Navicat 等工具中都可以编写 SQL 指令
- SQL 指令不区分大小写
但是在后期编写sql 指令时 ,sql 提供的关键字一般使用大写 , 自定义的名称用小写
- 每条 SQL 表达式结束之后都以 ; 结束
- SQL 关键字之间以空格进行分隔
- SQL 之间可以不限制换行(可以有空格的地方就可以有换行)
- MySQL 注释:
- 单行注释: -- 注释内容
注意: 在 -- 后要加空格
- 单行注释: # 注释内容
- 多行注释: /* 注释内容 */