zoukankan      html  css  js  c++  java
  • MySQL笔记

    ER模型:关系:1-1 1-N M-N (在关系数据库中,不能够直接表示多对多的关系,必须把多对多的关系拆分成两个一对多的关系。从实现的角度上说,多对多的关系必须要用三张数据库的表来实现,其中两张是储存多方实体,比如说学生-课程 学生是一张表 课程是一张表 学生和课程表的主键作为中间表的联合主键)
    记录:如果在表中,是指表中的一行(一条记录)

    MySQL(关系型数据库):RE(实体,关系,属性)=>>1:1 1:n m:n (m实体表n实体表)


    关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。 https://baike.baidu.com/item/数据库范式/7309898?fr=aladdin

    查看MySQL使用的引擎命令: show engines;
    MySQL四种常见的数据库引擎:innodb, myisam,memory,archive.


    MySQL的全局变量:搜https://www.csdn.net/gather_2c/MtTaIgzsOTQxOC1ibG9n.html

    通过explain分析低效率的SQL语句的执行情况 优化

    不等于 : <> <==> !=;
    select * from 表名 where 字段名 like "_ _ _数值开头";

    select * from 表名 where 字段名 like "%数值ii%";
    //只要包括数值i的都能查到


    select address count(id), sum


    1。单标操作的完整语句 2.创建用户的语句
    3。授权和回收权限 4.flush privileges

    help contents; //帮助内容
    You asked for help about help category: "Contents"
    For more information, type 'help <item>', where <item> is one of the following
    categories:
    Account Management //账户管理
    Administration //政府
    Compound Statements //复合语句
    Contents //内容
    Data Definition //数据定义
    Data Manipulation //数据操作
    Data Types //数据类型
    Functions //功能
    Geographic Features //地理特征
    Help Metadata //帮助元数据
    Language Structure //语言结构
    Plugins //插件
    Procedures //程序
    Storage Engines //存储引擎
    Table Maintenance //表的维护
    Transactions //交易
    User-Defined Functions //用户定义函数
    Utility //实用程序


    help show 帮助显示


    日期函数跟字符串函数---help 面试题

    activiti
    作业:创建表,创建用户,授权,取消权限

    @ MySQL创建用户:
    create user 'qq'@'localhost' identified by '666666';
    create user '用户名'@'来源地址' identified by '用户密码';
    create user 用户名 identified by '用户密码';


    @ 删除用户:
    drop user 用户名;
    drop user 'sss'@'%';
    drop user '用户名'@'来源地址'


    @ 重更名及修改主机:
    rename user 原用户名 to 新用户名;
    rename user 's'@'111%' to 'chao'@'192.168.1.1%';
    重更名 user '原用户名'@'原来源地址' to '新用户名'@'新来源地址';


    @ 给用户修改密码:
    set password=password('666666'); //给当前登录的用户修改密码

    set password for 'chao'@'192.168.1.1%'=password('666666');
    //为其他用户修改密码


    @ 给 test 分配所有的权限:
    grant all on *.* to 用户名;
    grant all on *.* to 'test'@'%';
    grant all on *.* to '用户'@'来源地址';
    其中all 可以替换成select,insert,update,delete等


    @ 查看用户权限:
    show grants for '用户名';


    @ 收回 test的所有权限:
    revoke all on *.* from 用户名;
    revoke all on *.* from 'test' @'%';


    @ 刷新权限 :flush privileges;


    @ 查看用户密码权限
    show variables like '%validate%';
    @ 密码安全类型
    set global validate_password_policy=0;
    @ 密码最少长度:
    set global validate_password_length = 1;


    -----------事 务--------------
    @ 事务具有四个属性:ACID
    transaction(事务): ACID(原子性,一致性,隔离性。持久性)

    @ 开始一个事务: begin
    @ 提交一个事务: commit
    @ 回滚一个事务: rollback
    @ 设置自动提交开启: set autocommit=0;
    @ 设置自动提交关闭: set autocommit=1;


    -----------索 引--------------
    @ 创建索引:
    create index suoyin_idx on test(id);
    create index 索引名 on 表名(列名);


    @ 以修改的方式创建索引的语法:
    (1)alter table test add index ss_idx(id);
    alter table 表名 add index 索引名(列名);
    (2)alter table test add unique(id);
    alter table 表名 add unique(列名);
    (3)alter table 表名 add primary key (列名) ;

    @ 显示索引信息:
    show index from testG;
    test=(表名)
    show keys from testG;

    @ 删除索引的语法:
    (1)drop index suoyin_idx on test;
    drop index 索引名 on 表名;
    (2)alter table table_name drop index index_name ;
    alter table 表名 drop index 列名
    (3)alter table table_name drop primary key ;


    函数跟存储过程的区别:

    @ 内连接:
    (1)显示内连接:select t1.*,t2.* from tb ti inner join tb t2 on t1.id=t2.id;
    (2)隐式内连接:select t1.*,t2.* from tb1 t1,tb2 t2 where t1.fk_id=t2.pk_id;

    @ 外连接:
    (1)左外链接:select t1.*, t2.*from tb1 t1 left [outer] jion tb2 t2 on t1.fk_id=t 2.pk_id;
    (2)右外连接:select t1.*, t2.*from tb1 t1 right [outer] jion tb2 t2 on ti.fk_id= t2.pk_id;
    (3)完全链接:select t1.columns... from tb1 t1 union [all] select t2.columns... t b2 t2 where condition_columns

    @ 笛卡尔积(禁止使用)

    @ CRUD(增删改查):insert retrieve update delete;
    (1)查不重复的行: distinct
    (2)select * from t1 where condition group by grp_cloumns having grp_condition order by sorted_


    联合查询(两个表的查询结果相对应的列的类型必须保持一致):select t1.c1,t1.c2 from tb t1 union select t2.c1, t2.c2 from tb t2;


    A)内连接:join,inner join

    B)外连接:left join,left outer join,right join,right outer join,union

    C)交叉连接:cross join


    select * from biao where id not in (select );

    《视图》


  • 相关阅读:
    list1AndCompile
    pickle序列化2
    Servlet简单例子:输出当前日期
    Servlet简单例子:前后端通信
    Java 继承的简单例子
    Java 一个简单的距离工具类
    Java 私有静态成员变量的简单使用
    mysql数据类型
    使用Bootstrap简单案例——导航条+轮播图+模态框+表单
    K-means 聚类
  • 原文地址:https://www.cnblogs.com/yangyongchao/p/12331332.html
Copyright © 2011-2022 走看看