数据库学习笔记 4 强大的SQL
其实这篇文章应该至少一个星期前就应该更新了,但是最近小猿我和喜欢了好多年的女神牵手成功,所以这些天有点飘。
---创建表结构
create table tablename
(
id int,
name varchat(20) not NULL,
address varchat(100) ,
primary key (id),
FOREIGN KEY (id) REFERENCES retable
);
---删除数据
delete from tablename;
---删除关系(删除表)
drop table tablename;
---添加列
alter table tablename add name varchat(20);
---删除列
alter table tablename drop name;
---插入数据
insert into tablename values(...);
---查询语句(多关系查询)
select * from tablename where ...;
---对查询查询内容进行去重
select distinct name from tablename;
聚集函数
最经常用过的聚集函数也就
- avg 平均值
- sum 求和
- min 最小值
- max 最大值
- count 记录数
分组聚集 Group by
对于Group by只要记住如果Group by子句中没有出现的属性,在select子句中只能以聚集函数的形式体现。
join using
这次学习还遇到一个坑,不理解什么是join using。查了一遍才知道,当两个表关联字段采用相同明明规范时可以用join using 简化join on
select * from A join B on a.name=b.name
可以替换成 select * from A join B using(name)
top
由于我是一本《sqlserver宝典2012》和《数据库系统概念》一起看的,所以有时候能遇到一些小差异
《数据库系统概念》里的练题里有一个是找出工资最高的所有人(工资最高有很多人)
我的第一个想法就是用前几天看的top配合with ties就可以简单的解决这个问题了,执行了一下发现mysql并不支持这样的语法与之对应的是limit,Oracle中与之对应的应该是利用rownum。
外连接
外连接分为左、右、全三种连接方式。
左外连接以左表为主表,右表中没有的指补null,右外连接相反。
全外连接左右都会判断。
SQL VIEW
总是听周围的大神们讲这个功能或者那个功能应该用SQL视图或许能简单一点,这回终于一睹SQL view的芳容。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
知道了SQL view是怎么回事,我开始纠结于应用程序怎么调用的问题。其实很简单视图就是存放在数据库上的虚拟表,只不过只有在使用的时候数据才会被查询出来。
SQL中的时间
SQL中表示时间的类型基本有三种
- date 表示年月日
- time 表示时分秒
- timestamp 是date和time的结合
数据库学习笔记 4 强大的SQL的更多相关文章
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- [转]mnesia数据库学习笔记
mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四
- 数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties
数据库学习笔记3 基本的查询流 2 order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.pers ...
- Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)
前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...
- 数据库学习笔记 (三) python操作数据库
python 操作MYSQL数据库主要有两种方式: 使用原生模块:pymysql ORM框架:SQLAchemy 一.pymysql 1.1下载安装模块 第一种:cmd下:执行命令下载安装:pip3 ...
随机推荐
- HDU - 4496 City 逆向并查集
思路:逆向并查集,逆向加入每一条边即可.在获取联通块数量的时候,直接判断新加入的边是否合并了两个集合,如果合并了说明联通块会减少一个,否则不变. AC代码 #include <cstdio> ...
- HttpURLConnection发送请求
每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConnection 的 InputStrea ...
- 一个可以自由定制外观、支持拖拽消除的MaterialDesign风格Android BadgeView
为了尊重作者,先放上链接:https://github.com/qstumn/BadgeView BadgeView 一个可以自由定制外观.支持拖拽消除的MaterialDesign风格Android ...
- java Socket实现简单在线聊天(三)
在上一篇,利用线程使服务端实现了能够接收多客户端请求的功能,这里便需要客户端接收多客户端消息的同时还能把消息转发到每个连接的客户端,并且客户端要能在内容显示区域显示出来,从而实现简单的在线群聊. 在实 ...
- CSS3之box-shadow
1.属性简介 box-shadow:颜色值|inset|none|!important 2.浏览器兼容性 (1)IE不兼容,IE9和IE10未知: (2)火狐3.5(包含3.5)以上兼容 (3)Chr ...
- Windows 7下阻止系统关机
从Vista开始,想阻止系统关机就开始变麻烦了,不能只拦截WM_QUERYENDSESSION了,操作系统只给一个应用程序两秒钟的时间去保存自己的东西,两秒钟之后,不管做完了没有,Game Over! ...
- Java常量定义
Java常量定义 /** * char 类型常量 */ private static final char CHAR = 'A'; /** * byte 类型常量 */ private static ...
- Linux系统挂载NTFS文件系统
今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此. 无论是一块安装了Windows/Linu ...
- vue常用的网址
http://cn.vuejs.org/v2/guide/routing.html#官方路由 https://unpkg.com/vue-router@2.3.1/dist/vue-router.js
- C# 中?和??的用法
最近在看官方的源码时,经常看到有 Int? sum; 和 FileProvider = FileProvider ??builder.GetFileProvider(); 一个问号: 很多数据类型时不 ...