数据库知识点总结

一、基本概念

  • 1、数据库服务器
    • 我们可以理解为数据库服务器即是一台内存较高的计算机,可以在上面运行数据库管理软件
  • 2、数据库管理系统
    • 如Mysql,是一个软件,用来管理数据库的软件
  • 3、数据库
    • 即文件夹,用来组织文件
  • 4、表
    • 即文件,用来存放多条记录,每条记录为多个字段组成的一行数据

二、Mysql基本介绍

  • Mysql是目前WEB应用最好的RDBMS(Relation Database Mangement System)关系数据库管理系统之一
    • 关系型数据库是将数据保存到不同的表里面,而不是将数据放到一个大仓库内
    • 关系型数据库与非关系型数据库的区别是:关系型数据库有表结构,非关系型数据库是通过key-value存储,无表结构

三、SQL数据类型

  • char( )定长字符串,存储速度快,但是浪费空间
  • varchar( )变长字符串,存储速度慢,可是节省空间

四、约束:作用是保证数据的完整性和一致性

  • not null 表示该字段数据不能为空
  • default 表示该字段的默认值
  • unique 唯一(列唯一,组合唯一)
  • primary key 主键 一张列表中只允许出现一个主键(not null + unique)
  • auto-increment 自增长
  • foregin key 外键 建立两个表之间的联系

 五、基础语句,详细见https://www.cnblogs.com/yangyangfubin/p/8179172.html

1.管理数据库语句:

使用数据库:

use test;

添加数据库:

create database 数据库名;

create database test;

修改数据库:

alter database 数据库名;

alter database test;

删除数据库:

drop database 数据库名;

drop database test;

查看所有数据库:

show databases;

 

2.管理表语句:

添加数据表:

create table 表名(

  列名 数据类型 数据约束,

  列名 数据类型 数据约束

);

create table student(

  name varchar(20) not null,

  age int(4)

)

修改数据表:

alter table 表名;

1)在表中增加新字段

alter table student add colunm name varchar(20);

2)删除表中的字段

alter table student drop name;

3)修改表中字段的类型

alter table student modify name varchar(10);

删除数据表:

drop table 表名;

drop table student;

查看所有表:

show tables;

 

3.管理数据语句:

插入数据:

insert into 表名 (列1,列2...)  values (值1,值2...);

insert into student (name,age) values ('张三',20);

更新数据:

update 表名 set 列=修改值 where 条件;

update student set  name='李四' where name='张三';

删除数据:

delete from 表名 where 条件;

delete from student where name='李四';

查询数据:

selete *  from 表名 where 条件;

selete * from student where name='张三';

六.数据库设计的三大范式

第一范式;要求表的每个字段必须独立的不可分割的单元

学生表: student name ---违反第一范式

               张三|狗娃

学生表: student name old_name  ---符合第一范式

                    张三    狗娃

第二范式:在第一范式的基础上,要求表的除主键以外的字段都和主键有依赖关系

一张表只表达一个意思

员工表:employee

员工编号   员工姓名   部门名称    订单名称   ---违反第二范式

 

员工表:employee

员工编号   员工姓名   部门名称     ---符合第二范式

            订单表:

            订单编号 订单名称

第三范式:在第二范式的基础上,要求表的除主键以外的字段都只能和主键有直接决定的依赖关系

员工表:employee

员工编号   员工姓名  部门编号  部门名称 ---违反第三范式(出现数据冗余)

               1        张三       1        软件开发部

               2        李四       1        软件开发部

员工表:employee

员工编号   员工姓名  部门编号   ---符合第三范式

 1        张三       1

 2        李四       1

部门表:dept

部门编号   部门名称

1          软件开发部

七、什么是存储过程?有哪些优缺点?

存储过程是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

  • 存储过程是一个预编译的代码块,执行效率比较高
  • 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率
  • 可以一定程度上确保数据安全

 

八、索引是什么?有什么作用以及优缺点?

索引是对数据库表中一或多个列的值进行排序的结构,索引就是加快检索表中数据的方法。数据库的索引类似于书籍的目录。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

MySQL数据库几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引

  • 索引加快数据库的检索速度
  • 索引降低了插入、删除、修改等维护任务的速度
  • 唯一索引可以确保每一行数据的唯一性
  • 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
  • 索引需要占物理和数据空间 

九、 事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

       针对上面的描述可以看出,事务的提出主要是为了解决并发情况下保持数据一致性的问题。

       事务具有以下4个基本特征。

1.原子性:要么都执行,要么都不执行。
2.一致性:合法的数据才可以被写入,否则事务应该将其回滚到最初状态。
3.隔离性:允许多个用户并发访问。对数据进行修改的多个事务是彼此隔离的。这表明事务必须是独立的,不应该以任何方式以来于或影响其他事务。
4.持久性:事务结束后,事务处理的结果必须得到固化。即一旦提交,对数据库改变是永久的。

十、乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。

  • 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作
  • 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。

 

十一、简单说一说drop、delete与truncate的区别

  • delete和truncate只删除表的数据不删除表的结构
  • 速度,一般来说: drop> truncate >delete 
  • DROP则删除整个表(结构和数据)。TRUNCATE 和DELETE只删除数据。 
  • 应用范围。

        TRUNCATE 只能对TABLE;         DELETE可以是table和view

     

 

十二、什么是视图?以及视图的使用场景有哪些?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

十三、职业规划

因为我刚刚毕业,对社会商业环境还不了解,所以还没制定详细的方案。(这句话实事求是,给人务实的感觉。)但我知道,我需要在这个行业里不断地学习和锻炼,扩充自己的知识面,提升自己的能力,让这份工作变得更有意义。(多踏实,多上进的好孩子!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值