记录查询

查询

1.基本查询语法 
(1)所有字段
    select  *  from 表名
注意:*表示所有字段。除非需要表中所有字段的数据,否则不要使用通配符*,它会降低查询效率
(2)指定字段
    select 字段名1,字段名2,......字段名n from 表名
(3)条件字段
    关系运算符:>,<,=,!=和<>都表示不等于......
    select 字段名1,字段名2,......字段名n from 表名 where 关系表达式
    注意:如果字符串类型是字符串关系运算符按照字符串进行比较
(4)带IN关键字查询(Mysql特有)(包含 or也可实现)
    select *|字段1,字段2...字段n from 表名 where 字段名 [not] in(元素1,元素2,元素3......)
(5)带between和and的关键字查询(表范围 in或and也可实现)
    select *{字段名1,字段名2......字段名n} from where 字段名 [not] between 值1 and 值2;
(6)空值查询
    select *{字段名1,字段名2......字段名n} from where 字段名 is [not] null 值1;
(7)带distincs关键字的查询(去重)
    select distinct 字段名 from 表名
    select distinct 字段名1,字段名2...字段名n from 表名
(8)带like关键字的查询(模糊查询)
    select *|字段1,字段2...字段n from 表名 where 字段名 [not] like ‘匹配字符串’;
(9)匹配符:%/下换线_
    %:1>可以匹配任意长度的字符串,包括空字符串
      2>可以匹配任意位置:蒙A%2
      3>匹配包含中间部分的字符串 :%...%
    _:1>匹配单个字符,用法同%
      2>可以和%组合使用
    如果要查询%或_需要用/转义字符来实现‘/%’、‘/_’
(10)带and关键字多条件查询
    例:select * from 表名 on 字段名 and like ‘匹配字符串’
(11)带or关键字的多条件查询
    满足一个条件就都可以查询到
(12)or和and关键字一起使用:and优先级高于or
2.高级查询
    (1).聚合函数count():统计记录的条数
        语法:select count(*) form 表名;
        select count(*|单个指定字段名)as [别名] form [where 条件表达式]; 
    (2).求和函数sum():用来求出某个字段所有值的和
        语法:select sum(字段)as [别名] 表名 {where 条件表达式}
        select 字段名1 as [别名] ,字段名2 as [别名]...字段名n [as 别名] from 表名;---例:select  as 编号 ,gname as 名称,s1 as 数量,dj as 单价,s1*dj as 总计 from goods;
    (3).平均函数avg()
        求某个字段平均值
        语法:同sum()
    (4).最大值max()
    (5).最小值min()
    (6).查询结果的排序 order dy
         select *|字段1,字段2,...字段n from 表名 [where 条件不等式] [order by 字段1[asc|desc],...字段n[asc}desc]];
        asc:升序;desc降序
        排序置顶(top关键字)(sqlServer使用,Mysql无效)
            例:select top 3 from goods order by s1 desc limit 3;
    (7).使用limit限制查询数量(Mysql特有):可以指定查询记录从哪一条开始及一共查询多少条
        语法:select 字段名1,字段名2,...from 表名 [limit [offset,count] 记录数]
            offset跳过的记录数(我的理解:开始位置索引,从0开始),count几条记录,记录数:输出多少条记录
    (8).函数(列表):加密
            1)MD5:字符串密码

                ENCODE(str pwd str):加密
                DECODE(str,pwd,str):解密
        2)时间日期

3.连接查询(多表)
    (1)内连接(inner join)
        称为简单连接或自然连接,是一种常见的连接查询
        关系运算符
        语法: select 查询字段 from 表1 [inner] join 表2 on 表1.关系字段
    (2)外连接:待更新
4.为表和字段取别名
    (1)表 as
        使用场景,查询书表名太长,可以通过给表起别名来简化操作
        select * from  表名1 as 别名,表名2 as 别名...;
    (2)字段
        可以和表别名组合组合使用
        select * from  字段名[ as ]别名,字段名 [as] 别名...;
4.外键:是指引用另一个表中的一列或多列,被引用的表应该具有主键约束或唯一性约束
(1)作用:用于建立和加强俩个表之间的数据连接
(2)为表添加外键约束语法:
    alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名)
(3)外键约束是为了保证数据的完整性和统一性,但主表中数据删除,就会造成从表中数据成为垃圾。
    以下是避免主表中数据删除从表中数据成为垃圾的解决
    语法:alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名)
    [on delete {cascade|set null|no action|restinct}] 
    [on update {cascade|set null|no action|restinct}]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值