1.关系型数据库都是基于E(Entry)-R(Relationship)关系模型;
2.数据库设计的三范式:第一范式------列不可拆分;第二范式------唯一标识;第三范式------引用主键;
3.mysql中的字段类型:数字:整数为int,浮点数为decimal(需要指定总位数和小数位长度),
字符串:定长不可变:char,定长可变:varchar,(这两个需要指定好长度)不定长:text
日期时间:datetime
布尔:bit
4.约束:主键(primary key),非空(not null),唯一(unique),默认(default),外键(foreign key)
5.逻辑上实现删除:将不需要的数据可以用bit(一般为isDelete)进行标识,实现物理上存在,但逻辑上可以选择不显示,达到删除效果;
6.创建表的属性时,主键一般设置为自动增长;部分属性需要改默认长度和默认值;
7.登录mysql:mysql 【-h(ip地址)】-uroot -p,-h用于远程连接,后面加上目标ip地址,账号名一般为root;
8.数据库的操作命令后面都要有“ ; ”;
9. 数据库的操作:创建:create database 数据库名 charset=utf8;
删除:drop database 数据库名;
切换:use 数据库名;
查看当前数据库:select database() ;
显示所有数据库:show databases;
10.表的操作:创建:create table 表名(列及类型);:(auto_increment表示自动增长)
例如:create table student(id int auto_increment primary key,
xx xxxx xxxxx......);
修改:alter table 表名 add|change|drop 列名 类型;
查看当前数据库的所有表:show tables;
删除表:drop table 表名;
查看表的结构:desc 表名;
更改表名称:rename table 原表名 to 新表名;
查看表的创建方式(系统提供,一般比较繁冗):show create table 表名;
11.数据的操作:查询:select * from 表名
增加:分为全列插入(凡表中列均要给出值)和缺省插入(指定列给值其余默认):
全列插入:单条数据:insert into 表名 values(......);
多条数据:insert into 表名 values(......),(......)......;
缺省插入:单条数据:insert into 表名(列1,......) values(值1,......);
多条数据:insert into 表名(列1,......) values(值1,......),(值1,.......).......;
修改:update 表名 set 列1=值1,... where 条件
删除:删除有物理删除和逻辑删除(如上述):物理删除:delete from 表名 where 条件;
逻辑删除一般先添加删除属性,再对数据的删除状态进行修改==修改表+数据;
12.数据库的备份和恢复:备份(此处只为例子):获取管理员权限:sudo -s
进入mysql库目录:cd /var/lib/mysql
运行mysqldump命令:mysqldump -uroot -p 数据库名 > ~/Desktop/备份名.sql;
恢复:连接mysql并创建数据库;
运行mysql命令:mysql -uroot -p 数据库名 < ~/Desktop/备份名.sql