数据库介绍
一、常用的数据库分为两大类:
- 关系型数据库
- 非关系型数据库(NoSql)
关系型数据库
概念:是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系型数据库的优势:
- 保持数据的一致性(事务处理)
- 由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
- 可以进行Join等复杂查询
缺点:
- 高并发读写需求:网站的用户并发非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈
- 海量数据的高效率读写:对于数据量巨大的网站来说,关系型数据库的查询效率非常低
非关系型数据库
非关系型数据库也叫NoSQL。区别于关系数据库,它们不保证关系数据的ACID特性。NoSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
优点:
- 成本:NoSql数据库简单易部署,基本都是开源软件,不需要使用像oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
- 查询速度:NoSql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及NoSql数据库。
- 存储格式:NoSql数据库的存储格式是Key,Value形式,文档形式,图片形式等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
- 扩展性:关系型数据库有类似join这样的多表查询机制的限制,导致扩展很艰难。
缺点:
- 维护的工具和资料有限,因为NoSql属于新技术,不能和关系型数据库10几年的技术同日而语。
- 不提供对Sql的支持,如果不支持Sql这样的工业标准,将产生一定用户的学习和使用成本。
- 不提供关系型数据库对事物的处理。
常见的关系型数据库:
- Mysql(美国,甲骨文公司)
- Oracle(美国,甲骨文公司)
- Sql Server(美国,微软公司)
- DB2(美国,IBM公司)
常见的非关系型数据库:
- Redis[键值存储数据库]
- MongoDB[键值存储数据库]
二、SQL、DB、DBMS分别是什么?他们之间时什么关系?
- DB:DataBase(数据库,数据库实际在硬盘上以文件的形式存在)
- DBMS:DataBase Management
System(数据库管理系统,常用的有:MySQL、Oracle、DB2、Sybase、sqlServer……) - SQL:结构化查询语言,是一门标准的通用语言,标准的sql适合于所有的数据库产品。
SQL属于高级语言,只要能看懂英语单词,写出的SQL语句,可以读懂什么意思。
SQL语句在执行的时候,实际上内部也会进行编译,然后在执行sql(编译有DBMS完 成)
DBMS负责执行程序员写的sql语句,通过执行sql语句来操作DB中的数据。
DBMS -(执行)-> SQL - (操作) -> DB
三、什么是表?
表:table是数据库的基本组成单元,所有的数据都要以表的形式组织,目的是可读性强。
一个表包括行和列:
行:被称为数据/记录(data)
列:被称为字段(column)
每一个字段应该包括哪些属性?
- 字段名
- 数据类型
- 相关的约束
四、那么SQL语句包括增删改查,SQL语句怎么分类呢?
DQL(数据查询语言): 查询语句,凡是select语句都是DQL。
DML(数据操作语言):insert delete update,对表当中的数据进行增删改。
DDL(数据定义语言):create drop alter,对表结构的增删改。
TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)
DCL(数据控制语言): grant授权、revoke撤销权限等。
SQL的基础操作
假设我们现在以经成功安装了MySQL,下面开始介绍MySQL的基础操作。
1.启动/停止mysql
net start mysql
net stop mysql
注意:如果是安装win版本,执行语句的时候提示“拒绝访问”,可以推出命令提示符,用管理员权限打开命令提示符即可。
2.登录mysql账号密码
mysql -uroot -p //回车后输入密码
Enter password: *****
3.修改密码
alter user user() identified by "新密码"
4.登录进去后查看有哪些数据库
show databases;
5.创建属于我们自己的数据库(bjpowernode)
create database bjpowernode;
6.使用数据库(bjpowernode)
use bjpowernode;
7.查看数据库中的表;
show tables;
8.创建自己的表(studentstest)如下参考图片
create table studentstest(
id int not null,
name char(10) not null);
8.初始化数据
source 文件路径\XXX.sql
注意:初始化数据可以不要分号“;”
这里用于初始化的文件称为sql脚本文件—bjpowernode.sql
bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢?
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。
注意:直接使用source命令可以执行sql脚本。
sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。
bjpowernode.sql中包含了三张表格,在对它完成初始化后,数据库中就得到了这三张表后面我们在练习SQL查询语句的时候就拿这三张表格来重点反复练习。下面分别介绍一下这三张表格:
查看当前数据库中的表:
查看数据库中的表;
show tables;
9.查看表的数据结构:
desc 表名;
表一:部门表
表二:员工信息表
表三:薪资表
10.删除表格
drop tables 表名;
11.删除表格
drop database 数据库名;
12.查看表中数据:
select 字段 from 表名;
我们刚好可以顺便看看前面三张表中的数据吧:
员工表中的数据:
部门表中的数据:
薪资表中的数据:
13.查看当前使用的是哪个数据库:
select database();
13.查看当前使用mysql的版本:
select version();
14.查看当前使用的是哪个数据库:
select 字段 from 表名;
15.命令,提前结束一条语句(写到一半不想写了):
\c
16.命令,推出mysql:
exit / quit / Ctrl + C
13.查看创建表的语句:
show create table 表名;