数据库基础学习1——数据库和表的创建和基本操作
E-R模型
当前物理的数据库都是按照E-R模型进行设计的
E表示entry,实体
R表示relationship,关系
一个实体转换为数据库中的一个表
关系描述两个实体之间的对应规则,包括
一对一
一对多
多对多
关系转换为数据库表中的一个列 *在关系型数据库中一行就是一个对象。也就是在一个表中的某个属性在另外一个表能查询到多少对象。这个要根据我们实际赋予表和属性的意义而定
三范式
经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
第一范式(1NF):列不可拆分
的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性
第二范式(2NF):唯一标识
为了能够完全区每个实体需要为表加上一个列,以存储各个实例的惟一标识
第三范式(3NF):属性没有冗余
每个表的属性最好不要重复(这个是尽量,需要综合实际情况考虑)
基础关键字
字段类型
l 数字:int,decimal
l 字符串:varchar,text
l 日期:datetime
l 布尔:bit
约束
l 主键primary key
l 非空not null
l 惟一unique
l 默认default
l 外键foreign key
数据库操作
记得要加分号!
连接mysql数据库
mysql -uroot –p
创建数据库
create database 数据库名charset=utf8;
显示数据库
show database;
切换数据库
use 数据库名;
显示当前使用数据库
select database();
删除数据库
drop database <数据库名>;
表操作
创建表
create table <表名> (<字段名1> <类型1>[,..<字段名n> <类型n>]);
eg:
create table students (id intauto_increment primary key,
sname varchar(10) not null,
sage int);
展示表
show tables;
查看表结构
desc 表名;
修改表结构
删除表字段
alter table 表名 drop 字段;
添加表字段
alter table 表名 ADD字段 类型 其他;
修改表字段属性
修改表的属性:alter table 表名 modify 字段属性
修属性的值:alter table 表名 alter索引名 set default “值”
修改表字段名称
alter table 表名 CHANGE 原名 新名字 字段属性;
更改表名
rename table 原表名 to 新表名;
数据操作:
添加数据
全列插入:insert into 表名 values(...)
缺省插入:insert into 表名(列1,...) values(值1,...)
同时插入多条数据:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
删除数据
delete from 表名 where 条件
查询数据
select * from 表名 where 条件
修改数据
update 表名 set 列1=值1,... where 条件
删除操作:
对于重要数据,并不希望物理删除,一旦删除,数据无法找回
一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除
大于大量增长的非重要数据,可以进行物理删除
数据的重要性,要根据实际开发决定