美文网首页
mysql增删改查

mysql增删改查

作者: 指尖轻敲 | 来源:发表于2018-07-09 22:30 被阅读4次
    id username password address sex age

    1. 增

    插入数据
    insert into user values(1,'黄婷婷',111,'江苏',1,24);
    或者
    insert into user(id,username,password,address,sex,age) values(2,'鞠婧祎',222,'四川',1,23);
    

    推荐使用第二种,第一种如果少写了字段会报错。id如果不写但是设置了自动增长,可以自动增加。

    如果添加多条数据
    insert into user(id,username,password,address,sex,age) values(3,'赵粤',333,'广东',1,22),(4,'赵嘉敏',444,'上海',1,21);
    
    载入数据
    load data infile 'C:/Users/Administrator/Desktop/data_test.txt' into table load_data;
    

    1、这里注意如果报错,类似这种ERROR 1366 (HY000): Incorrect integer value: 'id' for column 'id' at row 1,应该是编码的问题,用高级点的编辑器改成utf8就可以,不要用utf8-BOM。

    2、如果报错ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opti on so it cannot execute this statement,则应该是权限的问题,可以使用命令

    SHOW VARIABLES LIKE "secure_file_priv"; 
    

    查看secure_file_priv的value值,这里有三种情况。

    • null:限制导入(outfile)导出

    • 'D:/wamp/tmp':限制导入导出只能发生在这个目录下

    • '':不对导入导出做限制

    我们可以修改这个值windows下可以修改mysql下my.ini文件中secure_file_priv的值,保存之后重启mysql既可。

    补充导出数据:
    select * from girls into outfile 'D:/wamp/tmp/test.txt';
    

    2. 删

    DELETE FROM table_name WHERE LastName = 'Wilson'  //删除某一行
    DELETE * FROM table_name //删除所有行
    

    3. 改

    修改数据
    UPDATE table SET name = 'leilei' WHERE id = 2 
    

    4. 查

    查看所有数据
    select * from user;
    
    查询某个字段在某个区间的数据

    查年龄在30-40之间的所有数据

    select * from user where age between 30 and 40;
    
    查某个字段等于满足两个条件的数据

    查年龄等22或者23的数据

    select * from user where age=23 or age=22;
    select * from user where age in(22,23);
    
    模糊查询

    查询address字段以川结尾的数据,like和%集合使用,%表示匹配任意字符(_表示匹配任意一个字符)。

    select * from user where address like '%川';
    
    排序查询

    默认升序(asc省略)

    select * from user order by age;
    

    降序

    select * from user order by age desc; 
    
    筛选查询

    从第二条开始查,一共查四条

    select * from user limit 2,4;
    
    分组查询(去重查询)

    选择的字段一定要在by后面包含。如果要查询分组后的数据,用having,和where一样,但是只针对分组后的数据。

    select address from user group by address;
    
    select address from user group by address having '地址'="河北";
    
    查询有多少条数据
    select count(*) from user;
    
    起别名

    如果字段名长,可以username起别名为name

    select username as name from user;
    

    联合查询

    内联查询

    把两个表id相同的信息拼成一行,一个user表和一个goods表

    select * from user inner join goods on user.id = goods.id;
    

    如果只想显示用户姓名和商品名

    select username,name from user inner join goods on user.id = goods.id;
    
    左联查询

    显示以user表为准的信息,没有的信息为NULL

    select * from user left join goods on user.id = goods.id;
    
    右联查询

    显示以goods表为准的信息,没有关联到的user表中其他信息不显示

    select * from user right join goods on user.id = goods.id;
    
    嵌套查询(不推荐)

    查询谁买了物品(自己感觉就是user中id在goods中有的列出来)

    select * from user where id in(select id from goods);
    

    any、all

    // 查询tab1中id值大于tab2中所有uid值得数据
    select * from tab1 where id > all (select uid from tab2);
    
    // 查询tab1中id值大于tab2中任何一个uid值得数据
    select * from tab1 where id > all (select uid from tab2);
    

    相关文章

      网友评论

          本文标题:mysql增删改查

          本文链接:https://www.haomeiwen.com/subject/sgwfsftx.html