MySQL在多表上创建视图方法
MySQL中,在两个或者以上的基本表上创建视图
在student表和stu_info表上,创建stu_class视图,查询出s_id号、姓名和班级
首先,创建stu_info表,并向表中插入数据
查看表中的数据
创建stu_class视图
查看视图
可以看出,创建的视图包含id、name和class字段
其中,id字段对应student表中的s_id字段,name字段对应student表中的name字段,class字段对应stu_info表中的class字段
相关推荐
-
mysql多表连接查询实例讲解
实际的项目,存在多张表的关联关系.不可能在一张表里面就能检索出所有数据.如果没有表连接的话,那么我们就需要非常多的操作.比如需要从A表找出限制性的条件来从B表中检索数据.不但需要分多表来操作,而且效率也不高.比如书中的例子: 代码如下: SELECT FId FROM T_Customer WHERE FName='MIKE' 这个SQL语句返回2,也就是姓名为MIKE 的客户的FId值为2,这样就可以到T_Order中检索FCustomerId等于2 的记录: 代码如下: SELECT FNu
-
MySQL多表链接查询核心优化
概述 在一般的项目开发中,对数据表的多表查询是必不可少的.而对于存在大量数据量的情况时(例如百万级数据量),我们就需要从数据库的各个方面来进行优化,本文就先从多表查询开始.其他优化操作,后续另外更新,敬请关注. 数据背景 现假设有一个中学学校,学校中的年级有一年级.二年级.三年级,每个年级有两个班级.分别为101.102.201.202.301.302. 现在我们要为这个学校建立一个考试成绩统计系统.为此,我们对数据库的设计画了如下ER图: 根据ER图,我们设计了数据表,结构如下: class
-
mysql存储过程基础之遍历多表记录后插入第三方表中详解
前言 自从学过存储过程后,就再也没有碰过存储过程,这是毕业后写的第一个存储过程. 因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难.最近正好要开发一个功能模块,就是需要统一对设备进行处理,想着为了以后都能方便的统一处理各种设备,就从现在开始设计一套方案管理起这些项目吧. 如何统一管理呢? 如果从项目一开始设计的时候就能考虑到项目会发展成今天这样,当初就应该抽取公共父类,对所有类型的所有公共字段进行统一抽取,这样无论添加多少模块,
-
MySQL中基本的多表连接查询教程
一.多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: 由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢.一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN 2. 内连接INNER JOIN 在MySQL中把I SELECT * FROM table1 CROSS JOIN tabl
-
浅谈mysql中多表不关联查询的实现方法
大家在使用MySQL查询时正常是直接一个表的查询,要不然也就是多表的关联查询,使用到了左联结(left join).右联结(right join).内联结(inner join).外联结(outer join).这种都是两个表之间有一定关联,也就是我们常常说的有一个外键对应关系,可以使用到 a.id = b.aId这种语句去写的关系了.这种是大家常常使用的,可是有时候我们会需要去同时查询两个或者是多个表的时候,这些表又是没有互相关联的,比如要查user表和user_history表中的某一些数据
-
mysql delete 多表连接删除功能
单个表的删除: DELETE FROM tableName WHERE columnName = value; 删除表内的所有行: 即:保留表的结构.属性.索引 DELETE FROM tablename; DELETE * FROM tablename; 删除同一张表内的所有内容(删除数据.表结构) TRUNCATE customer; 无法报告删除了几行,且只能用于单一表 多表连接删除: DELETE orders,itrms FROM orders,items WHERE orders.u
-
MySQL中Update、select联用操作单表、多表,及视图与临时表的区别
一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 update data d,chanpin c set d.zhulei=c.zhulei,d.xiaolei=c.xiaolei,d.fenxiang=c.fenxiang,d.zhuanye=c.zhuanye,d.jiliang=c.jiliang,d.gs=c.zgs,d.xzgs=c.zgs,d.
-
MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所要求的数据记录.连接查询分为内连接查询和外连接查询. 在具体应用中,如果需要实现多表数据记录查询,一般不使用连接查询,因为该操作效率比较低.于是MySQL又提供 了连接查询的替代操作,子查询操作. 1.关系数据操作: 在连接查询中,首先需要对两张或两张以上的表进行连接操作.连接操作是关系数据操作中
-
MySQL在多表上创建视图方法
MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号.姓名和班级 首先,创建stu_info表,并向表中插入数据 查看表中的数据 创建stu_class视图 查看视图 可以看出,创建的视图包含id.name和class字段 其中,id字段对应student表中的s_id字段,name字段对应student表中的name字段,class字段对应stu_info表中的class字段
-
Mysql update多表联合更新的方法小结
下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法 student表 class表 1. 执行 UPDATE student s , class c SET s.class_name='test00',c.stu_name='test00' WHERE s.class_id = c.id student表 class表 2. 执行 UPDATE student s JOIN class c ON s.class_id = c.id SET
-
MySQL横纵表相互转化操作实现方法
本文实例讲述了MySQL横纵表相互转化操作实现方法.分享给大家供大家参考,具体如下: 先创建一个成绩表(纵表) create table user_score ( name varchar(20), subjects varchar(20), score int ); insert into user_score(name,subjects,score) values('张三','语文',60); insert into user_score(name,subjects,score) value
-
MySQL实现MYISAM表批量压缩的方法
本文实例讲述了MySQL实现MYISAM表批量压缩的方法.分享给大家供大家参考,具体如下: 关于对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档: http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html. 这两个操作需要谨慎使用,在压缩之前需要确认mysqld已关闭或者要压缩的表
-
mysql删除关联表的实操方法
mysql数据库中,表与表之间进行关联之后,就不可随意的进行删除操作,否则会影响所有关联表之间的结构,那么如何安全的删除关联表呢,让我们来了解一下. 删除表的外键约束 外键是一个特殊字段,其将某一个表与其父表建立关联关系.在创建表的时候,外键约束就已经设定好了.去掉他们之间的关联关系需要用到下面语句. alter table 表名 drop foreign key 外键别名: 外键别名参数指创建表时设置的外键代号. 2.删除没有被关联的普通表 drop table 表名: 删除一个表时,表中的所
-
MySQL查看数据库表容量大小的方法示例
本文介绍MySQL查看数据库表容量大小的命令语句,提供完整查询语句及实例,方便大家学习使用. 1.查看所有数据库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema
-
MySQL远程连接不上的解决方法
之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服务器上又遇到这个问题,记录一下解决过程. 1.排除网络或防火墙问题 先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题.然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙. 配置防火墙,开启3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW
-
MySQL无法读表错误的解决方法(MySQL 1018 error)
一.错误重现 可以进入MySQL数据库,但是无法读取数据库表,报错如下:访问数据库,莫名其妙的报1018错误:ERROR 1018 (HY000): Can't read dir of './cnapscips/' (errno: 13). 二.解决方案 查看MySQL的数据目录,一般无法读取表都是复制过来的数据库,即使root用户也无法读取表,需要修改目录权限. 修改目录权限,使用命令:chown -R mysql:mysql /var/lib/mysql/cnapscips (root用
-
mysql查找删除表中重复数据方法总结
在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下. 先看下我们的表数据,有一些数据是重复的. 要查找重复数据,我们可以使用mysql里的having语句,如图. 执行这个语句后,我们可以看到现在的结果里显示的就是表中重复数据的字段. 要删除这些重复的数据,我们找出这些数据的ID,在select语句里,添加id字段,使用max函数,可以得到重复数据最后面的id. 执行结果如图,得到重复数据的id为8和9. 这样我们就可以使用de
-
MySQL如何创建视图
基本语法 可以使用 CREATE VIEW 语句来创建视图. 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下. <视图名>:指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图. 对于创建视图中的 SELECT 语句的指定存在以下限制: 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和
随机推荐
- python 正则式使用心得
- 各浏览器padding、margin的差异
- javascript JSON操作入门实例
- SQLserver 2005文件和文件组的作用说明
- apache下.htaccess的功能及写法
- 原生javascript实现addClass,removeClass,hasClass函数
- 经典算法:基数排序的小例子
- asp.net访问网络路径方法(模拟用户登录)
- MySql中把一个表的数据插入到另一个表中的实现代码
- 调试Javascript代码(浏览器F12及VS中debugger关键字)
- linux下bind9安装配置一例
- python爬虫框架scrapy实战之爬取京东商城进阶篇
- 十三、WIN2000下的xcopy可以复制文件的安全设置
- 访问php时提示内存位置访问无效的解决办法和思路分析
- 全面解析Android的开源图片框架Universal-Image-Loader
- 详解C++中的成员访问运算符和指针到成员运算符
- 在vue项目中使用element-ui的Upload上传组件的示例
- Python实现的连接mssql数据库操作示例
- React父子组件间的传值的方法
- vue实现搜索功能