首页 > 代码库 > MySQL基础
MySQL基础
一、安装篇:
sudo apt-get install mysql-server #下载 (sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 ) ) sudo service mysql start #启动服务 sudo service mysql restart #重启服务 sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common ##卸载服务 dpkg -l |grep ^rc|awk ‘{print $2}‘ |sudo xargs dpkg -P #彻底清理
离线包安装
group add mysql
mkdir /home/mysql
useradd -g mysql -d /home/mysql mysql #添加用户
copy mysql-5.0.45-linux-i686-icc-glibc23.tar.gz到/usr/local目录
tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz
ln -s mysql-5.0.45-linux-i686-icc-glibc23 mysql
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql (一定要在mysql目录下执行,注意输出的文字,里边有修改root密码和启动mysql的命令)
./bin/mysqladmin -u root password ‘passw0rd‘ #修改root密码
配置
目录为/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
三、数据
常见数据类型
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基础