mysql数据库(一)--------------------------Mysql数据库——基本sql语句

查询的sql语句:

 查询数据库中的某张表的所有数据 :           select * from 表名;         

 查询某张表中指定的列:                               select 列名,列名...  from 表名;   

 按条件查询:                                                  select 列名,列名..... from 表名  where 条件;

含有运算符查询:        ①:相等=   不等 !=       select 列名,列名..... from 表名 where  age=25;

                                     ②:between a and b  注意前面那个数要比后面那个数要小     a<=x<=b  between  and 是包含边界的

                                     ③:in(1,2,3) 在指定值中任意取任一一个 。where 列名 in (值,值,值.......)等价于where 列名=值 or 列名=值 or 列名=值 .......

       

模糊查询:                                         % 任意字符串                 查询名字中含有  张 的学生的信息   select * from  name like ‘%张%’ 

                                                           _表示匹配单个字符        name like '_%' 第二个字为张的学员信息   

                                                             模糊查询是非常消耗性能          

 判断非空:                                          is null 判断该列值为空    不是null    is not null       

过滤重复数据:                                  查询排重:select distinct 列名 from 表名 [where 条件];

对查询结果进行排序:                         select * from 表名 order by 列名 asc  , 列名 asc;  asc是升序排列,desc是降序排列

                                                              我们如果多字段进行排序,规则按照前面的先排序,相同再按照后面的排序。

                                                              如果有多个列需要排序,用逗号隔开就行了。     

别名:                                                    select 列名 as 别名,列名 as 别名,列名 as 别名.... from 表名 where 条件; 

                                                               在使用别名的时候,as 关键字可以省略。 

sql语句的聚合函数:

count函数:统计个数                            select    count(列名)   from  表名   

                                                              注意: count在根据指定的列统计的时候,如果这一列中有null 不会被统计在其中。

sum函数 :求和                                    select sum(列名) from 表名

avg函数 :   求平均值                             select avg(列名) from 表名;

max,min函数:                                   select  max(score),min(score) from student                求出班级的最高分和最低分

group by分组函数:                            select … from … group by 列名,列名  如果使用group by 对数据进行分组之后还要过滤。

                                                             where 后不能跟 聚合函数,having中可以跟 聚合函数。

 

select 语句的执行顺序

标准SQL的解析顺序为:

(1)from 子句, 组装来自不同数据源的数据

(2)where子句, 基于指定的条件对记录进行筛选

(3)group by 子句, 将子句划分为多个分组

(4)使用聚合函数进行计算

(5)使用having子句筛选分组

  (6)  select将最终结果显示出来。

(7)使用order by 对结果集进行排序

 

多表查询

笛卡尔积介绍

select * from a,b;多个表名之间使用逗号隔开,查询到的结果是a表所有的数据和b表所有的数据进行相乘。

内连接查询           查询的结果:两表的公共部分。

    

语法一:select 列名 , 列名 .... from 表名1,表名2 where 表名1.列名 = 表名2.列名;

语法二:select * from 表名1  inner join 表名2 on 条件

 

外链接查询   

左外连接:左表数据全部显示

语法:select * from 表1 left outer join 表2 on 条件;

 

右外链接:右边表数据全部显示

语法:select * from 表1 right outer join 表2 on 条件;

 

全外连接:左外连接和右外连接的结果合并,单会去掉重复的记录。

语法:select * from 表1 full outer join 表2 on 条件

 

Mysql的分页

分页sql格式是:select * from 表名 start,limit;                      其中start是页码,limit是每页显示的条数。

select * from category limit 0,2;     查询category的第一页,每页显示2条数据。

 

sql语句的插入

insert into 表名(列名,列名) values(value1,value2)

 

sql语句的更新

update 表名 set 列名=value1 where 范围

 

sql语句的删除

delete from 表名 where 范围

 

索引的创建原则或者注意事项

1,经常用作查询选择的字段,建立索引。 

2,限制索引的数目

索引的数目一般不要超过3个,最多不要超过5个。索引虽说提高了访问速度,但太多索引会影响数据的更新操作。 

3,不要在有大量相同取值的字段上,建立索引

这样的字段(例如:性别)上不建议建立索引

4,尽量使用数据量少的索引

如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

 

索引失效的情况有如下几种原因(不包括索引本身无效的情况

1, CBO计算走索引花费过大的情况,mysql估计使用全表扫描要比使用索引快,则不使用索引。

2,对单字段建了索引,where条件确实查询了多字段(其中包括我们的单字段索引)

3,如果条件中有or,即使其中有条件带索引也不会使用

4,like查询是以%开头(以%结尾是可以的)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值