【数据库(一)】SQL语言-表定义、查询
基本模式定义+
SQL支持许多不同的完整性约束。
not null, 在该属性上不允许空值
primary key 是否是是主码,主码必须非空且唯一
foreign key
check(P),P是谓词条件
Create Table instructor (ID char(5),
name varchar(20) not null,
dept_name varchar(20),
salary numeric(8,2),
primary key(ID),
check(salary>=0));
Create Table instructor (ID char(5), primary key,
name varchar(20),
dept_name varchar(20),
salary numeric(8,2),
check(salary>=0));
在SQL server2000中,与WHERE子句不同的是:它能为空
Drop table instructor
Alter Table instructor add birthday,增加新的属性
Alter Table instructor drop A,去掉某些属性,不用某个属性就好,误操作引起
Alter table instructor modify(ID char(10));
SQL是具有影响力的商用市场化的关系查询语言
数据定义语言(DDL)
数据操纵语言(DML)
数据控制语言(DCL)
SQL查询基本结构
select
from
where
去除重复: select distinct dept_name from instructor
选择所有属性:select * from instructor;
where子句
select name frome instructor where dept_name ='Comp.Sci' and salary>70000;
逻辑连接符:and or not <= >= ><
from 子句
找出关系instructor 和teachers 的笛卡尔积
select *
from instructor, teaches;
例子:找出Computer Science系的教师名称和课程名称
instructor(ID,name,dept_name,salary) teaches(ID,course_id,sec_id,semester,year)
select name,course_id
from instructor, teaches
where instructor.ID = teachers.ID and instructor.dept_name = 'Comp. Sci';
【笛卡尔积】

运算性质
SQL重命名机制
old name as new name
select name as instructor_name
【E】找出所有教师名,他们的工资至少比Biology系的某一个教师的工资要高:
select distinct T.name
from instructor as T,instructor as S
where T.salary >S.salary and S.dept_name = 'Biology';
字符串运算
like的模式匹配
百分号(%)匹配字符串通配符
下划线(_)匹配任意一个字符
转义字符
‘ab\%cd%’
排序
按照字母顺序列出在Physics习的所有老师
select name
from instructor
where dept_name = 'Physics'
order by name;//按照name字段进行排序;
升序&降序(ordered by salary desc, name asc)//如果工资相同,那么按照name字母进行升序。
集合运算
except,剔除掉
聚集函数
平均值(avg)
最小值(min)
最大值(Max)
综合(sum)
分组聚集
group by 分组概念
having对分组再进行选择
select avg(salary) as avg_salary
from instructor
where dept_name = 'Comp.Sci';
找出每个系的平均工资
select dept_name avg(salary) as avg_salary
from instructor
group by dept_name;
找出平均工资超过42000美元的系
select dept_name avg(salary) as avg_salary
from instructor
group by dept_name
having avg(salary) > 42000
空值
select name from instructor where salary is null;
空值的存在给聚集运算带来了麻烦,聚集函数根据以下原则处理空值
除了count *外,所有的函数都忽略空值
【数据库(一)】SQL语言-表定义、查询的更多相关文章
- Sybase数据库常用sql语言
Sybase数据库常用sql语言 1,表备份: --table_name1:需要备份的表; table_name2:备份后的表 SELECT * into table_name2 from table ...
- 数据库系统学习(七)-SQL语言之复杂查询与视图
第七讲 SQL语言之复杂查询与视图 基本内容 子查询 IN与NOT IN谓词子查询 判断某一表达式的值是否在子查询的结构中 非相关子查询 相关子查询 theta some /theta all谓词子查 ...
- MySQL入门——MySQL数据库和SQL语言
MySQL入门——MySQL数据库和SQL语言 摘要:本文主要了解了MySQL关系型数据库和SQL语言的基本知识. MySQL数据库 简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB ...
- 架构-数据库访问-SQL语言进行连接数据库服务器-DAO:DAO
ylbtech-架构-数据库访问-SQL语言进行连接数据库服务器-DAO:DAO DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft ...
- 避免SQL全表模糊查询查询 下载文件时-修改文件名字
避免SQL全表模糊查询查询 1.模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like %...%(全模糊)这样的条件,是无法使用索引的,全表扫描自然效 ...
- 架构-数据库访问-SQL语言进行连接数据库服务器-OLE:OLE
ylbtech-架构-数据库访问-SQL语言进行连接数据库服务器-OLE:OLE Object Linking and Embedding,对象连接与嵌入,简称OLE技术.OLE 不仅是桌面应用程序集 ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- 图解SQL多表关联查询
图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习 内连接 左连接 右连接 全外连接 1. 查两表关联列相等的数据 ...
- 架构-数据库访问-SQL语言进行连接数据库服务器:SQL语言进行连接数据库服务器
ylbtech-架构-数据库访问-SQL语言进行连接数据库服务器:SQL语言进行连接数据库服务器 数据库和应用服务器的连接. 在基于三层构架的信息系统开发中,应用服务器要利用SQL语言进行连接数据库服 ...
随机推荐
- 第二次作业-git的基本操作
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 一.修改用户名和邮箱地址: (1)配置用户名命令:$git ...
- 3. Dubbo原理解析-Dubbo内核实现之动态编译 (转)
转载自 斩秋的专栏 http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577159 我们运行的Java代码,一般都是编译之后的字节码 ...
- element-ui checkbox传默认值的问题
新入职一家公司了,准备把项目中遇到的问题随时记录下来.以前遇到的问题解决了没有记录,导致面试的时候问项目中遇到那些问题时,好多都忘了. 今天记录一下element-ui 的 checkbox 传递默认 ...
- 尚硅谷面试第一季-13git分支相关命令
课堂重点:分支相关命令 实际应用-工作流程 实操命令及运行结果: 创建master分支并提交 git init git add . git commit -m "V1.0" git ...
- SIP协议简单介绍
sip协议是由IETF提出的IP电话信令协议,主要目的是为了解决ip网络中的信令控制,以及同软交换通信. sip协议类似http协议: 报文结构: start-line message-header ...
- Learning-Python【1】:交互式环境与变量的使用
一.执行Python程序的两种方式 1. 交互式环境,打开cmd,输入python2或python3,显示提示符 “>>>”. 特点:输出代码立即执行 优点:调试程序方便 缺点:无法 ...
- Learning-Python【8】:Python字符编码
1.内存和硬盘都是用来存储的 内存:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的 ...
- 解决Intellij IDEA中console窗口中文乱码的问题
配置完tomcat之后,测试运行时,中文是乱码,如下图(自己忘截图了,图源网络,看水印) 网上其他的修改方法我就不说了,至少我试了一个都没用. 下面两个方法也是网上的,在此总结一下: 1.在idea. ...
- Java 批量导入大量数据
项目上线测试.产品说导入太慢了,一样的数据量另外一个系统只需要1分钟,我们要5分钟.... 开始以为是因为POI在解析07版本的Excel时候,因为数据量太多所以慢了,后面看下日志,发现是在入库的时候 ...
- 第 8 章 容器网络 - 065 - 容器在 Weave 中如何通信和隔离?
首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 we ...