MYSQL__1

来源:互联网 发布:手机淘宝6.2.1版本 编辑:程序博客网 时间:2024/05/29 11:58
MySQL复习
一.相关概念(最重要的)
1.什么是数据库?(什么叫数据data,数据库database,数据库管理系统DBMS(MySQL、DB2、SQL SERVER、Oracle、access、Sybase、vbasic,vfoxfro))
2.数据库的建模:层次模型(学校<学校--学院--系--专业--班级(教研组)>,网状模型(主要用于表非常少的情况,主要用于存储数据)),关系模型(最常用,冗余度最小),自定义模型
3.关系模型(表和表之间有联系)
(1)表的概念:描述的一个实体(集)或一个关系(类似于oop中的类class),抽象的。表的作用主要就是存储数据
表是一个标准的二维表(列:字段、属性   行:一行是一个整体 记录 元组)
(2)表和表之间的关系
<1>1:1 表A中有且仅有一条记录与表b中的一条记录相对应,反过来表B中的一条记录仅对应表a中的一条记录
<2>1:n 表A中有且仅有一条记录与表b中的多条记录相对应,反过来表B中的多条记录仅对应表a中的一条记录
<3>m:n 表A中一条记录与表b中的多条记录相对应,反过来表B中的一条记录与表a中的多条记录相对应(主键:创建在多个字段上)
(3)表之间关系的实现:通过关键字段(关键字,码,key)
主键(主要关键字段primary key):主键可以定义在一列或多列上,主键可以唯一的标识一行记录(不能为null并且记录不能有重复的)。
外键(外部关键字段foreign key):如果在表A中存在与表B的主键相对应的列,那么这一(些)列就可以叫做表A的外键。

(4)数据库开发流程
<1>需求分析
<2>数据库的逻辑实现(构思框架E-R图(实体-关系))
<3>数据库的物理实现(语句、工具做出数据库)
<4>优化

(5)怎么样评价一个数据库的好坏??
范式(nf):列不重,列不分(避免存在计算得到的列(age)),关系完整(主、外键)

二、建库
create database dbname
character set 字符集
collate 校验规则;

三、建表(字段的数据类型,建表的规则,约束)
use dbname
create table table_name
(col_name col_type not null auto_increment,col_name2 col_type default default_value,....,
primary key(col_name,...),unique (col_name,...)
);
alter table table_name//修改表
[add col_name type [first/after]]//添加列
[drop column col_name]//删除列
[change col_name col_newname new_type [default][first/after]]
[modify col_name new_type]//修改列的属性
add constraint con_name con_type[primary key/unique/foreign kye] col_name  (references tab_name(col_name))//添加约束

desc table_name;//显示表的结构
show create table tablename;//查看创建表的语句
show index from table_name;//查看表中索引(约束)信息
show tables;
show variables like "";//显示相关系统变量
原创粉丝点击