04-命令行_数据的增删改查

1.数据的增删改查(curd)

curd的解释:创建(Create)、更新(Update)、读取(Retrieve/Read)、删除(Delete)  

2.增加/插入数据

    格式:
    insert [into] tb_name [(col_name,...)] {values | value} ({expr | default},...),(...),...
    说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null  
         来占位,插入成功后以实际数据为准
    单行插入:
        全列插入:值的顺序与表中字段的顺序对应
        insert into 表名 values(...)
        例: 主键可以写0nulldefault
            insert into students values(0,'郭靖',1,'蒙古','2016-1-2');   
            insert into students values(null,'郭靖',1,'蒙古','2016-1-2');   
            insert into students values(default,'郭靖',1,'蒙古','2016-1-2');

        部分列插入:值的顺序与给出的列顺序对应
        insert into 表名(列1,...) values(值1,...)
        例:只插入name、hometown、birthday几个字段
            insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');  

    上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信,多行插入时每行数据用逗号分隔。

    多行插入:
        全列多行插入:值的顺序与给出的列顺序对应
        insert into 表名 values(...),(...)...;
        例: insert into classes values(0,'python1'),(0,'python2'); 

        部分列多行插入:值的顺序与给出列的顺序对应
        insert into 表名(列1,...) values(值1,...),(值1,...)...;
        例: insert into students(name) values('杨康'),('杨过'),('小龙女');

3.删除

    格式:delete from 表名 where 条件;   
    例: 从students表中删除id为5的学生 
        物理删除:(直接从数据库表中删除)
                 delete from students where id=5;
        逻辑删除:(本质就是修改操作,一般就是增加一个字段标示是否删除,  
                 比如可以用is_logout字段表示一个用户是否注销了账号,不是实际意义上的删除) 
                 (1).先向students表中添加一个is_logout字段,bit类型,0 表示没有注销,1 表示注销  
                      alter table students add is_logout bit default 0;  
                 (2).修改id为5的学生is_logout为1  
                      update students set is_logout=1 where id=5;   

    删除一个表中的所有数据
    -- 清空全部数据,不写日志,不可恢复,速度极快
    truncate table 表名;

    -- 清空全部数据,写日志,数据可恢复,速度慢
    delete from 表名

4.修改

    格式:update 表名 set 列1=值1,列2=值2...... where 条件;
    例: 修改id为5的学生的gender=0、`class-id`=11   
         update students set gender=0,`class-id`=11 where id=5;

         没有条件时会修改所有记录,慎重使用
         修改所有学生的age=19 
         update students set age=19;

5.查询

    格式:select 将要查询的列 from 表名 where 条件; 

    查询所有列:*号表示所有列 

        不指定查询条件:
        select * from 表名;
        例: select * from students;   

        指定查询条件: 
        select * from 表名 where 条件;
        例: select * from 表名 where id=5; 

    查询指定列:

        不指定查询条件: 
        select 列1,列2...... from 表名; 
        例: select name,age from students;  

        指定查询条件: 
        select 列1,列2...... from 表名 where 条件; 
        例: select name,age from students where id=5;  

    注意:查询时不指定查询条件会查出所有记录,数据库大时是非常不可取的。

Last updated

Was this helpful?