关系型数据库:MySql
非关系型数据库:Redis(以键值对的方式)

SQL分几类:
DDL:数据定义语言:create、alter、drop、truncate
DML:数据操作语言:insert、delete、update
DQL:数据查询语言:select from where
DCL:数据控制语言:grant revoke DBA

查询所有的数据库:show databases
(1)数据库的CRUD: 1、创建数据库:create database demo;
2、删除数据库: drop database demo;
3、查询数据库创建语句:show create database demo;
4、修改数据库字符集: alter database 数据库名 character set 字符集


列的类型:在java:int String Boolean Date
在mysql: int char/varchar(长度) Boolean date time datatime timestamp text blob

(2)表的CRUD: 1、查询所有的表:show tables;
2、创建表:create table hello{列名1 int ,列名2...};
3、删除表:drop table 表名;
4、查询表的创建过程:show create table 表名;
5、查询表的创建结构:desc 表名;

6、修改表:添加列(add)、删除列(drop)、 修改列(modify)、修改列名(change)、修改表名(rename)
--添加手机号
alter table emp add phone varchar(11);

修改列(modify) alter table 表名 modify 列名 列的类型
-- 修改手机号的类型
alter table emp modify phone int;

修改列名(change) alter table 表名 change 旧的列名 新列名 列的类型
--- 修改phone ---> mobile
alter table emp change phone mobile int;

删除列(drop) alter table 表名 drop 列名;
-- 删除mobile
alter table emp drop mobile;

修改表名(rename) rename table 旧表名 to 新表名
rename table emp to newemp;

修改表的字符集 alter table 表名 character set 字符集
alter table emp character set gbk;

(3)对表中数据的CRUD:
查询语句的基本结构: select ... from ....
select 要显示的列名 from 从哪张表里面去查询数据 [where 条件:查询的是哪条记录/满足哪个条件]

--简单查询:
---查询所有商品信息:
select * from product;
---查询商品名称和商品价格:
select pname,price from product;

---别名查询. as 的关键字 , as 关键字是可以省略
--列别名:
select pname as 商品名称, price as 商品价格 from product;

select pname as "商品名称", price as 商品价格 from product;
select pname 商品名称, price 商品价格 from product;
--表别名: 多表查询里面使用

---去掉重复的值 distinct
--查询所有商品的名称
select distinct pname from product;

-- 多列去除重复的, 必须是每一列都一样才算重复
select pdesc,cno from product;
select distinct pdesc,cno from product;
-- select运算查询 : 仅仅在查询结果上做了运算 + - * /
select 1+1;
select 3/4;

-- 查询商品的折后价格
select price*0.6 from product;

--条件查询 [where关键字] : 查询表中符合条件的数据
-- 关系/比较运算符: > >= = < <= != <>
!= : SQL Server
<> : 标准SQL
-- 逻辑运算符: and or not
-- 其它运算符:
is null : 是否为空
is not null : 是否不为空
between...and ...: 在某个区间内: 闭区间[10,20] 开区间(10,20) [) (]
in(集合) : 在集合内

-- 查询商品价格>60元的所有商品信息
select * from product where price > 60;

-- where 后的条件写法
--查询商品价格不等于99的所有商品
select * from product where price <> 99;
select * from product where price != 99;
--查询出商品价格不为null的所有商品
select * from product where price != null;
-- null值 : 不确定的,不可预知的内容
select * from product where price is not null;

-- 查询商品价格在10 到 100之间
select * from product where price >=10 and price <=100;
select * from product where price between 10 and 100;
--查询出商品价格 小于35 或者商品价格 大于900
select * from product where price <35 or price>900;

--like: 模糊查询
_ : 匹配单个字符
% : 匹配的任意个数字符

-- 查询出名字中带有辣的所有商品
select * from product where pname like '%辣%';

-- 查询出名字第三个字是辣字的所有商品信息
select * from product where pname like '__辣%';
-- 查询商品名称中包含%的商品信息
insert into product values(null,'黄%鹤楼',null,'饭后一根烟,胜做活神仙',3);

select * from product where pname like'%\%%';
select * from product where pname like'%A%%' escape 'A';

-- in 判断值是否在某个集合/范围
--查询出商品分类ID在 1,3,4里面的所有商品
select * from product where cno in(1,3,4);

--排序查询: order by 关键字/列名 排序规则
asc : 升序 ascend
desc: 降序 descend

--0. 查询所有商品,按照价格进行排序
select * from product order by price asc;


--1.查询所有的商品,按价格进行降序排序 (asc-升序 desc-降序);
select * from product order by price desc;
--2.查询名称有 辣 的商品,按价格降序排序
select * from product where pname like '%辣%' order by price desc;

-- 聚合函数: 统计数据
sum() 求和, avg() 平均值 max()最大值 min()最小值 count()总数
--1.获得所有商品价格的总和:
select sum(price) from product;
--2.获得所有商品的平均价格:
select avg(price) from product;

--3.获得所有商品的个数:
select count(*) from product;

--分组: group by
本质上是先将表中数组,按照分组的条件进行排序,排完序之后,再做统计操作
select 分组的条件,分组之后的操作 from 表名 group by 分组条件 [having 条件过滤];

-- select后控制的是要显示的内容, 只写分组的条件和分组之后的操作

--1.根据cno字段分组,分组后统计商品的个数
select cno,count(*) from product group by cno;


--分组之后的条件过滤: having
--2.根据cno分组,分组统计每组商品的平均价格 并且商品平均价格 > 60
select cno,avg(price) from product group by cno;
select cno,avg(price) from product group by cno having avg(price)>60;


where 和 having的区别
where 分组之前执行 ,不能接聚合函数
having 分组之后执行 ,可以接聚合函数

SQL编写顺序:
select 要查询的列 from 表名 where 条件过滤 group by 分组条件 having 分组之后的过滤 order by 列名;

SQL执行顺序:

SQL知识点的更多相关文章

  1. sql 知识点系统汇总

    提供性能: .服务器往往具有强大的计算能力和速度..避免把大量的数据下载到客户端,减少网络上的传输量. 第一章 T-SQL 语句 1.1数据类型 文本型 -- CHAR 定长型 <=8000字节 ...

  2. sql知识点的积累和使用过的例子

    越来越发现自己的sql方面的知识的欠缺,所以只能放低姿态一点一点的学了 一 游标和charIndex的使用. 游标我一直没用过,以前只是在同事们写的存储过程里见过,但是一直没看明白(可是我就是比较笨吧 ...

  3. Sql 知识点小结

    使用数据库的好处: 1.安全 2.支持多用户操作 3.误删数据比较容易恢复 4.存储较大容量的数据MySql: MYsql AB公司开发的数据库, 现在归属Oracle公司,开元的关系型数据库RDBM ...

  4. SQL知识点大纲图

    这是我整理出来的SQL大纲图.

  5. sql知识点记录

    order by就是排序. group by就是分组. WHERE语句在GROUP BY语句之前:SQL会在分组之前计算WHERE语句.    HAVING语句在GROUP BY语句之后:SQL会在分 ...

  6. SQL知识点、SQL语句学习

    一. 数据库简介和创建1. 系统数据库在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例 ...

  7. SQL知识点脑图(一张图总结SQL)

    sql语言的分类DDL:create drop alter DML:insert delete update DCL:rollback grant revoke commit 概要,主外键,视图,索引 ...

  8. sql 知识点

    1 聚集索引和非聚集索引的区别 聚集索引是指 表中存储的数据按照索引的顺序来存储,数据检索效率高,但是对数据更新影响较大:非聚集索引是数据存储在一个地方,索引存储在另一个地方:索引带有指针,指向数据的 ...

  9. Spark SQL知识点大全与实战

    Spark SQL概述 1.什么是Spark SQL Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块. 与基本的Spark RDD API不同,Sp ...

随机推荐

  1. nginx静态服务器配置

    1. nginx安装 在 Ubuntu 下,可以舍去编译安装的过程,直接 apt-get sudo apt-get install nginx sudo service nginx start 2. ...

  2. New UWP Community Toolkit - XAML Brushes

    概述 上一篇 New UWP Community Toolkit 文章中,我们对 V2.2.0 版本的重要更新做了简单回顾.接下来会针对每个重要更新,结合 SDK 源代码和调用代码详细讲解. 本篇我们 ...

  3. css3图片模糊过滤特效

    体验效果:点击这里查看效果 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  4. C语言博客作业--函数嵌套调用

    一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...

  5. Alpha第二天

    Alpha第二天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  6. java web 初学

    我希望在本学期本堂课上学会使用java web 框架 精通mvc架构模式 学会通过框架和数据库对产品进行构造与编写. 我计划每周用16小时的时间进行学习java web 一周4学时上课时间 周一到周五 ...

  7. C程序第二次作业

    2-1删除字符串中数字字符 1.设计思路 (1)主要描述题目算法 第一步:遍历指针s所指的s数组. 第二步:如果 * (s+i)在0至9之间的话,则跳过此 * (s+i). 第三步:如果* (s+i) ...

  8. 简单的C语言编译器--语义制导翻译

      语法分析是最难写的,而这部分确实最伤脑的.大量的语义动作分析差点把我逼疯.   简而言之,这部分的作用就是在每次归约之后,都进行一些语义动作,最终让我们得到测试程序的三地址码,即中间代码. 1. ...

  9. 201621123057 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 在上一周的总结上做了一点补充 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1. ...

  10. 第二篇:Python数据类型

    一.引子 1.什么是数据? x= #是我们要存储的数据 2.为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字(整型,长整型,浮点型,复数) 字 ...