mysql数据库,是当前应用非常广泛的一款关系型数据库
当前使用的数据库,主要分为两类
1.文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制
2.服务型,如mysql、postgre,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作
E-R模型
当前物理的数据库都是按照E-R模型进行设计的
E表示entry,实体
R表示relationship,关系
一个实体转换为数据库中的一个表
关系描述两个实体之间的对应规则,包括
1.一对一
2.一对多
3.多对多
关系转换为数据库表中的一个列在关系型数据库中一行就是一个对象
三范式
经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
1.第一范式(1NF):列不可拆分
2.第二范式(2NF):唯一标识
3.第三范式(3NF):引用主键
说明:后一个范式,都是在前一个范式的基础上建立的
约束:
1.主键primary key
2.非空not null
3.惟一unique
4.默认default
5.外键foreign key
数据库操作
·创建数据库
create database数据库名charset=utf8;
·删除数据库
drop database数据库名;
·切换数据库
use数据库名;
·查看当前选择的数据库
select database();
表操作
·查看当前数据库中所有表
show tables;
·创建表
auto_increment表示自动增长
create table表名(列及类型);
如:
create table students(
id int auto_incrementprimary key,
sname varchar(10) not null
);
·修改表
alter table表名add|change|drop列名类型;
如:
alter table students add birthdaydatetime;
·删除表
drop table表名;
·查看表结构
desc表名;
·更改表名称
rename table原表名to新表名;
·查看表的创建语句
show create table '表名';
数据操作
·查询
select * from表名
·增加
全列插入:insert into表名values(...)
缺省插入:insert into表名(列1,...) values(值1,...)
同时插入多条数据:insert into表名values(...),(...)...;
或insert into表名(列1,...) values(值1,...),(值1,...)...;
·主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
·修改
update表名set列1=值1,... where条件
·删除
delete from表名where条件
·逻辑删除,本质就是修改操作update
alter table students add isdelete bit default 0;
如果需要删除则
update students isdelete=1 where ...;
备份与恢复
Ø数据备份
·进入超级管理员
sudo -s
·进入mysql库目录
cd /var/lib/mysql
·运行mysqldump命令
mysqldump –uroot –p数据库名> ~/Desktop/备份文件.sql;
按提示输入mysql的密码
Ø数据恢复
·连接mysqk,创建数据库
·退出连接,执行如下命令
mysql -uroot –p数据库名< ~/Desktop/备份文件.sql
根据提示输入mysql密码
1.1.1总结
·数据库解决的问题,E-R模型,三范式
·图形界面操作数据库、表、数据
·命令行操作数据库、表、数据
1.1.2作业
·完善学生表、科目表及数据
·设计两张表,要求是一对多的关系
1.2查询
简介
·查询的基本语法
select * from表名;
·from关键字后面写表名,表示数据来源于是这张表
·select后面写表中的列名,如果是*表示在结果中显示表中所有列
·在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
如果要查询多个列,之间使用逗号分隔
网友评论