数据操作

元气小坏坏 提交于 2020-02-08 09:08:12

数据操作

–增删改查(curd)
±---------±---------------------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±---------±---------------------------±-----±----±--------±---------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
| age | int(10) unsigned | NO | | NULL | |
| gender | enum(‘男’,‘女’,‘保密’) | YES | | 保密 | |
| birthday | date | YES | | NULL | |
±---------±---------------------------±-----±----±--------±---------------+

--增加(insert into)
    --全列插入
    --insert [into] 表名 values(...);
    --主键字段 可以用0 null default 来占位
    --向classes表中插入一个班级
    insert into classes values(0, "菜鸟班");
    
    --向students表中插入一个学生信息
    insert into students values(0, "小李飞刀", 20, "女", "1990-01-01");
    insert into students values(null, "小李飞刀", 20, "女", "1990-01-01");
    insert into students values(default, "小李飞刀", 20, "女", "1990-01-01");
    
    --失败
    insert into students values(null, "小李飞刀", 20, "disi", "1990-01-01");
    
    --枚举中的下表 从1开始
    insert into students values(0, "小李飞刀", 20, 1, "1990-01-01"); --男
    insert into students values(0, "小李飞刀", 20, 2, "1990-01-01"); --女
    insert into students values(0, "小李飞刀", 20, 3, "1990-01-01"); --保密
    
    --部分插入
    --insert into 表名(列1,...) values(值1,...)
    insert into students (name, age, gender) values ("小乔", 19, 2);
    --多行插入
    insert into students (name, age, gender) values ("貂蝉", 19, 2), ("大乔",19,2);
    
--修改(update)
--update 表名 set 列1=值1, 列2=值2... where 条件;
  update students set gender=1; --全部修改
  update students set gender=1 where name="小李飞刀"; --只要name=“小李飞刀”就修改gender
  update students set gender=1 where id=4; --只要id是4的 就进行修改;
  update students set age=22, gender=1 where id=3;
  
    
--删除
    --物理删除
    --delete from 表名 where 条件
       
    
    --逻辑删除
    --用一个字段来表示 这条信息是否已经不能再使用了
    --给students表添加一个is_delete字段 bit 类型
    --alter table students add is_delete bit default 0;
    --update students set is_delete=1 where id=6;
        alter table students add is_delete bit default 0;
        select * from students;
        +----+--------------+-----+--------+------------+-----------+
        | id | name         | age | gender | birthday   | is_delete |
        +----+--------------+-----+--------+------------+-----------+
        |  1 | laowang      |  18 | 男     | NULL       |           |
        |  2 | laoli        |  19 | 保密   | 2010-01-01 |           |
        |  3 | 小李飞刀     |  20 | 女     | 1990-01-01 |           |
        |  4 | 小李飞刀     |  20 | 女     | 1990-01-01 |           |
        |  5 | 小乔         |  19 | 女     | NULL       |           |
        |  6 | daqiao       |  19 | 女     | NULL       |           |
        |  7 | diaochan     |  19 | 女     | NULL       |           |
        +----+--------------+-----+--------+------------+-----------+
    
        update students set is_delete=1 where id=5;
        select * from students;
        +----+--------------+-----+--------+------------+-----------+
        | id | name         | age | gender | birthday   | is_delete |
        +----+--------------+-----+--------+------------+-----------+
        |  1 | laowang      |  18 | 男     | NULL       |           |
        |  2 | laoli        |  19 | 保密   | 2010-01-01 |           |
        |  3 | 小李飞刀     |  20 | 女     | 1990-01-01 |           |
        |  4 | 小李飞刀     |  20 | 女     | 1990-01-01 |           |
        |  5 | 小乔         |  19 | 女     | NULL       |          |
        |  6 | daqiao       |  19 | 女     | NULL       |           |
        |  7 | diaochan     |  19 | 女     | NULL       |           |
        +----+--------------+-----+--------+------------+-----------+

--查询基本使用
    --查询所有列
    --select * from 表名;
        select * from students;
    --指定条件查询
        select * from students where name="小李飞刀";
        select * from students where id>3;
        +----+--------------+-----+--------+------------+
        | id | name         | age | gender | birthday   |
        +----+--------------+-----+--------+------------+
        |  4 | 小李飞刀     |  20 | 女     | 1990-01-01 |
        |  5 | 小乔         |  19 | 女     | NULL       |
        |  6 | daqiao       |  19 | 女     | NULL       |
        |  7 | diaochan     |  19 | 女     | NULL       |
        +----+--------------+-----+--------+------------+
    --select 列1,列2,... from 表名;
        select name,gender from students;
        +--------------+--------+
        | name         | gender |
        +--------------+--------+
        | laowang      | 男     |
        | laoli        | 保密   |
        | 小李飞刀     | 女     |
        | 小李飞刀     | 女     |
        | 小乔         | 女     |
        | daqiao       | 女     |
        | diaochan     | 女     |
        +--------------+--------+
    --字段的顺序
        
    
    --可以使用as为列或表指定别名
    --select 字段[as 别名], 字段[as 别名] from 数据表 where ....;
        select name as 姓名,gender as 性别 from students;
        +--------------+--------+
        | 姓名         | 性别   |
        +--------------+--------+
        | laowang      | 男     |
        | laoli        | 保密   |
        | 小李飞刀     | 女     |
        | 小李飞刀     | 女     |
        | 小乔         | 女     |
        | daqiao       | 女     |
        | diaochan     | 女     |
        +--------------+--------+
        select gender as 性别,name as 姓名 from students;
        +--------+--------------+
        | 性别   | 姓名         |
        +--------+--------------+
        | 男     | laowang      |
        | 保密   | laoli        |
        | 女     | 小李飞刀     |
        | 女     | 小李飞刀     |
        | 女     | 小乔         |
        | 女     | daqiao       |
        | 女     | diaochan     |
        +--------+--------------+
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!