mysql数据增删改查操作

1 插入数据
    这条语句可以同时插入多条数据,若为所有字段插入数据,则column_list可以省略掉。
    INSERT INTO table_name (column_list) VALUES (value_list1)[, (value_list2)...];    
2 修改数据
    UPDATE table_name 
     SET column_name1 = value1,
     column_name2=value2,……,
     column_namen=valueN
     WHERE (condition);
3 删除数据
    若无where 条件则删除所有数据
    DELETE FROM table_name [WHERE condition] ;
4 查询数据
    a 单表查询
    语法规范:
        SELECT {*|<字段列表>} [
            from <表1>, <表2>...
            [where <condition>]
            [group by <group by definition>]
            [having <expression> [{<operator> <expression>...}]]
            [order by <order by definition>]
            [limit [<offset>,] <row count>]
        ]
        1. 查询所有字段
            select * from mytable1;
        2. 查询指定字段
            select id, name from mytable1;
        3. 筛选
            select id, name from mytable1 where id=3;
            select id, name from mytable1 where id in (1, 2);
            select id, name from mytable1 where id between 1 and 3; //这里包括1-3之间的所有值
            select id, name from mytable1 where name like 'b%';
            select id, name from mytable1 where name like 'b__';
            select id, name from mytable1 where name is not null;
            select id, name from mytable1 where id in (1, 2) and name is not null;
            select id, name from mytable1 where id=1 or id=2; //可以实现in功能,不过in效率更高
            select distinct name from mytable1;  //消除重复值
        4. 排序,desc只对其前面的一个字段生效,如果要对每一个字段都降序,则每个字段后都要加desc
            单列排序
            select age from mytable1 order by age;
            多列排序:
            select age, score from mytable1 order by score, age;
        5. 分组
            select id, group_concat(name) as names from mytable1 group by id having count(name)>1;
            统计分组数目:
            group by id with rollup;(该命令无法与order by一起使用)
        6. 限制返回结果
            limit 3,5; //第四行开始,共5行
        7. 集合函数
            count(), sum(), avg(),min(), max()等等,他们不包含NULL所在的行。
    b 多表查询
        1. 内连接查询
            select mytable1.id, mytable1.name, mytable2.id, mytable2.name
                from mytable1 inner join mytable2
                on mytable1.id=mytable2.id;
        2. 外连接查询
            左连接
            select mytable1.id, mytable1.name, mytable2.id, mytable2.name
                from mytable1 left outer join mytable2
                on mytable1.id=mytable2.id;
            右连接
            select mytable1.id, mytable1.name, mytable2.id, mytable2.name
                from mytable1 right outer join mytable2
                on mytable1.id=mytable2.id;
    c 子查询
        1. ANY, SOME为同义词,表示有一个满足即可
        2. all 表示要满足所有条件才行
        3. exits 存在为true, 否则为false
        4. in 内层查询返回列表与外层比较
        5. 带比较运算符的子查询
    d 合并查询
        union 重复的行被删除
        union all 重复的行不被删除,效率比union高
    e 使用正则表达式查询regexp
        select * from mytable1 where name regexp '^b*a$';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值