mysql查询语句

mysql查询语句
常用SELECT命令
打印当前的日期和时间
select now();
打印当前的日期
select curdate();
打印当前时间
select curtime();
查看当前版本
select version();
打印当前用户
select user();
查看当前数据库实例
select database();
查看系统中可用的变量
show variables;
查看系统中全局变量
show global variables;
一般查询系统可用变量或是全局变量都是通过like的方式来进行查询的,因为普通查询的内容查询的特别多,通过like模糊查询的方式来进行查询,查询的结果进行展示
show global variables like ‘%version%‘; 把全局变量中含有version的字样全部进行展示
查看默认存储引擎
show variables like ‘%storage_engine%‘;
mysql> show variables like ‘%storage_engine%‘;
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
| storage_engine | InnoDB |
+------------------------+--------+
如果需要将存储引擎进行修改则使用下面的命令对存储引擎进行修改就行
set storage_engine=MyISAM 这个就是表示将存储引擎进行修改的方法
修改后的存储引擎展示
mysql> show variables like ‘%storage_engine%‘;
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine | MyISAM |
+------------------------+--------+
总结
mysql中的变量的值都是可以通过set这个来进行设置的,也就是说可以通过set来进行修改

查看支持的存储引擎
show engines;
mysql> show engines;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
6 rows in set (0.00 sec)

查看系统运行状态
show status;
查看系统线程数
show status like ‘%Thread%‘;

yum安装的mysql默认的字符集是latain1
编译安装的mysql是utf-8的字符集
导出,导入数据库
导出表示做了一个数据库备份
导入表示做了一个数据库还原
导入数据库
导入数据库前必须创建一个空数据库
create database book; 创建数据库
mysql -usystem -p123456 book<book.sql 把book.sql内容导入到刚才建立的book这个库里面
反过来
mysql -usystem -p123456 book<book.sql 把book这个库里面的内容导出到book.sql这个文件里面
进入数据库删除表使用drop
drop table books;

方法2 :类似于将sql脚本跑了一遍
create database book;
use book;
source /root/book.sql #sql脚本路径
show tables;

导出数据库
使用mysqldump 默认存在
[[email protected] ~]# ll /usr/local/mysql/bin/mysqldump
-rwxr-xr-x 1 mysql mysql 4702840 Sep 30 22:13 /usr/local/mysql/bin/mysqldump
导出数据库:mysql -u用户名 -p密码 数据库名 > 导出的文件名
mysqldump -usystem -p123456 book>/home/zyg.sql 将book这个database导出到/home/zyg.sql这个文件里面,这个表示的是将整个实例进行导出
这个是在linux系统里面进行执行的

方法2:在数据库里面进行执行
首先进入数据库
mysql -usystem -p123456
然后在进入database里面
use books 进入books这个database
select * into outfile ‘/tmp/123.txt‘ from books; 将books这张表里面的内容全部进行导出到/tmp/123.txt这个文件里面。这个可以理解为select * from books 将books这张表里面的内容都查询出来,然后into outfile到/tmp/123.txt这个文件里面去,这个是将单张表里面的内容导出来,导出来的路径必须是mysql能够进行访问的路径才行,所以放在tmp这个路径下面
sql语句进阶
查看表的内容
select * from books;
select * from category;

逻辑运算符
and or not
and 且
or 或
not 非
选择出书籍价格为(30,40,50,60)的记录,只显示书籍名称,出版社,价格
mysql> select bName,publishing,price from books where price=30 or price=40 or price=50 or price=60;
多条件用and连接
不等于符号:!= 或是 <> 使用这两个符号来进行表示不等于的意思
not配合使用,比如说配合not like来进行使用等等
算术运算符:
= 等于
<> 不等于 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
in 运算符
IN 运算符用于 WHERE 表达式中,以列表项的形式支持多个选择,语法如下:
WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
mysql> select bName,publishing,price from books where price in (30,40,50,60); 条件查询语句可以使用in,只要where条件语句在in的范围之内中的任意一个就能进行执行
Not in 与in相反
当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择
mysql> select bName,publishing,price from books where price not in (30,40,50,60);

查询价格大于60的记录
select bName,price from books where price>60;
select bName,price from books where price=60;
select bName,price from books where price<>60;
or
select bName,price from books where price!=60;
找出价格为50,60,70的书
select bName,price from books where price in (50,60,70);
找出价格不为50,60,70的书
select bName,price from books where price not in (50,60,70);

排序

升序:order by “排序的字段” asc 默认
降序:oredr by “排序的字段” desc
升序
select bName,price from books where price in (50,60,70) order by price asc;
降序
select bName,price from books where price in (50,60,70) order by price desc;

多组排序是先按照前面的那个排序条件进行排序
select bName,price from books where price in (50,60,70) order by price desc,bNa
me asc; 那么这个排序的方式是先按照price的顺序进行排序,先进行最前面的进行排序,可以满足多个字段排序

范围运算:
[not]between......and.....
Between and 可以使用大于小于的方式来代替,并且使用大于小于意义表述更明确,这个有时候会表述不明确,平时都是使用下面的表示方法
一般使用下面的符号进行表示
(30,60)表示30和60之间的数字但是不包括30和60 >30 and <60
[30,60] 表示30和60之间的数字并且包括30和60 >=30 and <=60
select bName,price from books where price >=30 and price <= 60 order by price d
esc;
select bName,price from books where price between 30 and 60 order by price des
c;
上面这两条语句的意思是一样的,但是一般都是使用上面的那条语句

模糊匹配查询:
字段名 [not]like ‘通配符‘ ----》% 任意多个字符

mysql子查询
概念:在select 的where条件中又出现了select
查询中嵌套着查询
select bName,bTypeId from books where bTypeId in (select bTypeId from category where bTypeName in (‘黑客‘,‘网络技术‘)); 多表之间的子查询语句

LIMIT 限定显示的条目:通过limit来进行条件查询,limit进行取值查询
select * from table limit [offset,]rows
偏移量 行数
  LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1):

offset表示的是偏移量,默认是0,表示不偏移

比如select * from table limit m,n语句
表示其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
mysql> select * from category limit 1,5; 这个表示除去第一个,从第二个开始找5行
+---------+--------------+
| bTypeId | bTypeName |
+---------+--------------+
| 2 | 网站 |
| 3 | 3D动画 |
| 4 | linux学习 |
| 5 | Delphi学习 |
| 6 | 黑客 |
+---------+--------------+

查看所有书籍中价格中最低的三条记录
我们对所有记录排序以升序排列,取出前面3个来
mysql> select bName,price from books order by price asc limit 0,3;

我们将子查询和限制条目,算术运算结合起来查询
显示字段bName ,price ;条件:找出价格比电子工业出版社出版的书中最便宜还便宜。
针对这种查询,我们一步步的来,先找出电子工业出版社出版中最便宜的书
mysql> select bName,price from books where publishing="电子工业出版社" order by price asc limit 0,1;
mysql> select bName,price from books where price<(select price from books where publishing="电子工业出版社" order by price asc limit 0,1);
或者
多行子查询: all表示小于子查询中返回全部值中的最小值
mysql> select bName,price from books where price<all(select price from books where publishing="电子工业出版社");

连接查询
以一个共同的字段,求两张表当中符合条件的并集。 通过共同字段把这两张表连接起来。
常用的连接:
右边的表关联到左边的表,以左边的表为基准这个叫做左连接,反过来叫右连接
内连接:根据表中的共同字段进行匹配
外连接分两种:左外连接、右外链接。

内连接 inner
语法:
select 字段 from 表1 inner join 表2 on 表1.字段=表2.字段
select 字段 from [表1 inner join 表2] on 条件
内连接:根据表中的共同字段进行匹配

时间: 2024-10-07 15:00:37

mysql查询语句的相关文章

MySQL 查询语句使用进阶

MySQL 查询语句使用进阶 =============================================================================== 概述: =============================================================================== 练习: 练习1  首先导入hellodb.sql的脚本文件,查询其数据库和表如下: [[email protected] ~]# mysql 

【个人笔记】MySQL查询语句

最近学习了MySQL,分享一点其中查询语句的使用 语法:select  显示的内容  from  查询的范围   where   查询的条件 (显示全部内容用'*'号) 一.as 别名(可省略as) 例:select   stuname  as  '学生姓名'   form   t_student   where  stuname='张三',此句的意思是将学生表中姓名为'张三'的学生筛选出来,并将选出来的列重新命名为'学生姓名'. 二.distinct  筛选重复的数据 三.筛选条件有: and

直接从命令行获取MySQL查询语句结果

如果你需要直接从命令行获取MySQL查询语句结果,那么你可以使用-B和-N这两个参数来达到目的. 例:获取MySQL用户数. [[email protected] ~]# mysql -BN -uroot -predhat mysql -e 'select count(*) from user' 6 [[email protected] ~]# -B参数:去掉边框 -N参数:只显示结果

mysql学习——mysql查询语句综合练习

练习一: 设有成绩表stu如下: 姓名 科目 成绩 张三 数学 90 张三 语文 50 张三 地理 40 李四 语文 55 李四 政治 45 王五 政治 30 王五 数学 70 试查询两门及两门以上不及格同学的平均分 解答如下 1.创建数据表 create table stu(id int primary key auto_increment,name char(3) not null default'',subject char(3) not null default'',score deci

MySQL 查询语句执行顺序

Mysql查询语句时候一共分为11步,其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回. 语句执行顺序 : 顺序 名称 内容 1 SELECT 命令发起 2 * 或 AVG(字段)等 查询内容 3 FROM 查询位置 4 WHERE 条件查询 5 GROUP BY 分组 6 HAVING 筛选 7 ORDER BY (ASC/DESC) 排序 8 LIMIT 限制结果数 1.单表查询 查询指定的列

MySQL 查询语句SELECT和数据条件过滤

MySQL 查询语句SELECT ,主要是用 * 表示任意字段,也可以写id,name,content 等,数据条件过滤主要是between,and,or ,WHERE,in,like,limit,not in等. 1,查询语句SELECT的用法 select * from biao 2,查询语句数据条件的用法where 条件的开始and 并联关系or 或者的关系between 两者之间like 模糊查询limit 限制查询的条数in 在什么里面not in 不在什么里面 文章来自(www.dc

mysql 查询语句可以使用的函数总结

mysql 查询语句有时候需要用到函数,但是函数比子查询的效率要高,有时候函数还是很方便的,下面简单总结sql函数具体用法. 1,对数字处理函数avg()count()max()min()sum()2,对字符串的处理合并字符串函数:concat(str1,str2,str3-)比较字符串大小函数:strcmp(str1,str2)获取字符串字节数函数:length(str)获取字符串字符数函数:char_length(str)字母大小写转换函数:大写:upper(x),ucase(x):小写lo

MySQL 查询语句优化思路

query 语句的优化思路和原则主要提现在以下几个方面:1. 优化更需要优化的Query:2. 定位优化对象的性能瓶颈:3. 明确的优化目标:4. 从 Explain 入手:5. 多使用profile6. 永远用小结果集驱动大的结果集:7. 尽可能在索引中完成排序:8. 只取出自己需要的Columns:9. 仅仅使用最有效的过滤条件:10. 尽可能避免复杂的Join和子查询 关于explain 用法:explain select * from tables1 where 1 ... 先看一下在

PHP之路——MySql查询语句

1,select查询的基本结构 select 字段 from 表 where 过滤条件 group by 分组条件 order by 排序条件 having 过滤的第二条件 limit 限定结果条件; 2,最简单的查询语句 mysql> select * from user; +----+----------+----------+---------------------+ | id | username | password | createtime | +----+----------+-