数据库

作者: 槑嘂槑 | 来源:发表于2017-04-09 20:28 被阅读0次

1. 数据模型

a. 层次模型--------------->IMS
b. 网状模型--------------->DBTG也称CODASYL
c. 关系模型--------------->MySQL、Oracle、Microsoft SQL Server

2. 关系型数据库

关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。

3. 数据库的存储引擎

MyISAM:拥有较高的插入,查询速度,但不支持[事务]
InnoDB:5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定
BDB: 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性

4. 数据库设计的重要性

如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是:
1.效率会很低
2更新和检索数据时会出现很多问题

Ⅰ. E-R图

①. 实体是指现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体.
②. 属性可以理解为实体的特征,针对于数据库中的表而言实体是指表中的列.
③. 联系是两个或多个实体之间的关联关系.

实体型:用矩形表示,矩形框内写明实体名;

属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型

Ⅱ. 三大范式

①. 第一范式:数据库中的每一列数据都不可以再分割(列的原子性)
②. 第二范式:实体属性完全依赖与主键(消除非主属性对主码的部分函数依赖)
③. 第三范式:不依赖于其它非主属性即一个数据库表中不包含已在其它表中已包含的非主关键字信息(消除传递依赖)

5. SQL语句

  1. 建库语句
    create database llb;

  2. 建表语句

create table llb.llbdebiao(
id int(11) not null auto_increment primary key,
name varchar(45) default 'llb'
name_id int(3)
)engine InnoDB default charset=utf8
创建一张表以自增id为主键name不填写是默认为llb

  1. 添加语句
    insert into llb.llbdebiao(id,name) values(null,'abc');
    insert into llb.llbdebiao values(null,'abdc',10);

  2. 修改语句
    update llb.llbdebiao set name = 'abcd' where id='1';

  3. 删除语句
    delete from llb.llbdebiao where ....;

  4. 删表语句
    drop table llb.llbdebiao;

  5. 删库语句
    drop database llb;

  6. 查询语句
    select * from llb.llbdebiao where id = 1......;

  7. distinct
    select distinct name from llb.llbdebiao ;
    用处取出重复属性

  8. order by
    select distinct name from llb.llbdebiao order by name_id

DESC 降序
ASC 升序

  1. 函数语句
    select count(*) from llb.llbdebiao;可查询表中公有多少条数据;

  2. group by(Having)
    对查询的结果集按指定字段分组
    select * from llb.llbdebiao group by name

  3. Union合并查询
    将多张查询表通过unnion合并

  4. 表连接


    kc表
    s表

    SELECT * FROM aa.kc k join aa.s s on s.id = k.sid;


    内连接
    SELECT * FROM aa.kc k left join aa.s s on s.id = k.sid;
    左外连接
    SELECT * FROM aa.kc k right join aa.s s on s.id = k.sid;
    右外连接

    内连接只显示符合连接条件的数据;
    左外连接左边数据都显示右表符合条件数据显示不对应的数据用null进行填充;
    右外连接与左外连接相反;

  5. in (not in)
    select *from llb.llbdebiao where id in (1,2,3);
    查询数据id 是1或者2或者3的数据

  6. exist(not exist)
    exists判断子查询的结果是不是存在,但查到什么结果,什么字段,并不关心,查询结果是一个布尔类型的值
    select * from llb.llbdebiao where exists(子查询);

  7. LIKE
    用于模糊查询
    通配符:
    %|替代一个或多个字符
    ---|---
    _|仅替代一个字符
    select * from llb.llbdebiao where name like 'b%';

  8. BETWEEN
    BETWEEN ... AND 会选取介于两个值之间的数据范围。
    select * from llb.llbdebiao where name_id between 2 and 6;

  9. NOW
    返回当前的日期和时间

获取数据库当前时间
  1. 数据分页
    select * from llb.llbdebiao limit 起始页 , 显示页数
    select * from llb.llbdebiao limit 显示页数 offset 起始页数

  2. 删除重复数据
    SET SQL_SAFE_UPDATES = 0;
    delete s1 from student s1, student s2 where s1.name = s2.name and s1.id>s2.id;

相关文章

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

  • 1.7.1 MySQL数据库学习

    1. 数据库命令行学习 进入数据库 创建数据库 查看数据库列表 删除数据库 使用数据库 查看当前数据库 2. 表 ...

网友评论

      本文标题:数据库

      本文链接:https://www.haomeiwen.com/subject/yhfjattx.html