数据库简介

1.数据库能干什么

持久的存储数据

备份和恢复数据

快速的存取数据

权限控制

2.数据库的类型

2.1.关系数据库

特点:以表和表的关联构成的数据结构

优点:能表达复杂的数据关系。强大的查询语言,能精确查找想要的数据

缺点:读写性能比较差,尤其是海量数据的读写。数据结构比较死板

用途:存储结构复杂的数据

代表:Oracle、MySql、Sql Server

2.2.非关系型数据库

特点:简单的结构存储数据,文档型,键值对

优点:格式灵活,海量数据读写效率很高

缺点:难以表示复杂的数据结构,对于复杂查询效率不好

用途:存储结构简单的数据

代表:MongoDB,Redis,Membase

2.3.面向对象数据库

3.术语

DB: database 数据库

DBA:database administrator 数据库管理员

DBMS:database management system 数据库管理系统

DBS:database system 数据库系统

MySql特点

1.关系型数据库,开源(商用版、社区版),轻量,快速

2.瑞典MySQL AB 公司开发,现已被Oracle收购

安装MySql

下载 : MySQL :: Download MySQL Community Server

 

3.数据库设计

3.1.SQL

Structured Query Language 结构化查询语言

大部分关系型数据,拥有着基本一致的SQL语法

3.1.1.DDL

Data Definition Language 数据定义语言

操作数据库对象:库、表、视图、储存过程

3.1.2.DML

Data Manipulation Language 数据操控语言

操作数据库中的记录

3.1.3.DCL

Data Control Language 数据控制语句

操作用户权限

3.2.管理库

3.2.1.创建库

CREATE DATABASE 数据库名;

3.2.2.切换当前库

use 数据库名称;

3.2.3.删除库

drop database <数据库名>;

3.3.管理表

创建表

字段名

字段类型(前端常用类型)

  1. bit:占1位,0或1,false或true
  2. int:占32位,整数
  3. decimal(M,N):能精确计算的实数,M是总的数字位数,N是小数位数
  4. char(n):固定长度位n的字符
  5. varchar(n):长度可变,最大长度位n的字符
  6. text:大量的字符
  7. date:仅日期
  8. datetime:日期和时间
  9. time:仅时间

4.主键和外键

4.1.主键

根据设计原则,每张表都要有主键

主键必须满足的要求:唯一、不能更改、无业务含义

4.2.外键

用于产生表关系的列

外键列会连接到另一张表(或自己)的主键

5.表关系

5.1.一对一

一个A对应一个B,一个B对应一个A

例如:数据量特别大的情况

5.2.一对多

一个A对应多个B,一个B对应一个A,A和B是一对多,B和A是多对一

例如:班级和学生,用户和文章,省市区三级选择

5.3.多对多

一个A对应多个B,一个B对应多个A

例如:学生和老师

6.三大设计范式

  1. 要求数据库表的每一列都是不可分割的原子数据项

  2. 非主键列必须依赖于主键列

  3. 非主键列必须直接依赖主键列

7.表记录的增删改

DML:Data Manipulation Language 数据操控语言

增 CREATE

增加一条数据:
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...);

增加多条数据(用,分隔开即可):
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...),
(值1,值2,值3,值4...);

 

改 UPDATE

UPDATE student SET `字段`='值'    //修改字段的所有值
WHERE id=num;                    //修改增加条件

 

删 DELETE

DELETE FROM 表名             //清空
WHERE name='张三211';        //增加条件删除

8.单表查询

select

*,as,case,distinct

from

where

=,in,is,is not,>,<,>=,<=,between,like,and,or

order by

asc 升序,desc降序

limit n,m

n,m 跳过n条数据,取出m条数据

运行顺序

from -> where -> select -> order by -> limit

9.联表查询

笛卡尔积

9.1左连接

左外连接,left join

9.2右连接

右外连接,right join

9.3内连接

inner join

10.mysql驱动程序

10.1.什么是驱动程序

定义

驱动程序是连接内存和其他存储介质的桥梁

mysql驱动

mysql驱动程序是连接内存数据和mysql数据的桥梁

mysql驱动程序

mysql

官方驱动

mysql2

第三方驱动,以前叫mysql-native。现基本与官方驱动合并

10.22.参考地址

GitHub - sidorares/node-mysql2: fast mysqljs/mysql compatible mysql driver for node.js

10.3.防止sql注入

sql注入

  1. 用户通过注入sql语句到最终查询中,导致了整个sql与预期行为不符

  2. 变量的内容不作为任何sql关键字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值