MySQL:alter修改库、表和字段;添加数据;修改数据;筛选数据;查询语句;删除数据;常用函数和操作

一、alter

作用: 修改库、修改表、修改字段

1、修改库的编码集

alter database 库名 character set 编码集

2、修改表的编码集

alter table 表名 character set 编码集

3、修改表名

alter table 表名 rename to 新表名

4、修改字段

(1)alter+change

alter table 表名 change 旧字段 新的字段 字段类型 字段属性;

只想修改字段类型和属性,新的字段名字不动,只修改后面的内容。

字段类型修改要注意表中的内容符不符合新的字段类型和属性,如:字段中有字符窜的内容,则字段类型不能修改为int类型。

(2)alter+modify(只能修改字段的类型和属性,不能修改名称,同样要注意表中内容和新的字段类型和属性匹配不匹配)

alter table 表名 modify 字段 字段类型 属性;

5、字段添加

alter table 表名 add 字段名 字段类型 字段属性;

6、字段删除

alter table 表名 drop 字段名;

二、添加数据 insert into

insert into 表名(字段名1,字段名2...字段名n) values('值1','值2',....'值n'),(),.....();

注意事项:

1.值一定要加单引号, 方便与其他的语言的使用

2.字段和值之间的数量要一一对应

3.字段和值之间的位置一一对应

4.字段可以不按照顺序给

三、修改数据update...set

update 表名 set 字段1='值1',字段2='值2'...字段n='值n';

默认修改所有数据,若想修改某一行数据,则要在后面加上筛选where,没有筛选则会把每一行的数据修该掉。

例:UPDATE `students` SET `name`='yxw' WHERE (`id`='1014') AND (`name`='show') AND (`age`='20') AND (`sex`='1');

四、where筛选数据

格式:操作   where   判断条件

>  <  <=  >=  =  <>大于、小于、大于(小于)等于、等于、不等于
between ...and...显示在某一区间的值
in(set)显示在in列表中的值,例:in(100,200)
like '张_'模糊查询 使用% (匹配所有)和 _(匹配一个所有)
Is null判断是否为空
and多个条件同时成立
or多个条件任一成立
not不成立,例:where not(expection>10000);

五、查询语句select...from

select 字段1,字段2...字段n from 表名

select id as '学号',name as '姓名', age '年龄' , sex '性别' from students;  查询显示可以用as来使字段名用别的字符窜来代替。

select * from students;    表示查询所有字段

select * from student where age between 18 and 22;# 查询age在18-22的
select * from student where age in(18,22); # 查询age等于18和22
select * from student where name like 'z%'; # 查询z开头的
select * from student where name like 'z_'; # 查询z开头两个字的
select * from student where name is null;  查询字段name为空的

select * from students where age>=18 and age<=22;  与
select * from students where name='zs' or name='ls';   或

六、delete from删除数据

格式:delete from 表 [where 子句]

表示清空所有数据

delete from stduents;# 默认清空所有数
delete from students where sex='0';删除sex=0的数据
delete from students where name like 'z%';删除name等于z开头的

七、常用函数和操作

1、distinct (去重)

格式:DISTINCT 字段1,字段2...字段n

注意:

1.有DISTINCT的SQL语句只能做去重使用,并且前面不能加字段和*。

2.DISTINCT会根据之后的字段一起做去重

查询显示去重
select DISTINCT name from students; # 对name去重
select DISTINCT name,age from students; # 对name和age一起去重,只会去重name和age相同的。

2、字段进行算数运算

注意:varchar类型字段如果不是数值数据,在进行运算时默认为0;

数值类型的varchar可以进行算数运算。

select price+sum from goods;

3、字段的拼接

查询显示时可以在前面加上其他字段去显示。

concat

字段和字段之间如果有拼接符 需要手动加上

格式: concat(值1,值2...值n)

select concat(name,age) from students;
select concat(name,'-',age,'-',sex) from students;

concat_WS

字段和字段之间如果有拼接符 需要只当拼接符 自动去加

格式:concat_WS(拼接符,值1,值2...值n)

select concar_WS('-',name,age) from students # 结果会在name和age之间自动加上-

4、聚合函数

count() 求一个列总共有多少条(行)数据

格式:count(列)

注意:不会计算列对应数据为null的。

avg()  求这一列所有数据的平均数,不会算上数据为null的一行

格式:avg(列) 

sum()  求一列的所有数据之和

格式:sum(列)

min()  求一列的所有数据的最小值

格式:min(列)

max()  求一列的所有数据的最大值

格式:max(列)

select count(age) from students; # 求age这一列有多少条(行)记录,null不计
select count(*) from students; # 求总共有多少条记录
select avg(age) from students;  求这一列所有数据的平均数
select sum(age) from students;  求一列的所有数据之和
select min(age) from students;  求一列的所有数据的最小值
select max(age) from students;  求一列的所有数据的最大值
​
# 可以获取varchar的最大值 和最小值
    select min(name) from students; 
    select max(name) from students;

5、浮点数的计算

floor():向下取整,无论小数位是多少,去整数位

ceil() :向上取整,只要大于整数位,整数位加一

round(X,D): D表示保留几位小数 ,四舍五入针对于D+1位

round(X):四舍五入只针对于第一位小数,不保留小数

rand();随机产生0-1之间的小数

select floor(10.5);# 10
select ceil(10.2); # 11
select round(10.2);#10
select round(10.4555,2);#10.46
select round(rand(),1)*10; 随机生成0到10的数,包括0和10。

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值