今天来说一下mysql数据库查询的基础操作
这个地方我的数据库界面软件是sql_yog
下面这个是要用的数据表
#from字句
#去除重复的内容
SELECT gender #查询性别
FROM stu
SELECT DISTINCT gender
FROM stu;
#Where子句(布尔关系表达式)根据某种条件进行判定,为真还是为假
#查询年龄大于20性别为男的
SELECT age,gender#查询的范围
FROM stu#来自哪个表
WHERE age>20 AND gender="M";#查询的条件
#查找年龄小于等于20的女性
SELECT age,gender
FROM stu
#where age<=20 and gender="F";两种写法都阔以
WHERE age<=20 AND NOT gender ="M";
#查找年龄在20到30之间的用户
SELECT NAME, age, gender#注意 用逗号隔开
FROM stu
WHERE age>20 AND age<30;
SELECT NAME,age,gender#两种写法都阔以
FROM stu
WHERE age BETWEEN 20 AND 30
#:查询以y开头的user
SELECT NAME
FROM stu
WHERE NAME LIKE "y%";#%表示匹配任意长度字符
#明确查询以y开头的四个字符组成的名字
SELECT NAME
FROM stu
WHERE NAME LIKE "n____";#任意单个字符,一个——表示一个字符
#查找在字符串中包含字符串‘ing’的user
SELECT NAME
FROM stu
WHERE NAME LIKE "%ing%";
#查询一y n m 任意字符开头的用户
#Select name,age from stu where name RLIK ‘^[YMN].*$’;
#查找年龄为20,30,40的user
SELECT NAME,age,gender
FROM stu
#where age =20 or age=30 or age=40#出现多种情况的时候,需要用or关键字
WHERE age IN(20,30,40);
#查找课程为空的用户
SELECT *
FROM stu
WHERE cid1 IS NULL OR cid2 IS NULL;#注意:这个地方为is null
#查找课程不为空的
SELECT *
FROM stu
WHERE cid2 IS NOT NULL
#order by子句 将查询结果排序
#对所有名字进行升序和降序排列
SELECT NAME
FROM stu
#order by name asc;#升序,注意:这个地方不再使用where语句
ORDER BY NAME DESC;#这个地方是降序
#给字段写别名as 也可以省略
#给name取名字为帅炸天
SELECT NAME AS "帅炸天"#注意写法:直接在选择查询的目标上进行操作
FROM stu
#FROM stu
#SELECT NAME AS "帅炸天1" 注意:select和from的顺序不能放反
SELECT sid "学生id",NAME"学生姓名"#省略as
FROM stu
#给表取别名
SELECT *
FROM stu s;#stu-->s
SELECT s.sid AS '学生id',s.name AS '学生姓名',s.age AS'学生年龄'FROM stu s;
#限制显示条数limit[offset,]count
#从第3条数据开始向下取4条数据
SELECT *
FROM stu LIMIT 2,4#关键字:limit
#v常用聚合函数
SELECT AVG(age) #平均数
FROM stu
#求和
SELECT SUM(age)
FROM stu
#最大值
SELECT MAX(age)
FROM stu
#最小值
SELECT MIN(age)
FROM stu
#取出十个有年龄的人
SELECT COUNT(age)
FROM stu
#选出年龄小于20且性别为女的user的最大年龄
SELECT MAX(age) ,NAME
FROM stu
WHERE age<20 AND gender="F" AND
#Group by 分组(分组的主要目的是用于做聚合运算的)
#用于查询男性和女性的年龄分组平均值
SELECT AVG(age)
FROM stu
GROUP BY gender#将男性和女性分组
下期讲一下多表查询