在mysql中length是计算字段的长度一个汉字是算三个字符

char_length是有一点区别,本文章重点介绍第一个函数。
mysql里面的length函数是一个用来获取字符串长度的内置函数。具体用法示例如下:

(1)查看某字符串的长度(比如本站网址)

SELECT LENGTH('www.shiciyue.com')

(2)查询文章表(article)中标题最长的10篇文章

SELECT id,title FROM article ORDER BY LENGTH(title) DESC;

(3)查出用户名长度小于6个字符的用户列表
SELECT * FROM user WHERE LENGTH(username) < 6;

在mysql内置函数里面查看字符串长度的还有一个函数是char_length,这两个函数的区别是:
length: 一个汉字是算三个字符,一个数字或字母算一个字符。

char_length: 不管汉字还是数字或者是字母都算是一个字符。

 

 

一、单表查询

1.查表的数据

select * from stu; (*代表所有字段,stu是表名)
2.查询表中的姓名和学号字段

select NO,name from stu;(NO,name是字段名,stu是表名)
3.查询表中的专业

消除重复值distinct,要消除谁就在谁前面加上distinct

select distinct sdept from stu;(sdept是字段名,stu是表名)
4.查询时使用别名

别名就是显示名,方便查看,并不改变实际列名称

查询时修改NO为学号,name为姓名(其中as可省略)

select NO as 学号 , name as 姓名 from stu;
5.查询时修改年龄都加一岁,成绩加2(此时无列名)

select age+1 , score+2 from stu;
二、条件查询

1.相等条件查询

①:查询专业为计算机同学的情况

select * from stu where sdept = "计算机";
2.不相等条件查询

①:查询年龄大于18岁的同学信息

slelect * from stu where age > 18;
②:查询成绩大于70分,英语专业同学的姓名(多个条件查询+and)

select name from stu where score>70 and sdept="英语";
③:查询不是计算机专业的同学姓名、年龄

select name,age from stu where sdept != "计算机";
3.区间查询 between、 not between

①:查询年龄在18-20之间的同学信息

select * from stu where age between 18 and 20;
②:查询成绩不在60-80之间的同学信息

select * from stu where score not between 60 and 80;
4.确定具体值 in、not in

①:查询年龄是16、17岁学生的姓名、系别、年龄

select name,age,sdept from stu where age in (16,17);
②:查询不是计算机、英语、建筑系的学生姓名、性别

select name,xb from stu where sdept not in ("计算机","英语","建筑系");
三、模糊查询

1.like运算符查询

通配符:%代表多个任意字、_(英文状态下的下划线)代表单个字

①:查询姓王同学的信息(只知道姓王,但不知道几个字)

select * from stu where name like "王%"
②:查询两个字的名字,姓王同学的信息

select * from stu where name like "王_"
③:查询名字第2个字不是小的同学学号和姓名

select NO,name from stu where name not like "_小%";
四、空值查询

1.涉及空值的查询

①:查询没有成绩的同学

select * from stu where score is null;
2.多重条件查询

①:查询计算机或16岁上英语系的学生姓名、年龄、性别

select name,age,xb from stu where sdept="计算机" or age=16 and sdept="英语"
与(and)、或(or)、非(!)在同一句里的优先级:非>与>或

5.order by 语句

对查询结果按一个或多个属性列升序(asc),降序(desc)排列,若什么都不加,默认升序asc

①:查询英语专业学生的学号和成绩,查询结果按分数降低

select NO,score from stu where sdept="英语" order by score desc;
②:查询全体学生情况按性别降序

select * from stu order by xb desc;
③:查询全体学生情况,查询结果按所在系的名称升序,同一系按年龄降序

select * from stu order by sdept asc,age desc;
 


 

posted @ 2022-09-29 11:23  八路逆袭寡妇村  阅读(2172)  评论(0)    收藏  举报
www.zxzidian.com