数据库概述:
层次模型:树状关系
网状模型:网状关系
关系模型:表格关系
CRUD:
C:Create
R:Read
U:Update
D:Delete
数据库语言分类:
DQL:数据查询语言——R
DML:数据操作语言——CUD
关于数据库的操作:
|——创建数据库: create database 数据库名;
|——查看所有数据库: show databases;
|——使用某个数据库: use 数据库名;
|——删除数据库: drop database 数据库名;
|——查看数据库编码:show variables like ‘character%‘;
关于表的操作:
|——查看当前数据库的所有表:show tables;
|——创建一个表:create table 表名(字段名1 字段类型,字段名2 字段类型,...,字段名n 字段类型);
|——查看表的创建语句:show create table 表名;
|——查看表结构:desc/describe 表名;
|——删除这个表:drop table 表名;
|——修改表名:rename table 原表名 to 新表名;
|——修改表字符集:alter table 表名 character set 字符集;
|——对表中的列进行修改:alter table 表名 ————————————————
添加一列:|——add 字段名 字段类型;
修改某列的数据类型:|——modify 须修改的字段名 修改后的数据类型;
删除某列:|——drop 字段名;
修改列名和类型:|——change 原字段名 新字段名 新字段的数据类型;
对于数据的操作:
|——C:增加一条数据: insert into 表名[(字段名1,字段名2,...,字段名n)] values(数据1,数据2,数据3,...,数据n);
| ##注意:当sql中不写表名后面的字段名列表时,values中的值是根据table中的默认顺序添加的。
|——D:删除一条数据: delete from 表名 where 条件;
| ##删除表内容的两种方式: delete from 表名;(一条条删除) truncate table 表名;(删除整个表,再建新表)
|
|——U:更新一条数据: update 表名 set 字段名=值,字段名=值 where 条件;
|
|
|——R:查询一条数据: select 列名(*代表所有列) from 表名 [where 条件] [order by][group by];
| ##查询模糊数据时,一般使用where 字段名 like ‘_X%‘;其中_代表一个任意字符,%代表多个任意字符
| ##查询区间时,可以使用between, between A and B, 即[A,B]
| ##在一个数字集合中查询时,可以使用in(A,B,C);
一些数据库的基本概念;
————数据完整性
我们要保证三种数据完整性:
元素完整性
域完整性
参照完整性
那么什么是数据完整性呢?实际上就是通过一些约束来保证数据的正常使用,叫做数据完整性。
那么如何保证元素的完整性呢?使用主键约束
那么如何保证域完整性的?使用特定的数据类型和约束,比如NOT NULL 和 unique
那么如何保证参照完整性的?使用外键约束,保证这个表的外键与另一个表的主键相连
如何创建主键:
在创建表的时候使用: 字段 字段的数据类型 primary key;
使用alter 对列的属性进行修改时将主键添加上去
如何创建外键:
alter table 表名 add constraint FK_表名_外键名 foreign key(外键名) references 表名(字段名);
| | | |
约束 约束名规范 参照 对应主键
一些数据库的基本概念
————数据库三大范式
范式的目的是什么?是避免数据冗余
我们在开发过程中往往要遵循数据库的三大范式。
但是有时候为了提高查询速度,在设计数据库时也会有反三范式的情况出现。
1.NF:确保表中的每列不可再分。
2.NF:确保每一行的数据都是唯一的。
3.NF:符合amstrong推理原则。