新闻资讯

公司名称:蓝冠娱乐集团

公司地址:湖南省湘潭市蓝冠娱乐集团

公司邮箱:679596@qq.com

公司电话:400-123-3332

招商QQ: 679596

公司网址:http://www.xmhcqyy.com

当前位置:主页 > 新闻资讯 >

新闻资讯

首页-「摩杰登录」-首页

作者:管理员 发布时间:2020-08-21 08:10:55 文字:【大】【中】【小】

  首页-「摩杰登录」-首页集团董事:【QQ679596】【微信kcwl996】这里把自己学的mysql数据库的知识总结一下,当是给自己复习一遍,也是方便以后查询

  mysql -u用户 -p密码 数据库名 xx.sql;导入数据库文件(也可以选择登录进去,在选择数据库后,使用source命令导入数据)

  注意:如果超过3个表联合操作,如果其中两个表操作时已经改变了表结构,应该将这两个表操作的结果作为一个临时表再与第三个表联合操作。

  典型案例员工与部门,一个部门对应于多个员工,一个员工对应于一个部分,所以要在员工表中设置部门id列,并设置为外键,与部门表id关联。

  案例博客园用户与博客,不是每个用户都写博客,写博客的用户与拥有的博客地址一一对应,所以在博客用户表user中设置blog_id,设置成外键和唯一索引,与博客表blog中id关联

  典型案例电脑与用户,一个用户可以使用多台电脑,一台电脑对应多个用户,多对多,此时一般选择新建一个表contact,在其中设置两个外键,同时关联用户表id与电脑表id

  sql注入就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

  假设我们输入用户名和密码,然后登录数据库,在数据库中查找用户和密码是否存在,存在即登录成功,否则登录失败

  视图是一种虚拟存在的表,本身不包含数据,作为一个select语句保存在数据库中。通俗的讲视图代表的是一条select语句产生的结果集。

  视图单独不能插入,修改数据,因为视图是虚拟的。但可以修改select语句,改变视图结果集。

  哈希索引会产生一张索引表,把数据通过算法换算成哈希值,索引表存储这些哈希值,并在表中保存指向数据的指针,值得注意的是索引表存储哈希值时打乱了原有的存储顺序。哈希索引查找一条数据时特别快速,优于BTree索引,但因为打乱了原有的数据顺序,不支持范围查找与排序功能。

  B+Tree所有索引数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都有指向相邻叶子节点的指针。BTree索引查找单条数据的速度不如哈希索引,但是更加适用于范围查找与排序,所以用的最为广泛,引擎innodb与MyIsam都使用了BTree索引。

  答:不是的,索引越多,占据的物理空间越大;索引只是加快了查询速度,而减缓了插入和修改速度。

  定义:在MYSQL中,事务其实是一个最小的不可分割的工作单元,事务能保证一个业务的完整性。

  场景:在开发中,有多条语句可能会有同时成功的要求,如果只有一部分成功,则全部失败,回滚到原来的状态。

  通过select @@autocommit;语句查询自动提交是否开启,1表示开启,0表示没有开启

  当查询结果为1时,自动提交开启,执行sql语句(insert into,alter),系统默认提交确认,在物理表生效

  当查询结果为0时,自动提交关闭,执行sql语句,系统会等待用户手动提交确认(commit;),否则可以撤回修改,回滚为原状态(rollback;)

  一般@@autocommit我们默认开启,否则每次都需手动提交太麻烦,但当我们想开启一个事务时应该怎么做?

  C 一致性:在一个事务中,事务前后数据的完整性必须保持一致,sql语句要么全部成功,要么失败,回滚到原状态。如银行转账,总的钱数不变

  脏读:事务1读到了事务2未提交的数据,如果事务2rollback,这些数据便是脏数据

  不可重复读:事务1对同一数据重复读,但是另一个事务不断修改这些数据,造成事务1每次读到的数据不一样

  幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户在新开启的事务中发现表中还有没有修改的数据行,就好象发生了幻觉一样(用户1开启事务查看数据,然后同时有用户2开启事务对数据修改并提交,用户1在当前事务没有发现数据改变,结束事务,然后在新开启的事务中发现了新修改的数据,这像幻觉)

  左连接:左边数据全显示,右边表只显示符合条件的数据,如果右边没有相符数据或满足的数据少于左边数据行,以null代替(记录不足的地方以null代替)

  delete删除表中数据,可以加where字句,delete删除整个表数据时,再插入自增id不会从1开始

  红黑树:树的高度随数据量而变,IO代价高(数据量过大时,树的深度越高,IO读写越频繁)

  Btree:数据很大时,不可能放在内存,所以放在磁盘上,BTree 每层节点数多,层数少,减少了IO读写次数,查询结果更加稳定

  主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个表只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

  char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度

  表级:直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许

  行级:仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。

echo "";