zoukankan      html  css  js  c++  java
  • 关于MySQL数据库——增删改查语句集锦

    一、基本的sql语句

    CRUD操作:
    create 创建(添加)
    read 读取
    update 修改
    delete 删除

    1、添加数据
    insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ;
    给特定的列添加数据
    insert into Info (code,name) values('p010','李四');
    自增长列的处理
    insert into family values('','p001','数据','T001','数据',1);

    insert into 表名 values(值)

    2、删除数据
    删除所有数据
    delete from family
    删除特定的数据
    delete from Info where code='p001'

    delete from 表名 where 条件

    3、修改数据
    修改所有数据
    update Info set name='徐业鹏'
    修改特定数据
    update Info set name='吕永乐' where code='p002'
    修改多列
    update Info set name='吕永乐',sex=1 where code='p003'

    update 表名 set 要修改的内容 where 条件  tno =

    4、读取数据
    (1)简单读取,查询所有列(*)  所有行(没有加条件)
    select * from Info
    (2)读取特定列
    select code,name,class from Info
    (3)条件查询
    select * from Info where code='p003'
    (4)多条件查询
    select * from Info where code='p003' or nation='n002' #或的关系
    select * from Info where sex=0 and nation='n002' #与的关系
    (5)关键字查询(模糊查询)
    查所有包含奥迪的汽车
    select * from car where name like '%奥迪%'; #百分号%代表任意多个字符
    查以'皇冠'开头的所有汽车
    select * from car where name like '皇冠%';
    查询汽车名称中第二个字符是'马'的
    select * from car where name like '_马%'; #下划线_代表任意一个字符
    (6)排序查询
    select * from car order by powers  #默认升序排列
    select * from car order by powers  #升序asc 降序 desc
    先按brand升序排,再按照price降序排
    select * from car order by brand,price desc


    (7)范围查询
    select * from car where price9()>40 and price<60
    select * from car where price between 40 and 60

    (8)离散查询
    select * from car where price=30 or price=40 or price=50 or price=60;
    select * from car where price in(30,40,50,60)取出数据
    select * from car where price not in(30,40,50,60)去掉数据

    (9)聚合函数(统计查询)
    select count(*) from car
    select count(code) from car #取所有的数据条数
    select sum(price) from car #求价格总和
    select avg(price) from car #求价格的平均值
    select max(price) from car #求最大值
    select min(price) from car #求最小值

    (10)分页查询
    select * from car limit 0,10  #分页查询,跳过几条数据(0)取几条(10)
    规定一个每页显示的条数:m
    当前页数:n]
    select * from car limit (n-1)*m,m

    (11)去重查询
    select distinct brand from car

    (12)分组查询
    查询汽车表中,每个系列下汽车的数量
    select brand,count(*) from car group by brand
    分组之后,只能查询该列或聚合函数

    取该系列价格平均值大于40的系列代号
    select brand from car group by brand having(加条件) avg(price)>40

    取该系列油耗最大值大于8的系列代号
    select brand from car group by brand having max(oil)>8

    二、MySql的高级查询(使用外连接

     连接查询
    SELECT t1.Name,t2.Brand_Name FROM brand t2,car t1 -- 笛卡尔乘积
    WHERE t2.Brand = t1.Brand


    -- 多表连接查询
    SELECT t1.Name,t2.Brand_Name,t3.prod_name  FROM car t1 LEFT JOIN brand t2 ON t1.Brand = t2.Brand

    LEFT JOIN productor t3 ON t2.Prod = t3.Prod


    -- 联合查询 字段数必须一样
    SELECT `Name`,Price FROM car UNION SELECT Brand_Name,Brand_Memo FROM brand


    -- 子查询(***)
    SELECT * FROM car WHERE car.brand in (SELECT Brand FROM brand WHERE Prod = 'p001')

    说明:使用外连接

    A、left outerjoin
    左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    B:right outerjoin:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    C:full/cross outerjoin
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
    D:分组:Group by:
      一张表,一旦分组完成后,查询后只能得到组相关的信息。
     组相关的信息:(统计信息) count,sum,max,min,avg  分组的标准)
      在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
     在selecte统计函数中的字段,不能和普通的字段放在一起;
    E:外连接查询(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    F:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2
    G:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
    H::前10条记录
    select top 10 * form table1 where 范围
    I:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
  • 相关阅读:
    关系数据库&&NoSQL数据库
    NoSQL
    大数据时代的数据存储,非关系型数据库MongoDB
    判断是否为BST
    百度2017暑期实习生编程题
    memset()实现及细节
    在必须返回一个对象时,不要去尝试返回一个引用
    返回局部变量指针
    用引用返回值
    数组形参
  • 原文地址:https://www.cnblogs.com/jly144000/p/7622236.html
Copyright © 2011-2022 走看看