1、数据库简介:
计算机诞生后,数据开始在计算机中存储并计算,并设计出了数据库系统数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性。
当前使用的数据库,主要分为两类:
⑴文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制。
⑵服务型,如mysql、oracle、postgre,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作。
2、E-R模型
当前物理的数据库都是按照E-R模型进行设计的。
E表示entity,实体
R表示relationship,关系
一个实体转换为数据库中的一个表。
关系描述两个实体之间的对应规则,包括一对一,一对多,多对多。
关系转换为数据库表中的一个列在关系型数据库中一行就是一个对象。
3、三范式
经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式。在一定程度上,为了提高访问性能,可以允许一定的冗余。
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
第一范式(1NF)
所谓第一范式(1NF)是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
简而言之,第一范式就是无重复的域。
第二范式(2NF)
在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。
简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。
第三范式(3NF)
在1NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。
简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。
说明:后一个范式,都是在前一个范式的基础上建立的.
4、在linux中安装mysql
安装MySQL服务端和客户端,在终端中运行,然后按照提示输入
sudo apt-get install mysql-server mysql-client
启动
service mysql start
停止
service mysql stop
重启
service mysql restart
查询服务是否启动
netstat -tap | grep mysql
允许远程连接,将bind-address=127.0.0.1注释
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
登录mysql,运行命令
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
(记得输入自己的密码,.:第一个代表数据库名;第二个代表表名。
这里的意思是所有数据库里的所有表都授权给用户。
root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。
“password”:分配账号对应的密码,这里密码自己替换成你的mysql root帐号密码。)
刷新权限信息,也即是让我们所作的设置马上生效。
flush privileges
重启mysql
service mysql restart
5、mysql卸载管理
删除mysql的数据文件
sudo rm /var/lib/mysql/ -R
删除mqsql的配置文件
sudo rm /etc/mysql/ -R
自动卸载mysql的程序
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
6、脚本命令操作
sql语句分为两大类:
⑴dml:对表的数据内容进行增删改查
⑵ddl:除了dml之外
mysql -hip -uname -ppassword
mysql -uroot -p
回车后输入密码
image.png退出登录
quit或exit
image.png
查看版本
select version();
显示当前时间
select now();
7、远程连接
一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库。
运行命令:
mysql -hip地址 -uroot -p
-h后面写要连接的主机ip地址
-u后面写连接的用户名
-p回车后写密码
8、图形窗口操作
⒈使用图形窗口连接mysql
windows下的navicat点击“连接”弹出窗口,按照提示填写连接信息,如下图:
⑴连接成功后,会在连接名称下面显示出当前的数据库
⑵双击选中数据库,就可以编辑此数据库
⑶下次再进入此软件时,通过双击完成连接、编辑操作
⒉数据库操作
在连接的名称上右击,选择“新建数据库”,弹出窗口,并按提示填写。
在数据库上右击,选择“删除数据库”可以完成删除操作
⒊表操作
1)当数据库显示为高亮时,表示当前操作此数据库,可以在数据中创建表。
2)一个实体对应一张表,用于存储特定结构的数据。
3)点击“新建表”,弹出窗口,按提示填写信息。
1)主键的名称一般为id,设置为int型,无符号数,自动增长,非空
2)自动增长表示由mysql系统负责维护这个字段的值,不需要手动维护,所以不用关心这个字段的具体值
3)字符串varchar类型需要设置长度,即最多包含多少个字符
4)点击“添加栏位”,可以添加一个新的字段
5)点击“保存”,为表定义名称
4、数据操作
表创建成功后,可以在右侧看到,双击表打开新窗口,如下图
在此窗口中可以增加、修改、删除数据
5、逻辑删除
1)对于重要数据,并不希望物理删除,一旦删除,数据无法找回。
2)一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除。
3)大于大量增长的非重要数据,可以进行物理删除。
4)数据的重要性,要根据实际开发决定。
网友评论