linux学习day07----mysql02

本文详细介绍了SQL的基本操作,包括表的修改、数据的增删改查、聚合函数的应用、排序及分组等,帮助读者掌握SQL的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.修改表
		添加列:
			格式:alter table 表名 add 字段
		删除列:
			格式:alter table 表名 drop 字段
		修改列:
			modify:创建一个新的字段去覆盖原来的字段,只能修改属性
				alter table 表名 modify 创建字段
			change:可以修改属性,可以修改名称
				格式:alter table 表名 change 旧字段名称 字段名称 属性
				例如:修改名称
					alter table student  change sex sex1 int;
				例如:修改属性
					alter table student change sex1 sex1 varchar(50);
		修改表的字符集:
			格式:alter table 表名 chararter set 字符集;
2.操作数据:增删改查
		insert:添加
			格式:insert into 表名(字段1,字段2...) values(值1,值2);
			注意:id为主键时,id可给可不给
				有多少个字段,要有多少个值
				引号可以给数值加上,并赋值给int数据类型的字段
		select:查询
			格式:select 字段 from 表名
			where字句:筛选数据
				--比较运算符  > < <= >= = <>  大于 、小于、大于(小于)等于、不等于
					例如:select * from student where age >=21;
				--between...and...显示在某一区间的值
					例如:select * from student where age between 21 and 23;
				--in(set)显示在in列表中的值,例:in(100,200);
					例如:select * from student where age in(21,23);
				注意:这是等值判断,判断多个值
				--like '张_'	模糊查询,使用%和_
					例如:select * from student where name like '张%';
				注意:%表示匹配所有,_表示匹配一个
				-- Is null  判断是否为空
					例如:select * from student where name is not ull;
			    --逻辑运算符
			    --and	多个条件同时成立
			    		例如:select * from student where name="zl" and sex="男";
			    --or	多个条件任一成立
			    		例如:select * from student where name="zl" or sex="男";
			    --not	不成立,例:where not(expection>10000);
			    	    例如:select * from student where not name="zl"
			limit分页:
				格式1:数据 limit 行数;
						显示多少行数据
				格式2:数据 limit index,行数;
						从下标开始显示多少行数据
		updata:修改
				格式:updata 表名 set 字段=值 where 筛选条件;
				例如:updata student set sex="男";
				例如:updata student set sex="男" where id between 10012 and 10014;
				注意:如果updata修改没有加where子句,会把当前字段中所有数据都进行修改
		delete:删除
				格式:delete from 表名 where 筛选条件;
				例如:delete from student;
				例如:delete from student where sex="男";
mysql对大小写不敏感,但是表名区分大小写
		distinct:去重
				格式:select distinct 字段1,字段2... from 表名 筛选条件
				例如:select distinct name from student;
				例如:select distinct name,age from student;
				注意:字段必须放在distinct后面
						多字段时,以字段组合在一起的结果去重
		as:取别名:把查询到的结果,显示的名称进行更改和使用
				格式:结果 as 名称
				注意:as可以不写
3.聚合函数:
		count:统计行数
				格式	:count(列名)
				例如:select count(*) from student;
				例如:select count(name) from student;
				注意:单独查询一列时,null不参与统计
					 count()不能写在where子句
		sum:求和
				格式:sum(列名)
				例如:select sum(age) from student;
				注意:只能对数字的列进行求和
					 列中有null,不就影响计算结果
					 avg()不能写在2where子句	
		max/min:求最大最小值
				格式:max()
				例如:select max(name) from student;
				注意:可以对vachar的列进行获取
					 列中有null,不会影响计算结果
					 max/min不能写在where子句
		concat:多字段进行拼接显示
				格式:concat(字段,字符串,...)
				例如:select concat(name,",",sex) from student;
		+拼接和求和
				例如:select age + '20' from student;
		     		 名字会显示为age+'20'
		     		 结果每一个数据都进行+20
		时间函数
				select current_timestamp, current_timestamp();
				(日期转换为字符串) 函数:date_format(data,format)
					select data_format(current_timestamp(),"%Y-%m-%d");
				(字符串转化为日期) 函数:str_to_date(str,format)
					select str_to_date("2020-09-23","%Y-%m-%d");
				日期相减函数:datediff(date1,date2)
					select datediff(str_to_date("2020-09-23","%Y-%m-%d"),str_to_date("2020-08-23","%Y-%m-%d"));//注意:是date1-date2
				date_add():函数向日期添加指定的时间间隔。
					select data_add(STR_TO_DATE("2021-01-01","%Y-%m-%d"),INTERVAL -5 day);
			round():四舍五入
				保留整数
						格式1:round(值)
				指定保留几位小数
						格式2:round(值,保留几位小数)
				注意:只计算小数点后第一位
			floor():向下取整
				格式:floor(值)
			rand():随机数
				格式:rand()
				注意:产生随机数范围在0-1之间
			oder by:排序
				格式:order by 字段,字段...;
				asc升序,desc降序
				注意:默认是升序的
				在查询过程中from->where->order by->limit->select
	4.求TopN
			select * from student order by age limit 3;
			group by:分组
				格式:group by 字段,字段...;
				例如:select max(age),sex from student group by sex;
				注意:分组之后select 显示的结果,分了几组就显示几条
					 分组过程中把相同的数据聚合到了一起,所以分组和聚合函数一起使用
				having:筛选
				例如:select count(*) as count from student group by sex where count<6;//不好使
					 select count(*) as count from student group by sex having count<6;
				having和where的区别:	
					where先筛选之后再产生结果,不能使用产生的结果作为条件
					having先产生结果之后再进行筛选,能使用产生的结果作为条件
求简单TopN
		select * from student ordey by age limit 3;	
						
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值