MySQL数据的操作与查询

一. DML(数据操作语言)

insert

	方式一:
	insert into stars values('1','薛之谦',32, 50000, '上海');
	默认不指定字段,值是从第一个按顺序往后加.
	方式二:
	insert into stars(name, money, province) values('赵本山', 100000, '东北');
	方式三:
	 insert into stars(name, age, money, province) values('黄晓明',40, 80000,'山东'),
	 ('柳岩',38, 30000, '四川'),
	 ('杨颖', 28, 40000, '上海'),
	 ('范冰冰', 38, 90000, '山东'),
	 ('林志颖',40, 70000, '台湾'),
	 ('林志玲', 40, 120000, '台湾'),
	 ('朱茵', 45, 10000,'香港'),
	 ('张国荣', 50, 0, '香港'),
	 ('成龙', 60, 150000, '香港');
**delete**
	删除数据,[注]删除数据时候要注意有where条件
	delete from stars where id=18;件,
	
**update**
	修改数据,,[注]修改数据时候要注意有where条件
	update stars set money=1 where id=13;
	修改多条数据,中间使用逗号隔开
	update stars set province='shanghai',money=2 where id=13;

二. DQL(数据查询语言)

**基础查询**
	select * from stars;
指定字段查询(重复和不重复)
	select name,money from stars;
	[注]查询的时候,多个字段之间使用逗号隔开.
	select  distinct province from stars;(不重复)
**条件查询**
	 select name from stars where id > 13;
	 select name, age, money from stars where age > 38 and money > 100000;
	 select name, age from stars where age between 30 and 40;
	 select name from stars where name like '_冰';
	 [注]'_'只匹配一个字符
	 select name from stars where name like '%冰';
	 [注] '%冰',匹配的是冰前边的所有字符
**结果集排序**
	降序排列:desc
	select * from stars order by id desc;
	升序排列:asc
	select * from stars order by id asc;
**限制结果集**
	select * from stars order by age desc limit 5;
	select * from stars order by age desc limit 0,5;
	limit(偏移量,每页显示的条数)
	0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
	第一页: limit 0, 5
	第二页: limit 5, 5
	第三页: limit 10, 5
	....
	
	第n页: limit (n-1)* 5 , 5
	
	
	
	
**常用统计函数**
	max
	min
	sum
	count
	avg
		
**分组**
	分组统计
		select * from stars group by province;
		这样分组没有任何意义.
		
	结果集过滤
	结果集:
	select province, count(province) from stars group by province;
	如果要对结果集限制:使用having
	select province, count(province) from stars group by province having count(province) >= 2;
	
	[注]使having和where都是条件限制,where是对表的限制,having是对结果集的限制.
	整体使用
	
**多表联合查询**
	连表查询:
	select * from user,goods;
	这样的结果是显示两张表的乘积.将所有的信息都显示出来.
	**内连接**
		隐士
		select user.name,goods.name from user,goods where user.gid=goods.gid;
		[注]两张表之间使用逗号隔开.
		显式
		select user.name,goods.name from user inner join goods on user.gid=goods.gid;
		[注]使用表1 inner join 表2 on 条件
	**外连接**
		左连接
		select * from user left join goods on user.gid=goods.gid;
		右连接
		select * from user right join goods on user.gid=goods.gid;
		
		[注]在有外链接时,根据left或者right来决定哪张表是主表,如果是主表,它的信息是完整的.
		
		请选出哪些商品没有被购买过
		select goods.name from user right join goods on user.gid=goods.gid where user.gid is null;
		
		
		找出那类商品销量冠军???
		select goods.name,count(user.name) from user right join goods on user.gid=goods.gid group by goods.name order by count(user.name) desc limit 1;
		
		找出销量冠军产品及价格
		select goods.name,count(user.name),goods.price from user right join goods on user.gid=goods.gid group by goods.name order by count(user.name) desc limit 1;
子查询
记录联合
两个表同时更新
清空表记录

三. 数据库导入导出

	unsigned和zerofill
	unsigned(无符号): 主要用于整型和浮点类型,使用无符号。即没有前面面的负号,所有的数都为正数
	zerofill: 0填充
	auto_increment:自动增加经常结合primary key 使用
	default:  默认
	not null:不为空
	
	
	导出:
	首先推出MySQL,进入正常的终端下边
	mysqldump -uroot -p 数据库名 > 导出到的本地的文件路径
	
	导入:
	首先要有一个库名
	mysql -uroot -p 数据库名 < 导入的本地文件路径
	
	
	[总结]无论是导入还是导出,只要输入命令没有出现错误就表示成功了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值