一.自增列

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简单查询和复杂查询相关推荐

  1. MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】

    Java养成计划----学习打卡第六十四天 内容导航 数据库的相关操作 数据库的导入 查看导入数据库中的表 查看表中的数据 查看表的基本结构[简化] 查看表的结构[详细] 查看mysql数据库的版本号 ...

  2. mysql查询并设置高亮_Thinkphp3.2.3设置MySql主从读写分离后,简单调用主数据库查询

    图/文:迷神 Thinkphp是一款不错的国产框架,使用范围广,应用也比较多.随着网站访问增大往往需要使用mysql主从同步功能,本身Thinkphp自带了主从读写分离的功能了. 但是我们经常有一个场 ...

  3. MySQL简单查询性能分析

    MySQL简单查询性能分析  建立如此结构的数据表,并插入110万条随机记录,进行查询性能测试.   插入110万条随机记录后,数据表的大小为102MB. 现在使用phpMyAdmin自带的SQL查询 ...

  4. JSP+Mysql 做一个简单的学生成绩查询web系统

    IDEA基于JSP+Mysql 做一个简单的学生成绩查询web系统 目录 一.相关软件的下载和配置环境 Java环境的下载和配置 (1)IDEA的下载和安装 ​ (2)JdK的安装 Tomcat的下载 ...

  5. mysql 简单查询和聚合查询部分方法

    – 1.查询特定的列 – 实例:查询出所有员工的编号和姓名 select eid,ename from emp; – 练习: select ename,sex,birthday,salary from ...

  6. MySQL简单快速入门 (三)高级查询——JEPLUS软件快速开发平台

    03.SQL高级查询_分组: 1).需求:一条查询,查询出每种商品的最高价格 2).分组的命令:group by 分组字段 3).实现上例: select category_id,max(price) ...

  7. MySQL基础之select基本查询

    DQL语言基本查询 一.基本的select语句 1.查询常量 2.从表中查数据 3.使用列的别名查询 4.去重 5.空值NULL参与运算 6.过滤数据 二. 运算符 1.算术运算符 2.比较运算符 3 ...

  8. 详解 Mysql LEFT JOIN和JOIN查询区别及原理

    一.Join查询原理 查询原理:MySQL内部采用了一种叫做 nested loop join(嵌套循环连接)的算法.Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然 ...

  9. mysql构架,索引,视图,查询语句

    mysql构架: connection pool:因为单进程多线程,所以需要一个线程池接收请求提供并发,线程重用,还能完成认证 SQL interface:接收并分析SQL语句 Parser:分析器, ...

最新文章

  1. css值变量吗,CSS变量初体验
  2. 让VC程序在Win7下获得管理员权限
  3. FreeSql (二十六)贪婪加载 Include、IncludeMany、Dto、ToList
  4. 你的 ResNet 是时候更新了
  5. ZAB(Zookeeper Atomic Broadcast)协议详解
  6. c语言中栈的作用,栈(Stack)的概念和应用及C语言实现
  7. atom配置python环境_Python编程:用VScode配置Python开发环境
  8. 观点 | 2017,区块链与加密货币“追逐者”玩命的一年
  9. 暴风影音2009开机启动关闭方法
  10. 如何向你的弱智室友解释区块链
  11. 学会这个小技巧,SSH 会话连接永远不超时!
  12. Java poi 导出Excel并合并单元格 史上最强
  13. USB 3.0 Rx Detect之超速U盘的识别
  14. 智安网络丨居安思危·洞见未来 — — 智安网络安全周报
  15. C++ 标准容器库小结
  16. Linux LibTools
  17. 思念博山——砸鱼汤 ^_^
  18. 【十】搭建基于qemu的仿真环境与应用
  19. php合并ts文件吗,快速合并ts文件的过程
  20. 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题(10)(总分100分)

热门文章

  1. 软件工程概论学习笔记(1)—— 软件
  2. Qt十进制转化为十六进制,萌新求助
  3. 地下城与勇士手游服务器一直维护是为什么,地下城与勇士手游版进不去 DNF手游进不去解决方法...
  4. DiabloII 1.10 教育文章-合成与符文之语(不断补充中....)
  5. Python爬虫爬取最好吃的小龙虾店
  6. 如何设计主图能提升点击率?
  7. 【银行ATM取款机系统】
  8. 搭建一台学习主机 乔思伯U1-Plus
  9. 基于FPGA的2ASK、2FSK、2PSK的调制解调
  10. 测试人生 | 从外包到测试开发,薪资一年翻三倍,连自己都不敢信