说出来你可能不信,今天我们走到了Mysql学习的第四天,终于开始最重要的查询语句部分的学习了。
今天的学习内容非常的多,涉及的都是查询最基本的操作,学完之后对于sql语言的查询有了一个基本清晰的认识。
首先,我们搞清楚sql语言中最重要的一个关键字,就是select。几乎所有的查询语句都会首先用到select开头,所以它是最重要的一个关键字。
说完最重要的关键字,我们就开始我们的查询吧。
目前我学到的内容里,我会把它们分为基础查询,条件查询,模糊查询,排序查询,范围查询和统计查询。
首先我们来看基础查询,它是指对表格做的最基础的查询的查询工作。有以下这些语句:
1.select * from table名称;
查询所有字段命令:这个sql语句是查询表内的所有元素,并按行列的方式表示出来。
2.select 字段名1,字段名2.... from table名称;
查询指定字段命令:这个sql语句是查询表内指定字段的元素,并把他们以列的形式表示。
3.select 字段名1 as 新字段名1,字段名2 as 新字段名2 from table名称;
为指定字段改名命令:这个命令用于修改字段的名称,可用于向对不熟悉字段含义的人展示字段时使用。或者字段名过长时,用于在查询语句中缩短字段名。(需注意,字段名的as修改只在当前的这一个sql语句中有效)
穿插知识点:
sql字段查询语句的完全形式:select 数据库名.表格名.字段名 from 表格名;
这是sql查询字段的一个完全的形式,使用这种完全形式是在做多表查询时使用,因为有些字段名可能在多个表格中都会出现,所以必要时在前面把他们的表格名,数据库名会带上(有时只要表名就够了)。
4.select 新表格名称.字段名 from table名称 as 新表格名称 ;
为表格改名命令:这个命令使用as为表格改名称,一般用于缩短表格的长度或复杂度,使sql语句精简。(注意:表的名称改变只在这一个sql语句中适用,并不会改变表格本身名称)
5.select distinct 字段名 from 表名;
查询字段的不重复部分(去重):这个命令使用distinct将字段名中值相同的部分只表示一个,其余去掉。(当有多个字段名时,要多个字段名的值都相同才会去掉只留一个)
讲完基础查询,我们来看看条件查询。
条件查询有一个很重要的关键字,就是where,它是条件查询基本都要用到的关键字,一般情况都是在where后面跟条件。
条件查询主要有以下几种情况:
1.比较运算符查询:
比较运算符主要包括 <,>,=,<=,>=,<>,!=.其中<>和!=表示不等于(主要用!=)。
比较运算符的运用,主要是判断某个字段的值是否属于某个范围,或等于(不等于)某个值。
比较运算符的查询语句如下:
select *(或任意字段名) from 表名 where 字段名 条件 值;
举例:
select * from students where age < 28;
2.逻辑运算符:
逻辑运算符主要有与(and),或(or),非(not)这三个。
逻辑运算符的运用,主要是在比较运算的基础上,把值的范围限定在条件经过逻辑运算后确定的范围内。其中and表示与范围,意为条件必须同时满足。or为或范围,意为必须满足其中的某一个条件。not为非范围,意为必须取当前这个条件的相反范围。
逻辑运算符的查询语句如下:
1.与范围(and):
select *(或任意字段) from 表名 条件1 and 条件2;
举例:
select * from students age>18 and height < 185;
2.或范围(or):
select *(或任意字段) from 表名 条件1 or 条件2;
举例:
select * from students age = 18 or age =34;
3.非范围(not):
select *(或任意字段) from 表名 not 条件1;
举例:
select *(或任意字段) from 表名 not age < 34;
条件查询之后我们来看看模糊查询:
模糊查询它之所以叫模糊查询,是因为它不是通过非常精确的信息来进行查询的,它是通过知道了信息中的某一个条件,然后经过加以模糊的条件来进行查询的。它的最要的关键字是like。模糊查询有两种方式,我觉得可以称之为,可有可无之模糊和必有之模糊。所谓可有可无之模糊,是指它的条件值指代的信息是可有可无,可大可小的,这个条件值我们用%符号表示。必有之模糊,是指它的条件值指代的信息是必须有的,且是有大小限制的,这个条件值我们用_(下划线)符号表示。
模糊查询的查询语句如下:
1.可有可无之模糊查询
select *(或任意字段) from 表名 where 字段名称 like % 信息条件 %
举例:
select * from students where name like ""% 小 %"";
从这里可以看出,其实它也是条件查询的一种,我怎么稀里糊涂的把他们自己归一类了呢?不应该啊。
然后,从这个查询的语句我们需要注意这么几点:
(1)这个%表示的是可有可无的内容值,不论大小,也就是说如果有一个%在前,可以表示这个信息条件前面有任意内容,%在后,表示这个信息条件后面有任意内容。
(2)查询内容时候要注意格式,比如说查询的字符串格式的,就要加上""(双引号)。
2.必有之模糊查询
select *(或任意字段) from 表名 where 字段名称 like _信息条件;
举例:
select * from students where name like "周_";
这里我们要注意几点,这个_(下滑线)的个数是非常精确的,是几个就代表几个字符,他是必有的,而不是可有可无的。所以对个数有要求时,要使用下划线_。
今天先写到这里,排序查询,范围查询和统计查询请待下回分解。