1.DQL(Data Query Language):
-
几个数据库语言中的最核心的语言
。
-
数据库中所有简单的查询、复杂的查询都是用DQL。
-
使用频率极高。
2.实现过程:
2.1简单select查询及定义别名的语法:
查询表的全部内容:
查询表中指定字段内容(未设置别称):
-
SELECT
字段1名称
,
...
,
字段n名称
FROM
表名
;
查询表中指定字段内容(设置别称):
-
有时候我们字段名称起的不是那么容易看懂,那么我们查询出来可能会造成阅读困难,所以此时我们可以使用 AS 关键字来给字段名起一个别称,方便阅读结果。
-
SELECT
字段1名称
AS
别称
,
...
,
字段n名称
AS
别称
FROM
表名
AS
别称
;
运用concat(a,b)数据库字符串拼接函数来融合查询指定字段(设置别称)。
-
SELECT CONCAT(‘拼接内容’,
字段1名称
) AS
别称
,
...
, CONCAT(‘拼接内容’,
字段n名称
) AS
别称
FROM
表名
AS
别称
;
CREATE DATABASE IF NOT EXISTS `school`;
USE `school`;
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade`(
`grade_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号',
`grade_name` VARCHAR(20) NOT NULL COMMENT '年级名称',
PRIMARY KEY (`grade_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO `grade` (`grade_id`,`grade_name`)
VALUES (1,'大一'),(2,'大二'),(3,'大三'),(4,'大四'),(5,'研究生');
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`(
`student_no` INT(4) NOT NULL COMMENT '学生学号',
`login_pwd` VARCHAR(20) DEFAULT NULL COMMENT '登陆密码',
`student_name` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
`sex` TINYINT(1) DEFAULT NULL COMMENT '性别,0或1',
`grade_id` INT(11) DEFAULT NULL COMMENT '年级编号'
,
`tel` VARCHAR(50) DEFAULT NULL COMMENT '联系电话',
`address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
`birthday` DATETIME DEFAULT NULL COMMENT '生日',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱账号',
`ID_number` VARCHAR(18) DEFAULT NULL COMMENT '身份证号码',
PRIMARY KEY (`student_no`),
UNIQUE KEY `ID_number`(`ID_number`),
KEY `email`(`email`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;
INSERT INTO `student` (`student_no`,`login_pwd`,`student_name`,`sex`,
`grade_id`,`tel`,`address`,`birthday`,`email`,`ID_number`)
VALUES(1000,'123456','张三',0,2,'18888888888','火星','1900-1-1','text1@qq.com','123456789012345678'),
(1001,'123456','李四',1,3,'19999999999','水星','1901-1-1','text2@qq.com','098765432109876543');
DROP TABLE IF EXISTS `subject`;
CREATE TABLE `subject`(
`subject_no` INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程编号',
`subject_name` VARCHAR(50) DEFAULT NULL COMMENT '课程名称',
`period` INT(4) DEFAULT NULL COMMENT '学时',
`grade_id` INT(4) DEFAULT NULL COMMENT '年级编号',
PRIMARY KEY (`subject_no`)
)ENGINE=INNODB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
INSERT INTO `
subject`(`subject_no`,`subject_name`,`period`,`grade_id`)
VALUES(1,'高等数学',64,1),
(2,'C语言基础',64,1),
(3,'C++程序设计',64,1),
(4,'Java程序设计',64,1),
(5,'数据结构',64,1);
DROP TABLE IF EXISTS `result`;
CREATE TABLE `result`(
`student_no` INT(4) NOT NULL COMMENT '学生学号',
`subject_no` INT(11) NOT NULL COMMENT '课程编号',
`exam_date` DATETIME NOT NULL COMMENT '考试时间',
`student_result` INT(4) NOT NULL COMMENT '考试成绩',
KEY `subject_no`(`subject_no`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO `result`(`student_no`,`subject_no`,`exam_date`,`student_result`)
VALUES(1000,1,'2021-01-01 00:00:00',85),
(1000,2,'2021-01-01 00:00:00',86),
(1000,3,'2021-01-01 00:00:00',87),
(1000,4,'2021-01-01 00:00:00',88),
(1000,5,'2021-01-01 00:00:00',89);
SELECT * FROM `student`;
SELECT `student_no`,`student_name` FROM `student`;
SELECT `student_no` AS 学号,`student_name` AS 学生姓名 FROM `student`;
SELECT CONCAT('学号:',`student_no`
) AS `学号`,CONCAT('姓名:',`student_name`) AS 学生姓名 FROM `student`;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
2.2 去重以及据库的表达式语法:
去重(distinct)
SELECT `student_no` AS 学号 FROM `result
`;
SELECT DISTINCT `student_no` AS 学号 FROM `result`;
2.3 继续深入:
我们在之前简单查询和去重之后我们可以知道:
-
在 SELECT
...
FROM
表名
; 之间的
...
中的内容可以拓展。
-
于是SELECT语句的使用方法也就逐渐加深。
SELECT 1*2*3*4*5 AS 计算5的阶乘结果;
SELECT @@AUTO_INCREMENT_INCREMENT AS 自增步长;
SELECT VERSION() AS 当前MySQL版本;
综上可知:
所以SELECT
...
FROM
表名
可以概括为:
-
SELECT
数据库中的表达式
[FROM
表名
];([]中内容可以省略)。
2.4 where 条件语句:
where条件语句之逻辑运算符:
运算符
|
描述
|
示例
|
AND(&&)
|
逻辑与
|
条件1 AND(&&) 条件2
|
OR(||)
|
逻辑或
|
条件1 OR(||) 条件2
|
NOT(!)
|
逻辑非
|
NOT 条件
|
SELECT `subject_no` AS 课程编号,`subject_name` AS 课程名称 FROM `subject`
WHERE `subject_no`>=2 AND `subject_no`<=4;
SELECT `subject_no` AS 课程编号,`subject_name` AS 课程名称 FROM `subject`
WHERE `subject_no` BETWEEN 2 AND 4;
SELECT `
subject_no` AS 课程编号,`subject_name` AS 课程名称 FROM `subject`
WHERE NOT `subject_no`=1;
2021.1.15
本文章是本人学习笔记,不进行任何商用所以不支持转载请理解,也请别拿去商用
!
如果觉得对你有帮助那么欢迎你随时来回顾!
只为记录本人学习历程。
毕