教你快速掌握MYSQL

发布于:2022-12-28 ⋅ 阅读:(534) ⋅ 点赞:(0)

 一.了解

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所有查询语句与查询方法,感谢观看

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到