mysql表操作
Posted SyMoon_g
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表操作相关的知识,希望对你有一定的参考价值。
mysql表操作:
插入:
insert into 表明()....
创建:
create table user(host char(60),user char(16))
select host,user from mysql.user
创建表的时候用查询到的表的结构,字段和记录
create table user_new1(ip char(60),username char(16))
select host as ip,user as username from mysql.user;
依然是创建表的时候拿到查询的表的结构,字段和记录,但是如果后面不加as命名的话吗,
就会有四个字段,自己创建的那两个字段也会出现,不过记录不会再里面。所以想要改变名字
必须要用as
select host as 主机名,user as 用户名 from mysql.user;
可以在查询的时候将查询的显示的字段改名字,利用as
更新:
update db1.t1 set 字段=值 where id>10 or(and) id < 30;
后面跟条件,当满足什么条件或者什么条件 还有满足什么条件和什么条件的时候
删除:
delete from 表名 条件;
删除表中满足什么条件的记录
清空表:
truncate 表名;
单表查询语法:
select * from 表名;
*可以是表中所有字段,也可以是某些字段或者某个字段下的记录
select distinct 字段 from 表名;
去重用法,查询到的虚拟表去重
select 字段,int字段*整型数字 from 表名;
同样也可以用as将数字运算的结果记录来改名,也可以不加as做到改名字的目的
select concat(‘查看信息:‘,字段)from 表名;
利用concat()函数看可以拼接字符串,这样可以令显示的记录更加清晰
select concat_ws(‘:‘,字段,字段)from 表名;
显示效果【字段:字段】
concat_ws()可以拼在数据中间
在单表查询的顺序中,最先的是约束条件,然后是分组,然后是过滤,然后到去重复,然后再排序,
最后是限制条件
where 约束条件,可以是比较运算符 主要是用来确定条件是什么或者大小范围
例如:
要寻找class表中ID大于5的
select * from class where id >5
要寻找class表中ID等于5的
select * from class where id =5
其他运算符同上,没什么区别
可以用between来规定范围
select * from class where id between 1 and 5
可以用in来确定具体范围
select * from class where id in(1,5)
可以用like来约束具有部分条件的记录
select * from class where name like ‘e%‘
看可以使用and or not
约束条件可以用等号来确定是某些具体的字符串
或者用运算符还有范围来确定数字范围
select post,count(id) from class group by post
group by分组,分组的话将表中的记录以一块一块那种方式来进行操作,也就是说具有
相同字段值的记录,将会聚合到一块来进行使用。
所以在分组之后,再使用where约束,就无法像未分组前那样单条约束了,所以where约束
要放在分组之前
group可以使用聚合函数来进行操作,count字段个数,max最大值,min最小值,avg平均值
sum和。
分组的目的是为类以组为单位来处理记录,而不是处理单独的记录
用group_concat()函数也可以查询各个分组的相应字段的记录
过滤条件having
having 用在分组之后,也就是说having所利用的过滤条件,只能是分组的聚合函数
因为分组之后记录变成一块一块的处理,无法用于单挑记录的过滤,所以只能用聚合函数
having也可以做到where那种约束,不过一般用于分组后
where不能用在分组后利用聚合函数为条件
order by 默认为升序,也可以用desc设置成降序
可以设置先按照字段数据升降序,如果数据相同的再按照id升降序
select * from employee order by age asc,id desc;
limit限制条件放在最后
select * from class order by id desc limit 1;
这样显示降序按照id排序,id最大的就再最上面,再限制只取一个的话,取出来的就是id最大的那个人
elect * from employee where name regexp ‘^e.*n$‘;
regexp后面写正则
以上是关于mysql表操作的主要内容,如果未能解决你的问题,请参考以下文章