当前位置:Gxlcms > 数据库问题 > MySQL基础

MySQL基础

时间:2021-07-01 10:21:17 帮助过:3人阅读

配置

目录为/etc/mysql/mysql.cnf

/etc/mysql/conf.d/

/etc/mysql/mysql.conf.d/

主要配置:

bind-address 127.0.0.1(默认)

port 3306(默认)

datadir /var/lib/mysql(默认)

general_log_file /var/log/mysql/mysql.log

log_error /var/log/mysql/error.log


可选客户端navicat(图形界面)

tar zxvf navicat....tar.gz

./start_navicat


二、命令模式的操作

mysql -u root -p #登录

quit 退出

show databases;

use databasename1;

select database(); #查看当前使用的数据库

create database databasename1 charset=utf8;

drop database databasename1


三、数据

  1. 常见数据类型 

 int bit 整数

 decimal 小数

 varchar char字符串

 date time datetime 日期时间

 decimal(5,2)表示5位数,小数点后有两位

 varchar(3)和char(3)的区别:后者在填充2位的时候会自动补个空格

2.约束

 primary key:主键,物理上存储的顺序,满足第二范式

 not null:该字段不允许填写空值

 unique: 字段的值不允许重复

 default: 当不填写此值时会使用默认值,如果填写时以填写为准  

 foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,  如果存在则填写成功,如果不存在则填写失败并抛出异常

 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)  时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进  行控制

四、数据库设计

   三范式

  • 经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式

  • 数据库设计中一共有6个范式,一般需要遵守3范式即可

  • 第一范式(1NF):数据库表的每一列都是不可分割的原子数据项,即列不可拆分

  • 第二范式(2NF):建立在第一范式的基础上,要求数据库表中的每个实例或记录必须可以被唯一地区分,即唯一标识

  • 第三范式(3NF):建立在第二范式的基础上,任何非主属性不依赖于其它非主属性,即引用主键

 

  E-R模型

  • E表示entry,实体,设计实体就像定义一个类一样,指定从哪些方面描述对象,一个实体转换为数据库中的一个表

  • R表示relationship,关系,关系描述两个实体之间的对应规则,关系的类型包括包括一对一、一对多、多对多

  • 关系也是一种数据,需要通过一个字段存储在表中

  • 实体A对实体B为1对1,则在表A或表B中创建一个字段,存储另一个表的主键值

 逻辑删除

  • 对于重要数据,并不希望物理删除,一旦删除,数据无法找回

  • 删除方案:设置isDelete的列,类型为bit,表示逻辑删除,默认值为0

  • 对于非重要数据,可以进行物理删除

  • 数据的重要性,要根据实际开发决定


本文出自 “11722546” 博客,请务必保留此出处http://11732546.blog.51cto.com/11722546/1926153

MySQL基础

标签:mysql基础

人气教程排行