一.了解
1.1什么是SQL?
SQL:(Structured Query Language)结构化查询语言的简称。
1.2SQL的分类
DDL:数据定义语言;其语句包括动词 CREATA,ALTER和DROP,用来操作数据库对象:数据库、表、索引等
DML:数据操作语言;其语句包括动词 INSERT\UPDATE和DELETE,用来操作数据库表中的数据
DQL:数据库查询语言,其动词包括 SELECE,用来执行数据库中所有的查询
DCL:数据控制语言,其语句包括动词 GRANT或REVOKE
1.3 MYSQL数据库类型
大致可以分为三类:数值、日期/时间和字符串(字符)类型
数值类型,如下图
日期和时间类型,如下图
字符串类型
char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,比如 CHAR(30)就可以存储30个字符,如下图
二.使用MYSQL查询数
基础语法:
1.select 【all |DISTINCT】 column_name [column_alias | as column_alias],column_name
2.FROM table_name [as table_alias]
3.[LEFT | RIGHT | INNER JOIN table_name2]-----多表联合查询
4.[WHERE Clause]-----条件查询
5.[GROUP BY....]----分组查询
6.[HAVING.....]-------筛选分组后的记录
7.[ORDER BY....]-------排序 按照指定的一个或多个字段排序 默认升序ASC降序 DESC
8.[LIMIT N][OFFSET M]-------分页时使用,从指定记录开始查询 指定条数
为 字段取别名 AS 以下面的表做示例
SELECT StudentNo '学号',StudentName '姓名' from student;
SELECT StudentNo AS'学号',StudentName AS '姓名' from student;
示例
结果
去掉重复的数据 DISTINCT
#去掉重复的数据 学生表中一共有几个不同年龄的学生
SELECT DISTINCT age from student
结果如下图
where子句中的 逻辑运算符 AND OR NOT
#where子句中的 逻辑运算符 **AND OR NOT*** 查询一年级和二年级的学生信息
SELECT studentname from student where GRADEId=1 OR gradeId=2
SELECT StudentName FROM student WHERE NOT (GradeId=1 OR GradeID=2)
示例
模糊查询 like 子句 % -
#模糊查询 like子句 %:匹配0或者n个字符 _(下划线):表示必须仅要匹配一个任意字符
SELECT StudentName,Address FROM student WHERE Address LIKE "北京%"-----查询家乡名称带有北京的学生姓名
SELECT StudentName,Address FROM student WHERE ADDRESS LIKE '%海定%'------查询家乡来自海定的学生姓名
#查询表中,李姓 并且名字为两个字的学生姓名
SELECT StudentName FROM student WHERE Studentname LIKE '李_';
示例 警告:'_'此处一定是英文的下划线
多表联合查询 join
#多表联合查询 JOIN ON(连接的条件)
#左外连接 LEFT JOIN
SELECT s.StudentName,g.GradeName FROM grade g LEFT JOIN student s ON g.GradeID = s.GradeId
-------查询g.GradeID = s.GradeId 的学生姓名
#右外连接 RIGHT JOIN SELECT s.StudentName,g.GradeName FROM grade g RIGHT JOIN student s ON g.GradeID = s.GradeId
#内连接 INNER JOIN SELECT s.StudentName,g.GradeName FROM grade g INNER JOIN student s ON g.GradeID = s.GradeId
# 等值连接 SELECT s.StudentName,g.GradeName FROM grade g,student s WHERE g.GradeID = s.GradeId;
----此处内连接等价于等值连接
#自连接 a = a # 查询公司的组织架构以及所属的下级职位的名称 SELECT c1.cname '上级',c2.cname '下级' FROM category c1 ,category c2 Where c1.id = c2.pid
分页 limit 排序 order by
#排序 ORDER BY
# 查询学生学号和成绩,按照学号升序排序,如果学号一样,在按照成绩由高到低排序
SELECT r.StudentNo,r.StudentResult FROM result r ORDER BY r.StudentNo DESC, r.StudentResult DESC
#查询 前10条学生记录
SELECT * FROM student LIMIT 10;
#查询 第5条查10条 SELECT * FROM student LIMIT 4,10;
#页大小 3 共 7 页 总页数=总记录数/页大小[+1] #差额寻第5页 起始记录数=(当前页码-1)* 页大小
SELECT * FROM student LIMIT 6,3;
示例
查询前两行的学生信息
查询第二行到第四行的学生信息
查询前来学校报到并且时间由早到晚排序的学生姓名
以上为MYSQL所有查询语句与查询方法,感谢观看