美文网首页
MySQL 数据库

MySQL 数据库

作者: kohlgrx | 来源:发表于2018-12-22 19:17 被阅读0次

    一、E-R关系模型

    1、Entry 实体

    2、Relationship 关系

    3、一个实体转换为数据库中的一个表

    4、关系描述两个实体之间的对应规则:一对一,一对多,多对多

    二、数据库的3范式

                1NF :列不可拆分

                2NF:唯一标识

                3NF:引用主键

                说明:后一个范式都是在前一个范式的基础上建立的。

    三、数据完整性

        1、数据字段的类型:int,decimal,char,varchar,text,datetime,bit

            eg:decimal(5,2) 一共包含五位数,小数占两位

            char和varchar的区别:char字符数固定,不够会自动补齐;varchar字符可变

        2、数据字段的约束;primary key,not null,unique,default,foreign key

    五、命令脚本操作

    MySQL命令    

    eg:

        select gender,count(*) from Student group by gender having gender=1;

        select * from Student where gender=1 and isDelete=0 order by desc;

    执行顺序

    六、高级

    1、关系

            foreign key(stuid) references Student(id),建立外键

            外键级联操作

            restrict(限制):默认值,抛异常

            cascade(级联):如果主表的记录删除,则从表中的相关联的记录都被删掉

            set null:将外键设置为空

            no action:啥都不干

    2、连接查询

    3、自关联

            create table areas(

            aid int primary key,

            atitle varchar(20),

            pid int,

            foreign key(pid) references areas(id)

        );

    4、视图

            视图的本质就是对查询的一个封装,用途就是查询

            create view stuscore as                                                                                                                                        select students.*,scores.score from scores inner join students on                                                                        scores.stuid = students.id

    5、事务

            1>当一个业务逻辑需要多个SQL完成时,如果其中的某条SQL语句出错,则希望整个操作都退回,例如:转账问题;

            2>使用事务可以完成退回功能,保证业务逻辑的正确性

            3>四大特性(ASID)原子性,隔离性,一致性,持久性

            4>要求:表的类型必须是innodb或者bdb类型

            查看表的创建语句:show create table students;

            修改表的类型:alter table “表名” engine = innodb;

            事务语句:

            开启 begin;提交 commit;回滚 rollback;

    6、索引

            show index from tablename;

            create index indexname on mytable(username(length))

            drop index [indexname] on table;

    相关文章

      网友评论

          本文标题:MySQL 数据库

          本文链接:https://www.haomeiwen.com/subject/zikwkqtx.html