###
今日语:放空自己
say say easy,do do hard
#####一、数据库的简介
数据库是什么,怎么玩?简单介绍一下~
1.数据库(Database)是按照数据结构来组织、存储和管理数据的仓库(db和dbms)
2.数据库的分类:即关系型数据库和非关系型数据库。而我们今天来说的Mysql就是典型的
关系型数据库
1>关系型数据库的特点:将数据保存在不同的表中,再将这些表放入数据库中,而不是将所有数据统一放在数据库里。
2>优点:这样不仅增加了Mysql的读取速度,灵活性和可管理型也得到了很大的提高,访问以及管理Mysql数据库的最常用标准化语言为SQL结构化查询的语句,竟而让数据持久化存储在硬盘中;
3>表示:
这样用图形能更形象描述出关系型数据库的特点,我们理解起来也方便多了,不用纠结那么长的概念了。
3.关系型数据库的设计规则:遵循ER模型和三范式
1>ER模型:
E | entity|代表实体的意思 |对应到数据库当中的一张表
——– | —
R | relationship|代表关系的意思
2>三范式:1、列不能拆分 2、唯一标识 3、关系引用主键
二、数据表的设计
1.原理:在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的
类型、约束
。1)
字段类型
在mysql中包含的数据类型很多,这里主要列出来常用的几种
数字:int,decimal(小数的);
例如decimal(5,2)的意思是,最大5位数,其中小数2位,1.2和2.33都行,但10000.21就不行,超出位数了
字符串:char ,varchar,text
text存储比较多的字符串,比如商品的描述信息 char存储的是固定的字符串数据 varchar存储的是可变的数据 存储的是字符
char(8)存储的数据不满8个字符会在右侧自动补上空格字符–>”abcd ”
使用场景
存手机号码固定的就可以使用char(11)
varchar(8)存储数据不满8个字符,不会自动空格字符–>“abcd”
例如:存姓名用varchar(8)
日期:datetime,date,time 1987-07-24
布尔:bit(比如性别,数据是否删除)
- bit(8)八个二进制位
- 存储性别的时候:
- 存储0或者1开销少
- 如果存储male和female开销大
- 两个状态存储的时间建议使用存储0和1方式
2)
约束–主键、非空、惟一,默认值,外键,自动增长
- 约束就是限制的条件
- 主键primary key;不能重复,唯一标识,物理的存储方式,速度快
- 非空not null;比如要姓名不能为空,当保存为null的时候就会报错。
- 惟一unique;这个值是唯一的。有重复的了会报错(比如身份证)
- 默认default;如果不写就会有个默认值,这种叫默认,只有类型。
- 外键foreign key
三、数据库的安装
安装MySQL服务端和客户端
>1.检查mysql安装情况
ps -ajx|grep mysql 查看进程方式查看
Mysql -uroot -p你的密码 进入mysql代表安装成功
sudo service mysql start 开启服务
sudo service mysql stop 停止服务
Sudo service mysql restart 重启服务
2>1、 进入数据库
mysql –u用户名 –p你的密码
2、 查看所有的数据库
show databases
3、使用mysql数据库
use mysql
4、查看mysql库中所有的表
show tables
5、在user 这个表里面查看用户和用户权限字段
select user,host from user;
6、为数据库创建新用户并且赋予权限允许外部链接
grant all privileges on *.* to 用户名@"%" identified by "用户名密码" with grant option;
7、 删除原来初始创建的root用户
delete from user where user=’root’ and host = ‘localhost’;
8、刷新数据库特权
flush privileges;
9、打开配置文件,将bind_address修改为0.0.0.0
sudo vi /etc/mysql/mysql.conf.d/mysqld.conf
10.重启mysql服务,使用windows下客户端进行连接
3>
数据库命令行操作
1.
查看所有数据库
show databases;
2.切换数据库
use [数据库名];
3.
创建数据库
create database [数据库名] ;
4.删除数据库
drop database [数据库名];
5.对表的操作
查看所有表
show tables;
6.创建表
create table [表名](字段1 类型1 约束1,字段2 类型2 约束2);
7.删除表
drop table [表名]
8.修改表名字
rename table [表名] to [新名]
对字段的操作
9.查询字段(表结构)
desc [表名]
10.增加表的字段
alter table [表明]add [字段名 类型 约束]
11.删除字段
alter table [表名]drop[字段名]
12.修改字段
alter table [表名] change [字段名] [新字段名 类型 约束]
① 、alter table students change id id int;
②、alter table students drop primary key;
对数据的操作
13.增加数据
插入一个全字段
insert into students values(0,’xxx’,31,1)
插入多个全字段
insert into students values(0,’liudehua’,24,0),(0,’yangmi’,31,0)
插入一个部分字段
insert into students(id,name) values(0,’zhaoliying’)
插入多个部分字段
insert into students(id,name) values(0,’liushishi’),(0,’linzhiling’)
14.删除某一条
delete from students where id=1;
15.清空
delete from students;
16.修改数据
update student set name=’xxx’ where name=’liudehua’
17.查找所有数据
select * from students
18.数据库备份和恢复
备份: sudo mysqldump –u数据库名 –p数据库密码 备份文件夹名> ~/Desktop/文件夹名back.sql
恢复:进入mysql先要创建一个新的数据库,注意字符集
然后退出mysql
sudo mysql –u数据库名 –p数据库密码 < ~/Desktop/备份文件夹名back.sql