sql逗号隔开的字段怎样查询_SQL-SQL检索阶段⼀
⼀说明
如果是初学者,建议去⽹上寻安装Mysql的⽂章安装,以及使⽤navicat连接数据库,以后的⽰例基本是使⽤mysql数据库管理系统;⼆准备前提
需要建⽴⼀张学⽣表,列分别是id,名称,年龄,学⽣信息;本⽰例中⽂章篇幅原因SQL注释略;
建表语句:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中的数据:
INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (1, 'youku1', 18, '⼤⼀新⽣');
INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (2, 'youku2', 23, '毕业⽣');
INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (3, 'jeff', 25, '社会⼈⼠');
INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (4, 'smile', 17, '⾼三学⼦');
三基本检索
3.1 select 关键字
sql 都是由许多关键字(keyword)组成的语句,关键字是数据库的保留字,⽤户不能将其当作建表的表名,字段等;表中的数据检索使⽤select关键字作为开头进⾏查询数据库表的信息;
3.2 检索单个字段
语句⽰例:
SELECT name FROM student
查询结果:
youku1
youku2
jeff
smile
语句分析:
select 是 查询 的意思 , name 代表表中的字段 ,from 表⽰来⾃哪张表,其后⾯的student就是表;连起来的意思就是查询字段是name 的数据来⾃表student;
3.3 sql语句注意点
多sql语句⼀起执⾏使⽤封号(;)隔开,在拼写语句时表的关键字都建议使⽤⼤写,表的字段和表名使⽤⼩写;为了容易阅读建议将sql分成多⾏(由于⽂章篇幅原因就不分了);sql语⾔也是使⽤英⽂字母,不要开中⽂,以免造成符号错误不容易发现;sql语句默认不区分⼤⼩写;
3.4 检索多个字段
语句⽰例:
SELECT name,age FROM student;
语句结果:
youku1  18
youku2  23
jeff    25
smile  17
语句分析:
查询字段 名字,年龄来⾃表student;多个列检索时使⽤逗号(,)隔开;
3.5 检索所有字段
语句⽰例:
SELECT * FROM student;
语句结果:
1  youku1  18  ⼤⼀新⽣
2  youku2  2
3  毕业⽣
3  jeff    25  社会⼈⼠
4  smile  17  ⾼三学⼦
语句分析:
通配符 (*)表⽰返回表中的所有列,如果不是必须建议不要使⽤通配符,会影响数据库性能;
3.6 distinct
distinct 表⽰区分,意指检索出来的⾏是唯⼀(去重),其放在列的最前⾯;如果使⽤了关键字distinct,其作⽤于后⾯的所有列(由于本⽰例数据没有重复⽰例,结果就不是很清晰);
SELECT DISTINCT name, age FROM student;
语句结果:
youku1  18
youku2  23
jeff    25
smile  17
3.7 限制条数
access 和 sql server :
SELECT TOP 2 name FROM student
mysql操作官方文档
TOP 2 表⽰限制返回前2⾏
postgresql 、SQLite和 mysql:
SELECT name FROM student LIMIT 2;
limit 2 表⽰限制返回前2⾏;
DB2:
SELECT name FROM student FETCH FIRST 2 ROWS ONLY
FETCH FIRST 2 ROWS ONLY 表⽰只抓取前2⾏数据
语句结果:
youku1
youku2
3.8偏移
⽰例:
SELECT name FROM student LIMIT 1 OFFSET 1;
语句分析
表⽰查询列名称来⾃学⽣表 限制条数1,偏移值1;意思就是查询学⽣表中的第⼆⾏数据;offset表⽰跳跃或者偏移;mysql和MariaDB简化形式:
SELECT name FROM student LIMIT 1,2;
表⽰查询字段名称来⾃学⽣表,限制2条,偏移1条;注意顺序;
语句结果:
youku2
jeff
四排序检索
4.1 ORDER BY ⼦句
⽰例:
SELECT name,age FROM student ORDER BY age
语句分析;
检索字段名称,年龄来⾃学⽣表按照列年龄排序;注意默认是升序,ORDER BY ⼦句通常在语句末尾;
语句结果:
smile  17
youku1  18
youku2  23
jeff    25
4.2 多列排序
⽰例:
SELECT name,age FROM student ORDER BY age DESC, name ASC;
语句分析:
查询名称,年龄来⾃学⽣表,按照年龄降序,名称升序进⾏排序;关键字 DESC(descending) 意指降序,字母默认Z-A;
ASC(ascending)意指升序,字母默认A-Z;多列情况下,每个列后⾯指定使⽤DESC,使⽤逗号(,)隔开,如果不写,默认升序;语句结果:
jeff    25
youku2  23
youku1  18
smile  17
4.3 按位排序
语句⽰例:
SELECT name,age FROM student ORDER BY 2 DESC, 1 ASC;
按位指查询字段的位置,2 对应字段age,1对应字段name;结果和4.2⼀致;
五过滤检索
sql 语句中过滤条件(filter condition)的关键字是 WHERE,其使⽤⽅式是跟在表名之后;
5.1 WHERE语句操作符
根据不同的数据库管理系统,其⽀持的操作符略有不同,所以下⽂较多重复意思的操作符,应查阅官⽅⽂档说明,哪些操作符是⽀持使⽤的数据库管理系统;
5.2 单条件过滤
⽰例:
SELECT * FROM student WHERE name = 'jeff';
语句分析;
查询所有字段来⾃学⽣表 条件是 学⽣名称是 jeff;注意 ⾮表字段,表名,关键字,使⽤2个单引号('')括起来,⾥⾯存放的是我们输⼊的数据;
语句结果;
3  jeff    25  社会⼈⼠
5.3 多条件过滤
多条件过滤时使⽤ AND 或者 OR ⼦句;AND连接表达式表⽰过滤条件都为真的数据;OR连接表达式表⽰匹配过滤条件任意⼀个;
AND⽰例:
SELECT * FROM student WHERE age >= '18' AND age <= '23';
语句分析:
查询所有字段来⾃学⽣表,条件是 学⽣年龄⼤于等于18 并且 学⽣年龄⼩于 23;
语句结果:
1  youku1  18  ⼤⼀新⽣
2  youku2  2
3  毕业⽣
OR⽰例:
SELECT * FROM student WHERE age >= '18' OR age <= '23';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。