一.自增列

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. windows上下载redis扩展
  2. ie8不兼容java项目_[Java教程]ie8以下不兼容document.getElementsByName解决方法
  3. mysql_connect 废弃_解决Deprecated: mysql_connect():
  4. hdu 1692(枚举+剪枝)
  5. linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具
  6. nginx怎么用_后端服务老是重启,前端该如何拯救自己?nginx的妙用
  7. 织梦直接往数据库写入数据
  8. C#的未来:扩展属性及更多
  9. 国产特斯拉近两月出口5.5万辆 今年已出口近10万辆
  10. 贼好用的Java工具类库,GitHub星标10k+,你在用吗?
  11. 宽字节与多字节之间的转换
  12. (转)使用Flexible实现手淘H5页面的终端适配
  13. java web 服务开发技术_Java web应用开发技术
  14. dumpDex脱壳教程
  15. 二维otsu算法python_图像二值化与otsu算法介绍
  16. 蓝桥杯.剪邮票(DFS)
  17. 在Win10下安装Anaconda3,“开始”菜单目录下只有Anconda prompt怎么办
  18. 理解COM的线程套件(转)
  19. Android使用第三方字体
  20. 如何向数组里添加元素

热门文章

  1. 程序员健康最佳作息表
  2. 深入挖掘为什么要使用Objects.requireNonNull方法
  3. 智力题与推理题与数量关系(一)
  4. 用计算机能开通余利宝吗,个人用户现在怎么开通余利宝?
  5. 如何在Word中查找文件的位置
  6. python做三维图片挑战眼力_这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下...
  7. 使用NSMutableAttributedString添加下划线、删除线、阴影、填充、不同字体颜色等
  8. 苹果备份删除有影响吗_苹果手机通讯录没了怎么恢复?这3种找回方式有点意思...
  9. 用html设置页面中有的多张图片大小,页面加载性能之使用正确的图片尺寸
  10. 【收藏】数据分析常用网址