SQL知识点
关系型数据库: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知识点的更多相关文章
- sql 知识点系统汇总
提供性能: .服务器往往具有强大的计算能力和速度..避免把大量的数据下载到客户端,减少网络上的传输量. 第一章 T-SQL 语句 1.1数据类型 文本型 -- CHAR 定长型 <=8000字节 ...
- sql知识点的积累和使用过的例子
越来越发现自己的sql方面的知识的欠缺,所以只能放低姿态一点一点的学了 一 游标和charIndex的使用. 游标我一直没用过,以前只是在同事们写的存储过程里见过,但是一直没看明白(可是我就是比较笨吧 ...
- Sql 知识点小结
使用数据库的好处: 1.安全 2.支持多用户操作 3.误删数据比较容易恢复 4.存储较大容量的数据MySql: MYsql AB公司开发的数据库, 现在归属Oracle公司,开元的关系型数据库RDBM ...
- SQL知识点大纲图
这是我整理出来的SQL大纲图.
- sql知识点记录
order by就是排序. group by就是分组. WHERE语句在GROUP BY语句之前:SQL会在分组之前计算WHERE语句. HAVING语句在GROUP BY语句之后:SQL会在分 ...
- SQL知识点、SQL语句学习
一. 数据库简介和创建1. 系统数据库在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例 ...
- SQL知识点脑图(一张图总结SQL)
sql语言的分类DDL:create drop alter DML:insert delete update DCL:rollback grant revoke commit 概要,主外键,视图,索引 ...
- sql 知识点
1 聚集索引和非聚集索引的区别 聚集索引是指 表中存储的数据按照索引的顺序来存储,数据检索效率高,但是对数据更新影响较大:非聚集索引是数据存储在一个地方,索引存储在另一个地方:索引带有指针,指向数据的 ...
- Spark SQL知识点大全与实战
Spark SQL概述 1.什么是Spark SQL Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块. 与基本的Spark RDD API不同,Sp ...
随机推荐
- 云计算 --> 三种服务模式IaaS,PaaS,SaaS
三种服务模式IaaS,PaaS,SaaS “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务.任何一个使用基于互联网的方法来计算,存储和开 ...
- Algorithm --> Dijkstra和Floyd最短路径算法
Dijkstra算法 一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必 ...
- 小细节,大用途,35 个 Java 代码性能优化总结!
前言: 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用 ...
- python爬虫解决gbk乱码问题
今天尝试了下爬虫,爬取一本小说,忘语的凡人修仙仙界篇,当然这样不好,大家要支持正版. 爬取过程中是老套路,先获取网页源代码 # -*- coding:UTF-8 -*- from bs4 import ...
- Linux下的进程与线程(二)—— 信号
Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...
- Duplicate column name 'vocabulary'
创建一个视图: 报错:Duplicate column name 'vocabulary' 意思是视图select的列名重复了,取别名 改成这样就ok了
- 201621123050 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:接口.has-a.comparable 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. ...
- 需求分析&原型设计
需求分析&原型设计 需求分析 访问软件项目真实用户 首先本项目的用户是这个需要做简单四则运算的用户(我们团队通过对家里有三四年级小学生(需要做简单四则运算)的简单采访):反映了几个主要的问题: ...
- 学号:201621123032 《Java程序设计》第14周学习总结
1:本周学习总结 2:使用数据库技术改造你的系统 2.1:简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 建立一个图书馆的表 建立读者用户个人的借书信息表---但是目前没有办法做到 ...
- c++ 中lambda
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作. 1.Lambda表达式完整的声明格式如下: [capture list] (params list) mutable ...