MySQL数据库常用命令

mysql数据库
数据库管理软件:oracle,mysql,sqlserver
数据库中的数据都是存放表里的,表定义了数据在表中如何储存的
表结构:是由列(字段)组成的,按行存储的,一行就是一条记录
主键:唯一标识中每行的列称为主键,表示特定的一行,每行都不重复也不为空
外键:表1中的主键出现在表2中,则表2中的这列称为外键,表2–称为表1的从表,表1–称为表2的主表

查询语句:select语句
select * from 表 (表示表的所有内容;可单个查看,改为列名;查看多个指定的列,多个列名用逗号隔开)
作用:从一个或多个表中查询信息
sql语句不区分大小写,每一条sql语句用;表示结尾
show databases/tables–查看所有库/表的语句

use+库名–进入该库

desc+表名–将该表中的内容降序排列

select distinct 列名 from 表名;–将该列中重复的元素合成一行,多列的话,则将多列共同重复的元素合成一行

select * from limit n;–表示可以查看第一行到n行的数据,查看某个区间的数据是 n,m表示查看的是n行后面m行的内容(不包括n行,从n+1行开始)

select * from 表名 order by 要排序的列名–将该列进行排序,可以跟多层列名(排序从第一列开始,有重复的才会根据第二列进行排,无重复的以第一列排序为准) 排序语句–order by也可以进行升序(asc)和降序(desc)进行排列,默认为升序,降序的话需要对每个要排序的列名都要加decs。例:select * from 表名 order by a desc,b desc;(在哪个列名后加decs则将该列进行降序,另外一个保持默认升序)limit语法和order by语法可以一起使用(用来取最大值和最小值),但limit只能跟在order by后(不然会报语法错误)

where语句(过滤,条件语句)筛选条件,例select * from 表名 where 需要筛选的列名以及值,在同时使用order by和where语句时,where在前,order by在后。(字符串需要加引号)
选择空值时用is null

between and区间–跟在where后,查看区间范围,数值跟在and前后,and起并列作用

and–把符合前后条件的行筛选出来(前后条件共同满足)

or–把符合前面条件和后面条件的行筛选出来(前后条件满足其一就可以)

and和or有优先级,先and后or,如果要先执行or,那么需要给or加上括号,三者的优先级是括号>and>or

in–筛选出in中内容的行,这个内容可以多选用逗号隔开

not–将原来的意思反过来,例:not in–就是选出没有这个in中内容的行

like–模糊查询,其中包含通配符(%和_)。%–表示字符串前后都可以用,例like ‘a%’意思就是以a开头所有的行。_–表示单个字符前后都可以用,例like ‘_a’意思就是该列中第二个字符为a的元素的行
处理文本的函数(用在select和where都可以)
支持加减乘除
as–更改列名

concat()–拼接函数

lenth()–长度函数

substring()–截取字串函数,对字符进行切割

lower()–全部转换为小写

upper()–全部转换为大写

trim()–去除两边的空格,ltrim–去除左边的空格,rtrim–去除右边的空格
处理日期时间的函数(具体看例子)
curdate()–查看时间,只能看到哪年哪月哪号。例select curdate()–查看当前时间年月日

curtime()–查看时间,只能看到几点几十几分。例select curtime()–查看当前时分秒

now()–查看时间,可以看到哪年哪月哪号几点几十几分,例select now()–查看当前时间(年月日时分秒)

datediff()–计算和预期的时间相差几天,例select datediff(now(),预期时间)–会计算出相差的天数

adddate()–对当前的时间进行计算,可以往前可以往后,例select adddate(now(),天数)–天数可以为正也可为负,会计算出几天后/前的时间

year()、month()、day()–对表中的年月日进行筛选,例select * from 表名 where year(列名)=筛选的值 and month(列名)=筛选的值 and day(列名)=筛选的值–可以看出否和这几个要求的元素行 另一种用substring截取的方法–在where后使用substring(列名,切取元素第几位,后面的几位)=要取的值 也可以用like例:where 列名 like '要查询的时间段’和between and例:where 列名 between ‘时间段’ and ‘时间段’
聚焦函数(都用在select后)
count()–统计某列的行数,不包括空行

max()–统计某列的最大值

min()–统计某列的最小值

avg()–求某列的平均值

sum()–求某列的和

group by–进行分组操作,类似于去重,并进行统计(是无序的,排序用order by),用在where后order by前

having–类似where,对组进行筛选,和where一样跟在group by后面

子查询
在select语句中套select语句

select * from 表 (查)
insert into 表 (列名) values (列值) (增)
也可以不加列名,直接添加列值,结果则是按照列的顺序递增
update 表 set 列名=列值 (改)
特别注意,改特定的一行时,后面加上where,不然修改的就是整个列的值
delete from 表 where 条件 (删)
和改一样,不加where则默认的删除一个表所有的内容。如果要删除一个表的话则用delete table 表名
truncate table–删除一张表包括所有内容并从新建一张空表

笛卡尔积
select * from 表名,表名–意思是将第一个表中的每行数据都乘以第二个表的每行
连接方式
内连接
select * from 表名 a join 表名 b on a.列名 = b.列名;–意思是将表a和表b中相同一列的所有行并在一起。select * from 表名 a,表名 b where a.列名 = b.列名;俩种写法,结果都一样(表后跟的a,b为表的别名,以便后面方便写)
外连接分为(统称为外连接):左连接–left join on
右连接–right join on 左连接和右连接有主表和副表之分,on前为主表,主表中有的数据,附表中没有的话用null展示,副表中有的主表中没有则不展示
自连接–就是在同一张表中操作
多表连接用and连接就好
连接中where和on的区别
在执行语句中先执行join on语句在执行where语句,on后面的筛选条件主要是针对关联表的(对于主表的筛选条件不适用)对于主表的筛选条件应该放在where后面,不应该放在on后面。
执行先后顺序from>join on>where>group up>having>order by

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值