mysql从创库到查询基本命令

mysql从创库到查询基本命令

创建数据库

创建数据库 'db_my ',并设置为utf-8编码
create database if not exists db_my character set = utf8;

show databases; 显示数据库

use db_my; 切换到数据库 db_my

drop database if exists db_my; 删除数据库 db_my;

创建表

table
字段id 为主键,且自增从1开始
字段createtime 的类型为timestamp,该时间类型支持默认值,以当前时间为默认值

desc tb_prd; 查询表结构
在这里插入图片描述
alter table tb_prd add index index_id (id); 增加索引,索引名为index_id 索引列(id);

alter table tb_prd add email varchar(50) not null; 增加列 email varchar(50) not null

alter table tb_prd modify user varchar(40) not null; 把列user修改为 user varchar(40),原来是 user varchar(30) not null

修改后的表结构
在这里插入图片描述

rename table tb_prd to tb_pra; 修改表名tb_prd为tb_pra;

drop table if exists tb_pra; 删除表 tb_prd,如果存在的话

插入数据

insert into tb_pra values (1,‘name_a’,‘123’,now(),‘myqq@qq.com’);

也可以指定列插入数据
insert into tb_pra (user,password,email) values (‘name_b’,‘456’,‘qq@163.com’);

多行插入数据,数据部分之间以逗号隔开
insert into tb_pra (user,password,email) values (‘name_a’,‘123’,‘myqq@qq.com’),(‘name_b’,‘456’,‘qq@163.com’);

修改数据

update tb_pra set password=‘123’ where id=2;

删除数据

delete from tb_pra where id=2;

数据查询

select * from tb_prd; 查询表的所有列所有行
在这里插入图片描述
select user,password from tb_prd;查询表的user,password所有行
在这里插入图片描述

条件查询

select * from tb_prd where id=1; 查询id=1的记录
在这里插入图片描述

in语句

select * from tb_prd where password in (‘123’,‘456’); 即password的值与括号内的值相符的记录,可理解为password=‘123’ or passowrd=‘456’
在这里插入图片描述
between and 语句
select * from tb_prd where id between 1 and 3;可理解为 1<=id and id<=3
(and 指多个结果true则true, or 则指有一个结果为true 则true)
在这里插入图片描述

带like的字符匹配查询

select * from tb_prd where createtime like “2018-10-13%”;

在这里插入图片描述
‘%’可以匹配一到多个字符(最少0个字符)
select * from tb_prd where createtime like “2018-10-13%”;
在这里插入图片描述

'_‘只能匹配一个字符(一定要匹配一个字符)’

select * from tb_prd where user like “name_”; 不会匹配到name
在这里插入图片描述

is null

如何值为null,则会返回true,否则返回false
select * from tb_prd where id is null;
select * from tb_prd where od is not null;

distinct 去除结果中的重复行

select distinct password from tb_prd;
只会显示字段password的非重复结果
在这里插入图片描述

在这里插入图片描述

order by 对查询结果排序

order by 字段名 [asc|desc] asc升序(默认),desc降序
在这里插入图片描述
按多个字段排序,先比较password,如果 password相同,再比较id
select * from tb_prd order by password asc,id desc;
在这里插入图片描述

group by 分组 ,将数据划分到不同的组中

select count(*) from tb_prd group by password;将password相同的记录分成同一组
在这里插入图片描述

LIMIT 限制查询结果的数量

select * from tb_prd limit 3; 查询前3行
在这里插入图片描述

select * from tb_prd where id order by id asc limit 2,2;第一个参数2,指 跳过2条记录,即从第3条记录开始查询,第2个参数 2 指查询数据结果数量2条
在这里插入图片描述

聚合函数

count()
select count(*) from tb_prd;
select count(id) from tb_prd;
统计选择集合中非NULL值的行的数目

sum()
选择字段取值的总合
select sum(id) from tb_prd;

AVG()
所选择字段取值的平均值
select avg(id) from tb_prd;

MAX()
所选择取值的最大值
select max(id) from tb_prd;

MIN()
所选择取值的最小值
select min(id) from tb_prd;

连接查询

tb_pra
在这里插入图片描述
tb_prd
在这里插入图片描述

内连接

select tb_prd.user,tb_pra.user,tb_prd.password from tb_prd,tb_pra
where tb_prd.password=tb_pra.password;
在这里插入图片描述

左连接

将左表部分中的所有数据分别与右表中的每条数据进行组合,
包括左表中不符合条件的数据,并在右表的相应列中添加NULL值
select tb_prd.user,tb_pra.user,tb_prd.password from tb_prd left join tb_pra
on tb_prd.password=tb_pra.password;
在这里插入图片描述

右连接

与左连接相返,相当于tb_pra left join tb_prd;
select tb_prd.user,tb_pra.user,tb_prd.password from tb_prd right join tb_pra
on tb_prd.password=tb_pra.password;

在这里插入图片描述

exists 有则返回true,无则返回false

select * from tb_prd where exists (select * from tb_prd where id=0);

ANY表示 满足任意一个条件
select * from tb_prd where id <any (select id from tb_prd where id >=3);
在这里插入图片描述

ALL表示满足所有条件
select * from tb_prd where id <all (select id from tb_prd where id>3);
在这里插入图片描述

union 将查询的结果合并在一起并除去相同记录
select * from tb_prd where password=‘123’ union select * from tb_prd where password=‘456’;
![在这里插入图片mNzZG4ubmV0L3FxXzQxNjMxMDk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

union all 不会去除相同记录
在这里插入图片描述

内容比较基础,但讲述的比较繁琐,放入了大量执行结果的图片,希望有助于大家对这些命令的理解,多动手尝试。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值