MySQL 学习记录- 数据行 基本操作 Day17

数据行

(1)增

insert into t1(name,gender,age) values('young','男',26),('peppa','女',28)
insert into t1(name,gender,age) select name,gender,age from t2
指定字段名插入&不指定字段名插入:
insert into 表名(字段名1[,字段名2,...]) values(字段值 1[,字段值 2,...]);
insert into 表名 values(字段值 1[,字段值 2,...]);

(2)删

delete from tb12;
delete from tb12 where id !=2 
delete from tb12 where id =2 
delete from tb12 where id > 2 
delete from tb12 where id >=2 
delete from tb12 where id >=2 or name='alex'

delete和truncate的区别:
①delete可以添加where子句删除表中部分数据, truncate只能删除表中全部数据
②delete删除表中数据保留表结构, truncate直接把表删除(drop table)然后再创建一张新表(create table),执行速度比delete快。

delete from emp;
truncate table emp;

(3)改

update tb12 set name='peppa',age=28 where id>12 and name='young'

(4)查

select id,name from tb12 where id > 10 or name ='young';#查询指定字段	
select id,name as cname from tb12 where id > 10 or name ='young';#name起别名为cname

#where 筛选
select * from tb12 where id != 1;#where条件筛选
select * from tb12 where id in (1,5,12);#只要满足条件范围内的一个值即为匹配项
select * from tb12 where id not in (1,5,12);#用来检索不在条件范围内的记录
select * from tb12 where id in (select id from tb11);#子查询充当条件范围
select * from tb12 where id between 5 and 12;#表示指定范围内的值				
select * from tb12 where id not between 5 and 12;#表示指定范围外的值
select * from tb12 where name like "a%";#通配符%表示任意长度的字符
select * from tb12 where name like "a_";#通配符_表示一个字符
select * from tb12 where name is null;#查询空值

#limit 限制查询
select * from tb12 limit 10;#查询前十条记录
select * from tb12 limit 0,10;#查询前十条记录,与上面的效果一样
select * from tb12 limit 10,10#查询第11-20条记录
select * from tb12 limit 2,1;#查询第三条记录

#order by 排序
select * from tb12 order by id asc;#小到大
select * from tb12 order by id desc;#大到小
select * from tb12 order by age desc,id asc;#先按年龄降序排,遇到相同再按id升序

#group by 分组
select course_id,sum(number),avg(number),count(1) from score group by course_id;
						#按照学科分组求总分,平均分,选课人数
select course_id,sum(number),avg(number),count(1) from score group by course_id having avg(number)>=80;		#按照学科分组求平均分大于80分的科目的总分,平均分,选课人数
#**** 如果对于聚合函数结果进行二次筛选时必须使用having ****
select student_id,group_concat(course_id) from score group by student_id;
						#按照学生分组,并把学生所选的课成全部显示出来
select student_id,count(course_id) from score group by student_id with rollup;
						#按照学生分组,并在最后一列显示所有学生所选学科数目总和


#left join...on... 连表
select * from score left join student on score.student_id=student.sid.
#score表与student表根据score表的student_id=student表的sid关系进行连接

select * from score right join student on score.student_id=student.sid.
#当用right join时,student右边全部显示,left join则相反

select * from score inner join student on score.student_id=student.sid.
#inner join的作用就是将出现null值的哪一行隐藏掉

(5)导出数据

select * from emp where deptno>15 and sal>1500
into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/t.csv' 
fields terminated by ','; 

解析:第一行:查询结果
第二行:将查询结果导出至指定的安全路径安全的意思?
第三行:以逗号作为分隔符
注意:路径中不能有中文,’\‘在编程语言中是转义符,因此要改为’'或‘/’
PS:按住Shift右键文件,可以直接复制文件的路径,另外在mysql workbench 中可以用Ctrl+H快捷键来实现查找替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值