mysql select 语气常用手册

数据库作为存储数据的仓库,查询可以说是日常操作数据库当中占的比例是最多的,而select语气也可以说是最复杂的。

select 是DML语气中的一种,其他DML语气还包括。insert into ,delete,update

select 语气一般用法为: select 字段名 from tb_name  where 条件 ;

select 查询语气类型一般分为三种:

单表查询,多表查询,子查询

最简单的单表查询 : select * from tb_name;

*表示,所有字段

查询特定字段(投影):

select 字段名1,字段名2, from tb_name;

where 语句过滤查询(选择)

select * from tb_name where 条件 ;

select 后面还可以跟上 关键字 distinct 表示某个字段内重复的数据只显示一次。比如,如果有个表students的字段 gender(性别),里面无非就是男或者女,我们查看该字段,就需要显示每种类别一次就是要distinct

select distinct gender from  students;

from 子句:

from 后面可以跟上一个表,多个表,或者其他select

跟上一个表就是单表查询,跟上多个表就是多表查询,跟上select 就是嵌套查询(子查询

因此from 就表示我们要查询的关系。

where 子句:

where 子句 :就是布尔关系表达式,一般 使用 >  <  >=  <=

where  子句 数值不需要加引号, 字字符需要加引号

where 还可以跟上 逻辑 and or  not

例如查询 students 表中字段age(年龄),在20-25期间的学生名字。

select Name,age from students where age >=20 and age <=25;

where 后面 跟上 like 关键词:

like  :后面一般跟上 % 表示任意长度任意字符  __ 表示单个字符

例如查找students 表中  Name 字段,以 y开头所有数据,就需要使用like 匹配。

select Name from students where Name like ‘y%‘;

查找students 表中  Name 字段,以y开头后面跟上4个字符

select Name from student where Name like ‘y____‘

查找students 表中  Name 字段,包含了ing 的字段。

select Name from students where Name like ‘%ing%‘;

查找students 表中  Name 字段以大写 M,N,Y开头的用户

selcet Name from students where Name like ‘M%‘ or Name like ‘N%‘ or Name like ‘%Y‘;

或者使用 Rlike (正则表达式)。

select Name from students where Name Rlike ‘^[MNY].*$‘;

查找students 表中年龄为 18,20,25的用户

第一种方法:

select Name from students where age=18 or age=20 or age=25;

第二种方法:使用 in  关键字,后面跟上一个列表

select Name from student where age in (18,20,25);

students 中有个字段课程(CID2)。查找出改字段,里面为空的字段的,学生姓名 Name

select Name from students where CID2 is null ;

查询不为空就是要 is not null

is null  和 is not null可以实现判断字段是否为空

order by 子句:

查询后的结果排序:

就比如我们刚才的查询,students 中有个字段课程(CID2)。查找出改字段,里面为空的字段的,学生姓名 Name ,如果我们想对结果进行排序。默认是升序asc  使用关键字 order by  +需要排序的字段   desc (降序)

select Name from students where CID2 is null order by Name desc;

as 子句

用于给字段或者表使用别名。如果某字段名称比较长,或者表名字比较长

例如:

selcet Name as Na from students as stu;

limit 子句:

用于显示 结果的前 N 行

只显示前3行

select * from students limit 3;

只显示3行,从第5行开始计算

select * from students limit 3,5;

group  by 子句 :

用于分组,比如把students 表的 学生 按照男女进行分组

select  age,Gender from students  group by gender

这样分出的只有两个组,男的和女的

students 表中的字段 有个课程的字段 CID 求出该字段中,需要将课程的人数,大于等于2的显示出来

having 子句

只能和group by 搭配使用,使用group by 分组之后,再用having 过滤

select CID from students where  having CID >=2

多表查询 :

如果我们有两张表 students (学生表)和 course (课程表,该表显示了,每一个课程的编号(CID),名称(Cname))。现在我们希望查询,每一位学生,学习的第一门课程的,课程名称是什么。

select  students.Name course.Cname from students ,courses where students.CID1=course.CID;

这样的查询就叫自然查询。是建立在某两个字段建立起对应关系的基础上

查询只有有同学选修了某个课程就显示出来,如果课程没有则显示为null

这样就不能使用自然连接了,需要使用外连接

外连接分为:左外连接  left join  tb_name  on   +连接条件

右外连接 right jion tb_name  +连接条件

比如我们查询每个同学选修的第一个课程名称,如果课程不存在显示null

select students.Name,course.Cname from students left join course on students.CID1=course.CID

查询哪些课程有人选,显示出同学名称,没有人选的,显示null

select students.Name,course.Cname from students right join course on students.CID1=course.CID

子查询:(select 查询嵌套另外一个select)

查找students表中,年龄大于平均年龄的同学

select Name from students where age > (select  avg(age) from students);

其中 avg :是求平均值的函数

在比较操作符中使用子查询:子查询只能返回单个词。

在 in 中使用子查询

时间: 2024-08-05 19:28:38

mysql select 语气常用手册的相关文章

mysql insert 语气常用手册

insert 语气属于DML 简单用法: insert into tb_name (字段1,字段2,.........) values(值1,值2,.....) 注意,字段个数必须和值的个数一致.字符用引号引起来,数字不用,插入空值使用 null 批量插入: insert into tb_name (字段1,字段2,.........) values(值1,值2,.....)[,(值n,值m,....),.............]注意逗号. 插入的值,不一定用我们给的值,也可以使用表达式.例如

mysql 性能优化常用工具

mysql 性能优化常用工具: 常用性能检测工具 show engine innodb  status show full processlist information_schema.processlist explain create table innodb_table_monitor(a int) engine=innodb; innodb_locks innodb_lock_wait innodb_trx zabbix监控 pt-tools 工具 性能优化的两种方式: 1.执行计划的解

Mysql数据库操作常用命令

转自微信公众号“MySQL数据库”:http://mp.weixin.qq.com/s?__biz=MzIyNjIwMzg4Ng==&mid=2655293044&idx=1&sn=e312934e5115105fdbe5da12af150276&scene=0#wechat_redirect [全了]Mysql数据库操作常用命令 2016-07-21 MySQL数据库 1.MySQL常用命令 create database name; 创建数据库 use database

mysql存储过程及常用函数

原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取模) SELECT MOD(3,8);3--3对8取模 POWER()幂运算 SELECT POWER(3,2);9 ROUND()四舍五入 SELECT ROUND(123.456,2);123.46 TRUNCTATE数字截取 SELECT TRUNCATE(123.456,2);123.45

Mysql命令行常用操作

Mysql命令行常用操作 一.从命令行登录MySQL数据库服务器 1.登录使用默认3306端口的MySQL /usr/local/mysql/bin/mysql -u root -p 2.通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能) /usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307 3.通过socket套接字管理不同端口的多个MySQL /

mysql select日期格式

mysql表中datatime类型存储为2016-01-10,C#直接select 后,在datatable里面看,变成01/10/2016,需要还原回去,使用select DATE_FORMAT(列名,'%Y-%m-%d')即可 附上 mySQL中常用日期时间函数: 下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col)<= 3

mysql用户管理, 常用sql语句,mysql数据库备份恢复

mysql用户管理 新创建一个指定IP的用户,可以访问mysql的某些库某些表. 所有库的所有表,如果想指定访问某个库某些表,只需要修改名称user1 指定用户名br/>@后面的ip是指定ip,%表示所有的ipindentified by 后面是用户的密码验证用用户user1登录也可以指定localhost,登录时不输入本机ip地址即可访问查看授权,用于授权给新用户,新权限: 常用sql 语句 查看库表的行数搜索:select count() from mysql.user;搜索:select

95.更改MySQL的root用户密码,MySQL基本操作的常用命令

更改MySQL的root用户密码 1.首次进入数据库 [[email protected] ~]# /usr/local/mysql/bin/mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, O

25.mysql中的常用工具

25.mysql中的常用工具25.1 mysql客户端连接工具跳转至mysql安装目录下的bincd C:\Program Files\MySQL\MySQL Server 5.7\binmac下cd /usr/local/Cellar/[email protected]/5.7.22/bincd /usr/local/mysql/bin mysql [选项] [database]; --连接数据库 use [dbname]; --进入要操作的数据库选项表达方式语法: “-”+选项单词的缩写字符