找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
单表语句
(1)查询一个表中的所有的数据
格式 :        select *from  表名                  查看表
注意:* 表示所有,每个语句后要有;
(2)查询表中具体的字段(指定的字段)
格式:select 字段名1,字段名2 from 表名
(3)查询表中具体的字段取别名(别名是在结果查看,原表不变)
格式: select 表中的名字  as “别名”,表中的名字 “别名”   from  表名  
select name as “姓名”,age “年龄”   from  表名          注:as可以省略
(4)查询指定内容
格式:  select *from  表名 where+条件;
如:  select *from  表名 where 字段名=字段;
where条件使用注意
比较运算符
(1)where+条件((= )等于   、(! =  )不等于、(<>)不等于   、(>)大于   (<)小于、(>=)大于等于、(<=)小于等于)
(2)and (与)   同时满足所有条件  
(3)or(或)       当有多个条件时满足其中任意一个条件   
  (4)between..... and......     在什么范围之间                                 包含本身
(5)in 在一组数据种匹配:
select  * from  表名   where 字段名  in(数组)
select  * from   emp   where dept2  in(101,102,110);
(6)is null 为空        is not null  非空
多行注释:              ctrl+/
取消多行注释:       ctrl+shift+/
单行注释:                #            

排序
对表中的数据进行排序
对表中的数据排序:order by
acs升序
select  * from   表名  order by  字段 acs;
select  * from   表名  order by  字段 ;
可以不填asc
desc降序select  * from   表名  order by  字段 desc;
二次排序:select  * from   表名  order by  字段 desc   ,字段 acs;
模糊匹配like%:匹配0个字符或多个字符
_:表示一个字符
select  * from   表名  where  字段名 like“字符 %”;        匹配开头包含字符的
select  * from   表名  where  字段名 like“%字符%”;       匹配中间包含字符的
select  * from   表名  where  字段名 like“% 字符”;         匹配结尾包含字符的
select  * from   表名  where  字段名 like“_ 字符”;      匹配固定位置字符包含字符
限制查询limit   后面接两个值,第一个值表示下标(索引),第二个值时步长
备注:一个表中索引是从0开始
格式:select  * from   表名  limit  开始行数(不包括本行),需查看行数数量;
select  * from   表名  limit  2,3;
格式:select  * from   表名  limit  需查看行数数量;  默认从零开始
select  * from   表名  limit  3;  从零开始查看3行
函数:max最大值     select  max(age)from   表名 ;
min最小值     select  min(age)from   表名 ;
avg平均值      select  avg(age)from   表名 ;
count统计数     select count(age)from   表名 ;    有年龄的数据有多少个
sum求和          select  sum(age)from   表名 ;     年龄的总和
distinct去重      select  distinct(dept2)from   表名 ;  去除重复值
分组查询  group by
一般不单独使用,通常和函数组合使用
select  max(age)from   表名  group by   字段名;
group by    后查询出来的结果,在需要的条件下可以接having
SELECT  dept2 ,max(age)  as  s from   emp  group  by  dept2 HAVING  s>50 ;
having+条件与where+条件 用法一样,但是场景不一样,一般group by后面接having
备注:函数求出后需要设置别名,然后进行语句的操作
改数据
update.....set
update  表名   set name=“成全”  where   sid=123;
update  表名   set 修改字段名=“字段新值”  where  田间;
删除数据
delete删     可以恢复
truncate 快速删除表内数据    无法恢复
drop 删除     删除表和数据
删除速度drop>truncate >delete
delete from 表名;                           删除表中所有数据
delete from 表名 where 条件;        删除表中指定条件的数据
truncate  表名;            快速删除表中所有数据表取别名:



备份表结构:
create table  表名  like   表名1; 备份一个与表名1结构相同的新表;
备份数据:insert into 新表(有表结构)select *from 备份表1;  备份表1 的数据备份部分数据
先备份一个表,然后备份数据
insert into 新表(有表结构)(字段1,字段2)select   字段1,字段2
from 备份表1;  备份表1的部分数据
备份表结构和数据
creat table 表名 as(select *from 表名1);  备份表1 的结构和数据===================================================================
linux中备份数据库
mysqldump -u root -p 原数据库>home/数据库脚本.sql
mysqldump -u root -p hz10>home/hz10bf.sql    备份数据


还原数据
mysql -u root -p
1.先建立一个新的空库
2.在linux中还原
mysql -u root -p   新库名<hz10bf.sql

=========================================================

多表:
什么是多表关联查询?
定义:查询数据来源于多张表
主要讲
1、内连接(基本内连接和隐藏内连接)
2、左连接(左外连接)
3、右连接(右外连接)
4、全连接(全外连接)

========================================================
1、笛卡尔积查询(了解):根据两张表相乘得到的结果:比如表一有4条数据,表二有6条数据,查询出来就是24条且包含大量错误,通常不使用
       格式:select * from 表一,表二;
2、内连接(普通内连接、隐藏内连接)
        查询两个表共有的关联数据
   2.1、普通内连接
       格式    select * from 表一 inner join 表二 on  表一. 关联字段=表二.关联字段;

   2.2、隐藏内连接
        格式   select * from 表一,表二 where 表一. 关联字段=表二.关联字段;
3、左连接(以左表为主,右表有关联的数据显示,没有的显示null)
格式: select * from 表一 left join 表二 on  表一. 关联字段=表二.关联字段
4、右连接(以右表数据为准,左表有关联的数据显示,没有的显示nul)
格式:select * from 表一  right  join 表二 on  表一. 关联字段=表二.关联字段
5、左独有数据(方法,左独有,以右表字段为空)
结构  select * from 表一 left join 表二 on  表一. 关联字段=表二.关联字段 where 右表字符 is null
6、右独有的数据(方法,右独有,以左表字段为空)
结构select * from 表一 right join 表二 on  表一. 关联字段=表二.关联字段 where 左表字符 is null
7、左独有+右独有
   union 拼接
结构:左独有 union 右独有
8、全连接
   8.1、内连接+左独有+右独有
   8.2、右连接+左独有
   8.3、左连接+又独有

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册