- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章MySQL中select语句介绍及使用示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from president; 也可以只选取某一个数据行里的某一个数据列 select birth from president where last_name='Eisenhower'; select语句的通用形式如下: select 你要的信息 from 数据表(一个或多个) where 满足的条件 select语句有几个子句,他们的各种搭配能帮你查出最感兴趣的信息,这些子句可以很简单,也可以很复杂,看看作者是如何详细讲解的 1、用各种操作符来设定检索条件 要想让select语句只把满足特定条件的记录检索出来,就必须给它加上where字句来设置数据行的检索条件。只有这样,才能有选择地把数据列的取值满足特定要求的那些数据行挑选出来。可以针对任何类型的值进行查找,比如说,对数值进行搜索 select * from score where score>95; //显示所有分数在95分以上的信息 也可以针对字符串值进行查找 select last_name,first_name from president where last_name='Tom'; //找出所有姓tom的总统 还可以对不同类型的值进行组合查找 select last_name,first_name,birth,state from president where birth<'1950-1-1' and (state='VA' or state='BA'); //找出1950年前出生于VA州或BA州的总统 可见 where子句中可以使用的是算术操作符(+-*/%),比较操作符(<>=)以及逻辑运算符,我们应该熟练理解这些操作符的含义(都很简单) 2、NULL 值的特别处理 这是一种不属于任何类型的值。它通常用来表示“没有数据”“数据未知”“数据缺失”“数据超出取值范围”“与本数据列无关”“与本数据列的其它值不同”等多种含义。在许多情况下,NULL 值是非常有用的。 我们的各种操作符是不能对NULL 值进行处理的,如果相对NULL 值进行查找,用的是 is null 或 is not null 来进行判断,举例如下: select last_name,first_name,birth,state from president where death is null; //找出所有没死的总统 在某些情况下,NULL 值是很有用的类型,大家慢慢就会理解的。 3、查询结果进行排序 一般说来,如果创建了一个数据表并向里面插入了一些记录,当发出一条select * from name命令的时候,数据记录在查询结果中的先后顺序通常与它们被插入时的先后顺序一样.这当然符合我们的思维习惯.但这只是一种"想当然"的假设而已,事实上,但记录被删除时,数据库中会产生一些空的区域,MYSQL会用新的记录来填补这些区域,也就是说,这个时候本假设就不正确了.因此我们必须记住一点,从服务器返回的记录行的先后顺序是没有任何保证的!如果想要按照一定的顺序,就必须使用order by 子句来设置这个顺序. select last_name,first_name,birth,state from president order by last_name; //让总统们的名字按字母顺序排列 还可以设置排列的升序降序 select last_name,first_name from president order by state DESC,last_name ASC; //先按照出生地的降序排列,同出生地的按照姓氏的升序排列 注意:如果结果中含有NULL 值,默认情况下他们总是出现在查询结果的开头。 4、限制查询结果中数据行个数 这个简单,只要用limit 子句就可以了,看两个例子: select last_name,first_name,birth,state from president order by birth limit 5; //只想看前5个 order by birth limit 10,5; //返回从第11个记录开始的5个记录(跳过了10个) 小技巧:从president表中随机找出一个总统来玩: select last_name,first_name,birth,state from president order by rand() limit 1; //这是用了表达式求值的方法,在哪里都管用 5、对输出列进行求值和命名 为了提高效率,MYSQL还可以把表达式的计算结果当作输出列的值。表达式可以很简单,也可以很复杂。例如:下面这个查询有两个输出列,前一个输出列对应一个非常简单的表达式(一个常数),而后一个输出列则对应着一个使用了多个算术运算符和两个函数调用的复杂表达式。 Select 17,format(sqrt(3*3+4*4),0)) 输出:17 5 再看这个命令:把两个输出列合并成一个 select concat(first_namem,' ‘,last_name),concat(city,',',state) from president; 如果合并之后输出列的标题过长,则可以给其一个别名,如: select concat(first_namem,' ‘,last_name) as name, concat(city,',',state) as birth place from president;这样就比较美观了。 6、和日期有关的问题 首先记住:在MYSQL中,年份是放到最前面的!我们通常对日期进行下列操作: 按日期进行排序 查找某个日期或日期范围 提取日期中的年,元,日各个部分 计算两个日期的间隔 用一个日期求出另外一个日期 看例子: select * from event where date='2002-10-01' //看看这天有何考试信息? select last_name,first_name,birth,state from president where death>'1900-01-01' and death<'2000-01-01'; //看看上个世纪死了几个? 三个函数year,month,dayofmonth可以分别分离出日期中的年月日来。 select last_name,first_name,birth from president where month(birth)=3; //谁生在3月 ? where month(birth)=7 and dayofmonth(birth) =6; //谁生在7月6日?(汤姆克鲁斯?) 函数to_days可以把日期转换为天数。 select last_name,first_name,birth to_days(death)-to_days(birth) as age from president 可以看看这帮家伙都活了多少天!你自己把它改为年吧。 日期值的减法运算还能帮我们计算出现在距离某个特定日期还有多长的时间,这正是我们用来找到需要在近期内缴纳会费的会员的办法: select last_name,first_name,expiration from member where (to_days(expiration)-to_days(curdate())<60; //有些人60天内需要花钱了! 7、模式匹配 有些情况下,模糊查询是很必要的,我们使用like和not like加上一个带通配符的字符串就可以了。共有两个通配符”_”(单个字符)和”&”(多个字符) select concat(first_namem,' ‘,last_name) as name, where last_name like ‘W%'; //找到以W或w开头的人 where last_name like ‘%W%'; //找到名字里面W或w开头的人 8、设置和使用SQL变量 MYSQL 3.23.6以上的版本可以使用查询结果来设置变量,我们就能够方面的把一些结果保存起来以供他用。变量的命名规格是:@name, 赋值语法是 @name:=value ( pascal?) 使用起来也简单: select @birth:=birth from president where last_name ='adsltiger'; //执行完成后我们就就会有一个@birth变量可用 用一下试试: select concat(first_namem,' ‘,last_name) as name from president where birth<@birth order by birth; //看看那些人比我大! *9、生成统计信息 单纯依靠手工来生成统计信息是一项既艰苦又耗时还容易出错的工作,如果我们能熟练掌握用数据库来生成各种统计信息的技巧,他就会成为很有威力的信息处理工具。作者在这里用了许多篇幅讲这个主题,为了便于大家理解,我分解开来论述: 9.1 找出一组数据中到底有多少种不同的值是一项比较常见的统计工作,而关键字distinct就可以把查询结果中的重复数据清除掉。如 select distinct state from president //看看美国总统们都来自那些州?(重复的不计) 9.2用count()函数来统计相关记录的个数,注意其使用方法:count(*)计算所有的,NULL也要;count(数据列名称) NULL值不计算在内。 select count(*) from president; 9.3如果我们想知道班级内的男女生数目?该如何查询呢?最简单的方法是 select count(*) from student where sex='f'; select count(*) from student where sex='m 但是如果使用count函数结合group by关键字,一行命令就搞定了 select sex,count(*) f rom student group by sex; 我们可以看到,与反复使用彼此类似的查询来分别统计某数据列不同取值出现次数的做法相比,把count(*)和group by字句相结合使用有许多优点,主要表现在: 在开始统计自前,不必知道被统计的数据列里面有多少种不同的取值 因为只用了一个查询命令,我们可以对输出做排序的处理 select state,count(*) as count from president group by state order by count desc limt4; //看看出生总统最多的前四个州是哪几个? 9.4除了count(),我们还用其他一些统计函数,如求出最小值的min(),求最大值的max(),求和的sum(),求平均值的avg(),在实际工作中,这些函数时经常用到的! *10、从多个表提取信息 我们目前的例子都是从一个表里面提取信息,但数据库的真正威力还在于用“关系”来综合多个数据表里面的记录,这种操作称之为“关联”或“结合”我们可以看到,select需要给出多个数据表里面的信息(不可重复);from需要知道从哪几个表里面做事;where则对几个表之间的关联信息作出详细的描述。 首先我们要学习最可靠的数据列引用方式:数据表名.数据列名。这样在查询中就一定不会混淆这个数据列到底在哪一个表里。 例子1:查询某一天内的学生们的考试成绩,用学号列出。 select scroe.student_id,event_date,score.score.event.type from event,score where event.date='2003-09-12' and event.event_id=score.event_id 首先,利用event数据表把日期映射到一个考试事件编号,在利用这个编号把score表内相匹配的考试分数找出来。关联两个表,一个查询搞定。 例子2:查询某一天内的学生们的考试成绩,用姓名列出。 select student.name event.name,score.score,event.type form event,score,student where event.date='2003-09-12' and event.event_id= score.event_id and scroe.student_id=student.student_id; 关联三个表,一个查询搞定。 例子3:查询一下缺席学生的名字,学号,缺席次数 select student.student_id,student_name count(absence.date) as absences from student,absence where student.student_id=absence.student_id //关联条件 group by student.student_id,
最后此篇关于MySQL中select语句介绍及使用示例的文章就讲到这里了,如果你想了解更多关于MySQL中select语句介绍及使用示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
目前我正在构建相当大的网络系统,我需要强大的 SQL 数据库解决方案。我选择 Mysql 而不是 Postgres,因为一些任务需要只读(MyISAM 引擎)而其他任务需要大量写入(InnoDB)。
我在 mysql 中使用如下命令。当它显示表格数据时,它被格式化为一个非常干净的表格,间距均匀且 |作为列分隔符。 SELECT * FROM TABLE_NAME; 当我从 CLI 运行命令时,如下
我知道这个问题之前已经被问过好几次了,我已经解决了很多问题,但到目前为止没有任何效果。 MySQL 试图将自身安装到的目录 (usr/local/mysql) 肯定有问题。关于我的错误的奇怪之处在于我
以下是我的 SQL 数据结构,我正在尝试如下两个查询: Select Wrk_ID, Wrk_LastName, Skill_Desc from Worker, Skill where
我们有一个本地 mysql 服务器(不在公共(public)域上),并希望将该服务器复制到我们拥有的 google 云 sql 实例。我的问题是:1.这可能吗?2.我们的本地服务器只能在本地网络上访问
我有一个表(test_table),其中一些字段值(例如字段 A、B 和 C)是从外部应用程序插入的,还有一个字段(字段 D),我想从现有表(store_table)插入其值,但在插入前者(A、B 和
我想创建一个 AWS RDS 实例,然后使用 terraform 管理数据库用户。因此,首先,我创建了一个 RDS 实例,然后使用创建的 RDS 实例初始化 mysql 提供程序,以进一步将其用于用户
当用户在我的网站上注册时,他们会在我的一个数据库中创建自己的表格。该表存储用户发布的所有帖子。我还想做的是也为他们生成自己的 MySql 用户——该用户仅有权从他们的表中读取、写入和删除。 创建它应该
我有一个关于 ColdFusion 和 Mysql 的问题。我有两个表:PRODUCT 和 PRODUCT_CAT。我想列出包含一些标记为:IS_EXTRANET=1 的特殊产品的类别。所以我写了这个
我想获取 recipes_id 列的值,以获取包含 ingredient_id 的 2,17 和 26 条目的值。 假设 ingredient_id 2 丢失则不获取记录。 我已经尝试过 IN 运算符
在 Ubuntu 中,我通常安装两者,但 MySQL 的客户端和服务器之间有什么区别。 作为奖励,当一个新语句提到它需要 MySQL 5.x 时,它是指客户端、服务器还是两者兼而有之。例如这个链接ht
我重新访问了我的数据库并注意到我有一些 INT 类型的主键。 这还不够独特,所以我想我会有一个指导。 我来自微软 sql 背景,在 ssms 中你可以 选择类型为“uniqeidentifier”并自
我的系统上有 MySQL,我正在尝试确定它是 Oracle MySQL 还是 MySQL。 Oracle MySQL 有区别吗: http://www.oracle.com/us/products/m
我是在生产 MySQL 中运行的应用程序的新维护者。之前的维护者已经离开,留下的文档很少,而且联系不上了。 我面临的问题是执行以下请求大约需要 10 秒: SELECT COUNT(*) FROM `
我有两个位于不同机器上的 MySQL 数据库。我想自动将数据从一台服务器传输到另一台服务器。比方说,我希望每天早上 4:00 进行数据传输。 可以吗?是否有任何 MySQL 内置功能可以让我们做到这一
有什么方法可以使用 jdbc 查询位于 mysql 根目录之外的目录中的 mysql 表,还是必须将它们移动到 mysql 根目录内的数据库文件夹中?我在 Google 上搜索时没有找到任何东西。 最
我在 mysql 数据库中有两个表。成员和 ClassNumbers。两个表都有一个付费年份字段,都有一个代码字段。我想用代码数字表中的值更新成员表中的付费年份,其中成员中的代码与 ClassNumb
情况:我有 2 台服务器,其中一台当前托管一个实时 WordPress 站点,我希望能够将该站点转移到另一台服务器,以防第一台服务器出现故障。传输源文件很容易;传输数据库是我需要弄清楚如何做的。两台服
Phpmyadmin 有一个功能是“复制数据库到”..有没有mysql查询来写这个函数?类似于将 db A 复制到新的 db B。 最佳答案 首先创建复制数据库: CREATE DATABASE du
我有一个使用 mySQL 作为后端的库存软件。我已经在我的计算机上对其进行了测试,并且运行良好。 当我在计算机上安装我的软件时,我必须执行以下步骤: 安装 mySQL 服务器 将用户名指定为“root
我是一名优秀的程序员,十分优秀!