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 ...
随机推荐
- nginx静态服务器配置
1. nginx安装 在 Ubuntu 下,可以舍去编译安装的过程,直接 apt-get sudo apt-get install nginx sudo service nginx start 2. ...
- New UWP Community Toolkit - XAML Brushes
概述 上一篇 New UWP Community Toolkit 文章中,我们对 V2.2.0 版本的重要更新做了简单回顾.接下来会针对每个重要更新,结合 SDK 源代码和调用代码详细讲解. 本篇我们 ...
- css3图片模糊过滤特效
体验效果:点击这里查看效果 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- C语言博客作业--函数嵌套调用
一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...
- Alpha第二天
Alpha第二天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- java web 初学
我希望在本学期本堂课上学会使用java web 框架 精通mvc架构模式 学会通过框架和数据库对产品进行构造与编写. 我计划每周用16小时的时间进行学习java web 一周4学时上课时间 周一到周五 ...
- C程序第二次作业
2-1删除字符串中数字字符 1.设计思路 (1)主要描述题目算法 第一步:遍历指针s所指的s数组. 第二步:如果 * (s+i)在0至9之间的话,则跳过此 * (s+i). 第三步:如果* (s+i) ...
- 简单的C语言编译器--语义制导翻译
语法分析是最难写的,而这部分确实最伤脑的.大量的语义动作分析差点把我逼疯. 简而言之,这部分的作用就是在每次归约之后,都进行一些语义动作,最终让我们得到测试程序的三地址码,即中间代码. 1. ...
- 201621123057 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 在上一周的总结上做了一点补充 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1. ...
- 第二篇:Python数据类型
一.引子 1.什么是数据? x= #是我们要存储的数据 2.为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字(整型,长整型,浮点型,复数) 字 ...