MySQL

主键(primary key)即一系列数据中那个数据是用来作为标识的,即跟其他不同,方便查询(一般用id表示)。
1.每行数据独一无二的标识
2.一个表必须有主键(只能有一个,但可以是几列)
3.不能为NULL(空值)
4.由一列或者多列组成
Unique key
1.表示数据不能重复
2.允许一条可以为NULL

一、所有的SQL语句如果结果是每一***,就一定要用GROUP BY
二、如果查询出的列,在不发生JOIN的情况下比原有的表列多,就必须用聚集函数;大多情况下还得用case when

什么是聚集函数:sum, count, max, min, avg, group_concat

case when
CASE WHEN a = 1 THEN 10 WHEN a = 2 THEN 20 ELSE 30 END

SQL语句是语言用于处理Mysql(软件)的数据库

Mysql:增、删、改(均改变)、查

1、查询语句
Select(输出) …from(获取数据)…where(过滤)…group by(分组)…having(过滤)…order by(排序)…limit(限定个数)…;
2、执行顺序
From ----> Where ---->Group by ----->Select ------>Having ----->Order by---->Limit
3、数据流
数据组织以表的形式
表格 (二维的数据)
同一行是同一事物的内容
每一列是事物的一个属性

有一个表 id name classid 是其中的属性

FROM
Select * from Stu;
from即从Stu拿到所有数据,select(显示) 新号(一条数据全部属性)
Select name from Stu; 只要name

WHERE
Select name from Stu Where name = ‘小刚’;
返回所有的小刚或者NULL(没有)
WHERE 1=1跟没写一样

GROUP BY
Select *from Stu group by classid; 用班级分组
将一班的第一行和二班的第一行进行输出,其他的丢弃掉了,并不会分组全部数据,但是它会对classid进行从小到大的排序
升序 ASC (默认)
降序 DESC

GROUP BY和聚集函数
Select count(1), classid from Stu group by classid;
group by name, classid 两个都相同的会被分到一组

HAVING
对select出来的结果再进行过滤,即二次过滤,有grou by ,select后即只有一类一条数据了,再过滤
WHERE和count(1)不能写在一起,因为还没有进行分组,如果要用,用HAVING
要求:输出班级人数大于2的班级号
select classid from stu group by classid having count(1) > 2;

ORDER BY
对having后的结果再进行排序,同样可以用两列来排序

LIMIT
LIMIT 2 前两行
LIMIT 1, 2 从1开始取,取两个

count(1),计录每组有多少个,,这样就会返回两个属性,count(1), 和classid, count(1)是每组的个数,同样也只输出两组的第一行内容
count(name) 数有多少个name
count(distinct name)数name,但去重

count(1)和count(name)的区别
如果name中有null, 那么count不记录null, 其他两者一样

聚集函数:
sum, count, max, min, avg, group_concat(字符串的结合)
sum(1) = count(1)

case when :(注意mysql里没有= 没有==)
形式:(相当于if elif else)
Case When 表达式
Then 输出
When 表达式
Then 输出
Else 输出
End

步骤

1、CREATE DATABASE 数据库名
2、use database 选择要报存的数据库
3.CREATE TABLE 表格名(属性 类型 …)DEFAULT CHARSET = UTF8mb4
eg: create table stu(id int primary key, name char(10), classid int)default charset = utf8mb4;
4.插入数据
INSERT INTO 表格名(属性)VALUES(属性对应的值)
eg: INSERT INTO stu(id, name , classid)VALUES(1, ’李好‘, 1);
INSERT INTO stu(id, name , classid)VALUES(1, ’李好‘, 1),(2,‘他好’, 1),…;
5.清空数据表
TRUNCATE 表名

模糊查找
select * from tiaoji_test where majors like"%计算机%";

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值