MYSQL简单查询和复杂查询
一.自增列
AUTO_INCREMENT:自动自增,插入数据的时候,不需要设置编号,只需要设置为NULL,就会获取当前的最大值然后加1插入。
注意事项:1.自增列,只能添加在主键列上 2.自增列允许手动赋值
#练习:编写脚本文件01_tedu.sql,先丢弃再创建数据库tedu,设置编码为utf-8,进入该数据库,
创建保存部门数据的表dept,包含有did(主键,自增),部门名称dname(添加唯一约束),插入
以下数据10 研发部 20 市场部 30 运营部 40 测试部;创建保存员工数据的表emp,包含有
编号eid(主键、自增),姓名ename(非空约束),性别sex(默认值 1),生日birthday,工资
salary,所属部门编号deptId(外键约束),插入若干条数据。
#设置客户端连接服务器端编码
SET NAMES UTF8;
#丢弃数据库,如果存在
DROP DATABASE IF EXISTS tedu;
#创建数据库,设置存储的编码
CREATE DATABASE tedu CHARSET=UTF8;
#进入数据库
USE tedu;
#创建保存部门数据的表
CREATE TABLE dept(did INT PRIMARY KEY AUTO_INCREMENT,dname VARCHAR(8) UNIQUE
);
#插入数据
INSERT INTO dept VALUES(10,'研发部');
INSERT INTO dept VALUES(20,'市场部');
INSERT INTO dept VALUES(30,'运营部');
INSERT INTO dept VALUES(40,'测试部');
#创建保存员工数据的表
CREATE TABLE emp(eid INT PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(8) NOT NULL,sex BOOLEAN DEFAULT 1,#1-男 0-女birthday DATE,salary DECIMAL(7,2), #99999.99deptId INT,FOREIGN KEY(deptId) REFERENCES dept(did)
);
#插入数据
INSERT INTO emp VALUES(NULL,'gongjinglong',1,'1990-5-5',6000,20);
INSERT INTO emp VALUES(NULL,'daixiangyu',0,'1991-8-20',7000,10);
INSERT INTO emp VALUES(NULL,'dujiang',1,'1995-10-20',3000,30);
INSERT INTO emp VALUES(NULL,'wuxiaoxing',0,'1992-3-20',5000,10);
INSERT INTO emp VALUES(NULL,'wangtao',1,'1993-12-3',8000,20);
INSERT INTO emp VALUES(NULL,'liuhaonan',1,'1991-1-3',4000,10);
INSERT INTO emp VALUES(NULL,'xiongjie',1,'1990-12-3',10000,10);
INSERT INTO emp VALUES(NULL,'dahaozheng',1,'1994-12-3',6000,30);
INSERT INTO emp VALUES(NULL,'mazhengrui',1,'1991-12-3',9000,10);
INSERT INTO emp VALUES(NULL,'range',0,'1995-12-3',10000,20);
INSERT INTO emp VALUES(NULL,'liankun',1,'1993-12-3',8000,30);
INSERT INTO emp VALUES(NULL,'wangxiaomin',0,'1992-12-3',12000,10);
INSERT INTO emp VALUES(NULL,'zhuwentao',0,'1989-12-3',8000,10);
INSERT INTO emp VALUES(NULL,'hanchengyuan',1,'1988-12-3',10000,10);
INSERT INTO emp VALUES(NULL,'liuyuxi',1,'1993-12-3',22000,NULL);
二.简单查询
(1)查询特定的列
示例:查询出所有员工的编号和姓名
SELECT eid,ename FROM emp;
练习:查询出所有员工的姓名,性别,生日,工资
SELECT ename,sex,birthday,salary FROM emp;
(2)查询所有的列
练习:查询出所有员工的数据
SELECT * FROM emp;
(3)给列起别名
示例:查询出所有员工的编号和姓名,分别使用拼音作为别名
SELECT eid AS bianhao,ename AS xingming FROM emp;
练习:查询出所有员工的姓名,生日,工资,分别使用一个字母作为别名
SELECT ename AS e,birthday AS b,salary AS s FROM emp;
(4)显示不同的记录
示例:查询出所有员工性别都有哪些
SELECT DISTINCT sex FROM emp;
(5)查询时执行计算
示例:计算5+3*4.9-8*7.2
SELECT 5+3*4.9-8*7.2;
练习:查询出所有员工的姓名及其年薪
SELECT ename,salary*12 FROM emp;
(6)结果集排序
示例:查询出所有的部门,结果集按照部门的编号升序排序
SELECT * FROM dept ORDER BY did ASC; #ascendant 升序
示例:查询出所有的部门,结果集按照部门的编号降序排序
SELECT * FROM dept ORDER BY did DESC; #descendant 降序
练习:查询所有的员工,结果集按照年龄从大到小排序(生日从小到大)
SELECT * FROM emp ORDER BY birthday ASC;
如果不加排序规则,默认是按照升序排列ASC
按照字符串排序是按照字符对应的Unicode码排列的
(7)条件查询
示例:查询出10号员工的所有数据
SELECT * FROM emp WHERE eid=10;
练习:查询出没有明确部门的员工有哪些
SELECT * FROM emp WHERE deptId IS NULL;
练习:查询出有明确部门的员工有哪些
SELECT * FROM emp WHERE deptId IS NOT NULL;
练习:查询出工资在8000以上的男员工有哪些 and
SELECT * FROM emp WHERE salary>8000 AND sex=1;
练习:查询出工资在5000-8000之间的员工有哪些
SELECT * FROM emp WHERE salary>=5000 AND salary<=8000;
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 8000;
练习:查询出5000以下或者8000以上的员工有哪些
SELECT * FROM emp WHERE salary<5000 OR salary>8000;
SELECT * FROM emp WHERE salary NOT BETWEEN 5000 AND 8000;
MYSQL简单查询和复杂查询相关推荐
- MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】
Java养成计划----学习打卡第六十四天 内容导航 数据库的相关操作 数据库的导入 查看导入数据库中的表 查看表中的数据 查看表的基本结构[简化] 查看表的结构[详细] 查看mysql数据库的版本号 ...
- mysql查询并设置高亮_Thinkphp3.2.3设置MySql主从读写分离后,简单调用主数据库查询
图/文:迷神 Thinkphp是一款不错的国产框架,使用范围广,应用也比较多.随着网站访问增大往往需要使用mysql主从同步功能,本身Thinkphp自带了主从读写分离的功能了. 但是我们经常有一个场 ...
- MySQL简单查询性能分析
MySQL简单查询性能分析 建立如此结构的数据表,并插入110万条随机记录,进行查询性能测试. 插入110万条随机记录后,数据表的大小为102MB. 现在使用phpMyAdmin自带的SQL查询 ...
- JSP+Mysql 做一个简单的学生成绩查询web系统
IDEA基于JSP+Mysql 做一个简单的学生成绩查询web系统 目录 一.相关软件的下载和配置环境 Java环境的下载和配置 (1)IDEA的下载和安装 (2)JdK的安装 Tomcat的下载 ...
- mysql 简单查询和聚合查询部分方法
– 1.查询特定的列 – 实例:查询出所有员工的编号和姓名 select eid,ename from emp; – 练习: select ename,sex,birthday,salary from ...
- MySQL简单快速入门 (三)高级查询——JEPLUS软件快速开发平台
03.SQL高级查询_分组: 1).需求:一条查询,查询出每种商品的最高价格 2).分组的命令:group by 分组字段 3).实现上例: select category_id,max(price) ...
- MySQL基础之select基本查询
DQL语言基本查询 一.基本的select语句 1.查询常量 2.从表中查数据 3.使用列的别名查询 4.去重 5.空值NULL参与运算 6.过滤数据 二. 运算符 1.算术运算符 2.比较运算符 3 ...
- 详解 Mysql LEFT JOIN和JOIN查询区别及原理
一.Join查询原理 查询原理:MySQL内部采用了一种叫做 nested loop join(嵌套循环连接)的算法.Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然 ...
- mysql构架,索引,视图,查询语句
mysql构架: connection pool:因为单进程多线程,所以需要一个线程池接收请求提供并发,线程重用,还能完成认证 SQL interface:接收并分析SQL语句 Parser:分析器, ...
最新文章
- css值变量吗,CSS变量初体验
- 让VC程序在Win7下获得管理员权限
- FreeSql (二十六)贪婪加载 Include、IncludeMany、Dto、ToList
- 你的 ResNet 是时候更新了
- ZAB(Zookeeper Atomic Broadcast)协议详解
- c语言中栈的作用,栈(Stack)的概念和应用及C语言实现
- atom配置python环境_Python编程:用VScode配置Python开发环境
- 观点 | 2017,区块链与加密货币“追逐者”玩命的一年
- 暴风影音2009开机启动关闭方法
- 如何向你的弱智室友解释区块链
- 学会这个小技巧,SSH 会话连接永远不超时!
- Java poi 导出Excel并合并单元格 史上最强
- USB 3.0 Rx Detect之超速U盘的识别
- 智安网络丨居安思危·洞见未来 — — 智安网络安全周报
- C++ 标准容器库小结
- Linux LibTools
- 思念博山——砸鱼汤 ^_^
- 【十】搭建基于qemu的仿真环境与应用
- php合并ts文件吗,快速合并ts文件的过程
- 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题(10)(总分100分)
热门文章
- 软件工程概论学习笔记(1)—— 软件
- Qt十进制转化为十六进制,萌新求助
- 地下城与勇士手游服务器一直维护是为什么,地下城与勇士手游版进不去 DNF手游进不去解决方法...
- DiabloII 1.10 教育文章-合成与符文之语(不断补充中....)
- Python爬虫爬取最好吃的小龙虾店
- 如何设计主图能提升点击率?
- 【银行ATM取款机系统】
- 搭建一台学习主机 乔思伯U1-Plus
- 基于FPGA的2ASK、2FSK、2PSK的调制解调
- 测试人生 | 从外包到测试开发,薪资一年翻三倍,连自己都不敢信