热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql高效编程阅读摘要--基础篇_MySQL

mysql高效编程阅读摘要--基础篇
bitsCN.com

mysql高效编程阅读摘要--基础篇

一,多个表的连接

1,内连接--表间的主键与外键进行相连,只取出键值一致的数据。

select user.name,order_basic.oid from order_basic inner join user on order_basic.uid = user.uid;

添加表的别名:select u.name,o.oid form order_basic as o inner join user as u on o.uid = u.uid;

//当域名太多时,以及外表的名称本身比较长时可以可以使用别名。

2,外连接--使用外连接可以取出只在一方表中存在的数据。分为左外连接和右外连接。

select u.name,o.oid from user as u left outer join order_basic as o on u.uid = o.uid;

//没有任何订单信息的用户也会被检索出来。--左外连接

select u.name, o.oid from user as u right outer join order_basic as o on u.uid p o.uid;

//没用用户的订单信息也会被取出来--右外连接

连接向哪边,哪边的信息更全!!内连接时抽取两表间键值一致的记录,而外连接时以其中一个表的全部记录为基准进行检索!!

3,多个表之间的连接

select ob.oid,ob.odate,p.pname,p.price,od.quantity,u.name from

(

(order_basic as ob inner join order_detail as od on ob.oid = od.oid)

inner join product as p on od.pid=p.pid

)inner join user as u on ob.uid = u.uid;

二,在其他查询的基础上进行数据检索

1,基本子查询

select * from product where price > (select avg(price) from product);

2,多个返回值的子查询

select name,address from user where uid not in (select uid from order_basic where odate='2010-07-24');

//返回在这一天没有下单的用户数据

3,子查询与exists运算符

select name,address from user where exists (select * from order_basic where user.uid = order_basic.uid)

//相关子查询户对基础表的每一条记录进行子查询的动作,如果基础表的数据量太大时会给数据库服务器带来很大的负荷,使用时要特别小心

三,表的维护和改造

1,alter table 命令

alter table ...modify 修改列的定义

alter table ...add 添加列

alter table ...change 修改列的名称和定义

alter table ...drop 删除列

alter table visitor modify name varchar(20)---修改列的类型,但通常情况下如果已经存在列数据是不宜修改类型的

alter table visitor add age int;添加了一个新的age列

alter table visitor add age int after name 在任意位置添加列

alter table visitor add age int first 在表开头处加新列

alter table visitor modify age int after name 改变列的位置

alter table visitor change birth birthday DATE 修改列名称和类型

alter table visitor drop age 删除列

2,复制表和删除表

create table customH select * from custom;这样的复制将表结构和数据同时复制过来了

create table customG like custom 只复制表的列构造

insert into customG select * from custom; 将数据复制到新建的表中【可以添加where和limit限制来获取数据】

drop table customG / drop table if exists customG

bitsCN.com
推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
author-avatar
卢代马OR撸代码
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有