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;