linux下mysql Select查询命令

SELECT查询格式:

SELECT 字段 FROM 表 WHERE 条件;

例如: SELECT * FROM 表名;           #查询表所有内容

SELECT 字段1,字段2... FROM 表名;       #投影,仅显示指定字段中的内容

SELECT [DISTINCT] * FROM 表名 WHERE 条件; #选择,仅显示符合条件的所有字段部分行内容

SELECT * FROM students;

SELECT Name,Age FROM students;

SELECT * FROM students WHERE Age>=20;

SELECT Name,Age FROM students WHERE Age>=20;

SELECT Name,Age FROM students WHERE Gender=‘F‘;

SELECT DISTINCT Gender FROM students; #DISTINCT仅显示Gender字段中的相同值只显示一次

2.查询语句类型:简单查询,多表查询,子查询

FROM子句: 要查询的关系    表、多个表、其它SELECT语句

WHERE子句:布尔关系表达式,

2.1.比较操作符如下: =、>、>=、<=、<

SELECT Name,Age FROM students WHERE Age+1>20;

2.2.逻辑关系:AND OR NOT

SELECT Name,Age,Gender FROM students WHERE Age>20 AND Gender=‘F‘;

SELECT Name,Age,Gender FROM students WHERE Age>20 OR Gender=‘F‘;

SELECT Name,Age,Gender FROM students WHERE NOT Age>20 ‘;

SELECT Name,Age,Gender FROM students WHERE NOT Age>20 AND NOT Gender=‘F‘;

SELECT Name,Age,Gender FROM students WHERE NOT ( Age>20 OR Gender=‘F‘ );

2.3.BETWEEN ... AND ...#在AND两值之间

SELECT Name,Age FROM students WHERE Age>=20 AND Age<=25;

SELECT Name,Age FROM students WHERE Age BETWEEN 20 AND 25;

2.4.LIKE ‘‘

%: 任意长度任意字符

_:任意单个字符

SELECT Name FROM students WHERE Name LIKE ‘Y%‘;

SELECT Name FROM students WHERE Name LIKE ‘Y____‘;

SELECT Name FROM students WHERE Name LIKE ‘%willow%‘;

2.5.REGEXP, RLIKE(正规表达式)

SELECT Name FROM students WHERE Name RLIKE ‘^[LNY].*$‘;

2.6.IN(值1,值2,...)

SELECT Name,Age FROM students WHERE Age IN (20,30,40);

2.7.IS NULL

SELECT Name FROM students WHERE CID2 IS NULL;

2.8.IS NOT NULL

SELECT Name FROM students WHERE CID2 IS NOT NULL;

2.9.ORDER BY 字段名 {ASC|DESC}  #排序,默认为升序

SELECT Name FROM students WHERE CID2 IS NULL ORDER BY Name;

SELECT Name FROM students WHERE CID2 IS NULL ORDER BY Name DESC;

2.10.AS,引用字段别名或表别名

SELECT Name AS student_name FROM students;

2.11.LIMIT子句:LIMIT [偏移行,]显示行

SELECT Name AS student_name FROM students LIMIT 2;

SELECT Name AS student_name FROM students LIMIT 2,3;

2.12.聚合:SUM(), MIN(), MAX(), AVG(), COUNT()

SELECT AVG(age) FROM students;

SELECT MAX(age) FROM students;

SELECT MIN(age) FROM students;

SELECT SUM(age) FROM students;

SELECT COUNT(age) FROM students;

2.13.GROUP BY: 分组

SELECT AVG(age) FROM students WHERE Gender=‘M‘;

SELECT AVG(age) FROM students WHERE GROUP BY Gender;

SELECT COUNT(CID1) AS Persons,CID1 FROM students GROUP BY CID1;

2.14.HAVING 条件   (必须与GROUP BY一起使用)

SELECT COUNT(CID1) AS Persons,CID1 FROM students GROUP BY CID1 HAVING Persons>=2;

3.多表查询:

3.1.交叉连接:笛卡尔乘积

SELECT * FROM students,courses;

3.2.自然连接:

SELECT * FROM students,courses WHERE students.CID1 = courses.CID;

SELECT students.Name,courses.Cname FROM students,courses WHERE students.CID1 = courses.CID;

SELECT s.Name,c.Cname FROM students AS s,courses AS c WHERE s.CID1 = c.CID;

3.3.左外连接:... LEFT JOIN ... ON ...#以左表为基准

SELECT s.Name,c.Cname FROM students AS s LEFT JOIN courses AS c ON s.CID1 = c.CID;

3.4.右外连接: ... RIGHT JOIN ... ON ...#以右表为基准

SELECT s.Name,c.Cname FROM students AS s RIGHT JOIN courses AS c ON s.CID1 = c.CID;

3.5.自连接:同一张表中的自连接

SELECT c.Name As student,s.Name AS teacher FROM students AS c,students AS s WHERE c.TID=s.SID;

4.子查询:

4.1.比较操作中使用子查询:子查询只能返回单个值;

SELECT Name FROM students WHERE Age > (SELECT AVG(age) FROM students);

4.2.IN(): 使用子查询;

SELECT Name FROM students WHERE Age IN (SELECT Age FROM tutors);

4.3.在FROM中使用子查询;

SELECT Name,Age FROM (SELECT Name,Age FROM students) AS s WHERE s.Age >= 20;

4.4.联合查询:UNION

(SELECT Name,Age FROM students) UNION (SELECT Tname,Age FROM tutors);

5.综合复杂查询案例:

5.1.找出courses表中没有被students选中的CID2学习的课程的课程名称;

SELECT Cname FROM courses WHERE CID NOT IN (SELECT DISTINCT CID2 FROM students WHERE CID2 IS NOT NULL);

5.2.找出没有教授任何课程的老师

SELECT Tname FROM tutors WHERE TID NOT IN (SELECT DISTINCT TID FROM courses);

找出students表中CID1有两个(含)以上同学学习了的同一个门课程的课程名称

SELECT Cname FROM courses WHERE CID IN (SELECT CID1 FROM students GROUP BY CID1 HAVING COUNT(CID1) >= 2);

5.3.找出每一位老师及其所教授的课程;没有教授的课程的保持为NULL

SELECT t.Tname,c.Cname FROM tutors AS t LEFT JOIN courses AS c ON t.TID=c.TID;

5.4.找出每一个课程及其相关的老师,没有老师教授的课程将其老师显示为NULL

SELECT t.Tname,c.Cname FROM tutors AS t RIGHT JOIN courses AS c ON t.TID=c.TID;

5.5.找出每位同学CID1课程的课程名及其讲授了相关课程的老师的名称

SELECT Name,Cname,Tname FROM students,courses,tutors WHERE students.CID1=courses.CID;

6.视图:就是存储下来的SELECT语句,即基于基表的查询结果;

6.1.创建视图:

CREATE VIEW 视图名称 AS SELECT语句;

CREATE VIEW sct_viewname AS SELECT Name,Cname,Tname FROM students,courses,tutors WHERE students.CID1=courses.CID;

SELECT * FROM sct_viewname;

SHOW TABLES;可查看到此视图当成表

SHOW TABLE STATUS\G

6.2.删除视图:

DROP VIEW 视图名称

6.3.查看创建视图命令

SHOW CREATE VIWE 视图名称;

6.4.查看创建表命令

SHOW CREATE TABLE 表名称;

linux进行MySQL查询_linux下mysql Select查询命令相关推荐

  1. linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)

    1,linux下启动mysql的命令: 复制代码 代码示例: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2,linux下重启my ...

  2. linux重新安装mysql步骤_Linux下MySQL安装及相关操作过程

    一.安装MySQL数据库,但是前提是已经安好Linux系统,我使用的是Red hat desktop 6.0 SP1,系统盘的Tools里面有相应的软件,为5.0系列,但经测试无法使用,不能正常运行, ...

  3. linux下mysql乱码_linux下mysql中文乱码

    登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...

  4. linux恢复mysql配置文件_linux下mysql配置文件my.cnf详解【转】

    basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件 ...

  5. linux mysql 事务_linux下mysql Insert update delete 事务 用户管理

    linux下mysql Insert update delete  事务 用户管理 1.INSERT插入语句格式: INSERT INTO tb_name (字段1, 字段2, ...) VALUES ...

  6. linux安装mysql字符_Linux下MySQL的彻底卸载和安装配置字符集

    前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...

  7. linux mysql 定时任务_Linux下Mysql定时任务备份数据的实现方法

    前言 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好数据 ...

  8. linux新增mysql用户_linux下mysql创建新的用户的方法

    1.以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 2.创建一个MySQL用户 使用如下命令创建一个用户名和 ...

  9. linux删除mysql临时文件_linux下mysql自动备份数据库与自动删除临时文件_MySQL

    bitsCN.com linux下mysql自动备份数据库与自动删除临时文件 一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表:crontab -l然后新建:crontab - ...

最新文章

  1. 编辑模式下,控制对象移动
  2. 将横排文本变成竖排文本
  3. 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
  4. 任务计划程序-Windows2008定时重启
  5. 【Android】SlidingTabs
  6. [Leedcode][JAVA][第139题][单词拆分][递归][记忆优化][动态规划]
  7. 事件内核对象 CreateEvent
  8. 首届“马栏山杯”国际音视频算法优化大赛 马栏山上绽放智能之花
  9. 一个数字几个字节_技术工坊40期-DAG技术特性以及在字节雪球Obyte项目的使用实践...
  10. 麻瓜编程python web百度网盘_麻瓜编程_Python Web开发工程师_附课程配套资料
  11. godot python_godot新手教程2[godot常用代码用法]
  12. kindle 3之安装多看系统
  13. 什么认证在云计算行业内的含金量最大?考试费用贵不贵?
  14. 这家公司用AI生成颠覆内容创作!
  15. 快速通过论文相似度检测
  16. 说说Oracle分区
  17. 2bc-gskew:De-aliased hybrid branch predictors(1999)
  18. 血战力扣 332.零钱兑换
  19. C++实现生产者消费者队列
  20. Visual SLAM笔记

热门文章

  1. java复习系列[6] - Java集合
  2. ML_Review_PCA(Ch4)
  3. 【C++】C++未定义行为
  4. 第35次Scrum会议(11/23)【欢迎来怼】
  5. 2017.5.8-morning
  6. DIV制作浮在页面的窗口
  7. MVC系列学习(十五)-验证码
  8. ecshop 手机端没做和电脑一样显示
  9. linux架设subversion(svn)版本控制
  10. 局域网内数据采集总结(三)