mysql表数据的增删改查

添加,更新与删除数据

操作表记录(增删改查,create, read update,delete)
1. INSERT
    INSERT INTO TABLE [(column [,column...])] VALUES (value [,value...]);
    1.1说明,因为id设置了计数器,并设置了自增长,插入数据时就不用填值。
        insert into employee (id,name,gender,birthday,entry_date,job,salary,resume) values (NULL,'张飞','m','1999-10-1','2021.9.30','程序员',20000,'技术全面,解决问题能力强');
    1.2 列的声明如果包含整张表的列名时,那么列的声明部分可以忽略不写. 但是插入数据的顺序必须和表中列的顺序保持一致
        insert into employee values (null,'关羽','m','1991-3-9','2020-4-30','网管',18000,'责任心强,工作积极');
        一条sql语句插入多条数据
        insert into employee values (null,'刘备','m','1993-5-9','2020-4-30','CEO',20000,'公司的领导者'),(null,'赵云','m','1995-6-2','2020-4-30','保安队长',15000,'责任心强,功夫好');
2.  UPDATE
    UPDATE tb1_name SET col_name1=exprl [,col_name2=expr2 ...][WHERE where_definition]
    ~将所有员工的薪水改为5000元
    update employee set salary=5000;
    ~将张飞的薪水改为3000元
    update employee set salary=3000 where name='张飞';
    ~将关羽的薪水改为4000元,工作改为ccc
    update employee set salary=4000,job='ccc' where name='关羽';
    ~将'刘备'的薪水在原有的基础上增加1000元
    update employee set salary=salary+1000 where name='刘备';
    
3.     DELETE(truncate)
    DELETE from tb1_name [where where_definition]
    ~删除表中名称为张飞的记录
    delete from employee where name='张飞';
    ~删除表中所有的记录
    delete from employee;
    使用truncate删除表中的记录(删除整张表,然后再新建一个同样的表)
    truncate employee;
    
4.  SELECT(简单查询)
    查询的表达式同样也支持运算
    (1)SELECT [DISTINCT] *|{column1,column2,column3...} from table;
    
    练习:
create table exam(
    id int primary key auto_increment,
    name varchar(20) not null,
    chinese double,
    math double,
    english double
);

insert into exam values (null,'关羽',85,76,70);
insert into exam values (null,'张飞',70,75,70);
insert into exam values (null,'赵云',90,65,95);

    ~查询表中所有学生的信息
      select * from exam;
    ~查询表中所有学生的姓名和对应的英语成绩
      select name,english from exam;
    ~过滤表中重复数据
      select english from exam;
      select distinct english from exam;
    ~在所有学生分数上加10分特长分显示
      查询出的数据显示成这样而已,实际的数据库数据没有变,要改的用update语句
      select name,math+10,english+10,chinese+10 from exam;
    ~统计每个学生的总分
      select name,math+english+chinese from exam;
    ~使用别名来表示学生的总分
      select name as newname,math+english+chinese as total_score from exam;
      as可以省略
      select name newname,math+english+chinese total_score from exam;
      常见错误, 列的名称之间要用逗号隔开
      select name english from exam;
    (2)带有where字句的过滤查询
     ~ 查询姓名为XXX的学生成绩
        select * from exam where name='张飞';
     ~ 查询英语成绩大于90分的同学
        select * from exam where english>90;
     ~ 查询总分大于200分的所有同学
        select * from exam where math+english+chinese>230;
     ~ 查询英语成绩在80-100之间的同学
        select * from exam where english between 80 and 100;
     ~ 查询数学成绩为75,76,77的同学
        select * from exam where math in (75,76,77);
     ~ 查询所有张姓同学的成绩
        %表示一个或者多个,_表示一个字符
        select * from exam where name like '张%';
        
        新增一个数据测试用来测试数据
        insert into exam values (null,'张某某',32,22,35);
        查询张姓一个名字的
        select * from exam where name like '张_';
        查询张姓两个名字的
        select * from exam where name like '张__';
     ~ 查询数学分>70,语文>80的同学
         select * from exam where math>80 and chinese>90;
        
        



    
    
    
    

 

posted @ 2021-12-25 08:16  solomon123  阅读(158)  评论(0编辑  收藏  举报