数据库学习(一)

1.char(n): 固定长度的字符串,输入字符串长度不足时自动在后面加空格。

2.varchar(n):可变长度的字符串,用户指定最大输入长度。不会自动在字符串后添加空格。

3.numeric(p,d):定点数,精度有用户指定。这个数有p为数字,其中d为数字在小数点后边。整数位数+d <= p

4.real, double precision : 浮点数与双精度浮点数,精度与机器有关。

5.float(n):精度至少为n位的浮点数。

6.主键(primary key)属性必须非空且唯一。

7.外键(foreign key)声明表示关系中任意元组在属性上的取值必须对应于关系S中某元组在主键属性上的取值。

8.将查询的结果去重,使用关键字distinct,例如:select distinct name from user。

9.默认查询的结果是不去重的,显示指定不去重,使用关键字all,例如:select all name from user。

10.select 子句还可以带含有 - + * / 运算符的算术表达式,例如:select name salary * 1.5 from user。查询出的工资(salary)是原来的1.5倍。但是不会改变数据库中的salary。并不导致对user关系的任何改变。

11.sql允许在where子句中使用逻辑连词and,or 和 not。逻辑连词的运算对象可以是包含运算符<, <=, >, >=, = 和 <> 的表达式。sql允许使用比较运算符比较字符串,算数表达式,以及特殊类型,例如日期。

二,字符串运算

1.串联:|| ,将字符串转换为大写:upper(String),将字符串转换为小写:lower(String),去掉字符串后面的空格:trim(String)

2.like

    2.1. %:匹配任意字符串。'Intro%':匹配以Intro打头的字符串。'%Intro%':匹配任何包含Intro的字符串。

    2.2. _ (下划线):匹配任意一个字符。'_ _ _':匹配只含三个字符的字符串。'_ _ _ %':匹配至少含三个字符的字符串。

    2.3. 例子:找出所在建筑名称中包含字串'JIM'的所有系名,select dept_name from department where building like '%JIM%';

3.在like运算中使用escape关键字来定义转义字符。例如:    like 'ab\%cd%' escape '\',转义字符为'\', like语句的含意是匹配所有以ab%cd打头的字符串。like 'ab\\cd%' escape'\',转义字符为'\',like语句的含义是匹配所有以'ab\cd'打头的字符串。

4.not like 比较运算符搜寻不匹配项。

5.similar to 比like 更强大。他的模式定义语法类似于UNIX中的正则表达式。

三,排列元组的显示次序

1.order by 子句让查询结果中元组按排列顺序显示。默认使用升序。    要说明排序顺序可以使用asc(升序),desc(降序)。例如 select * from tableA  order by salary desc, name asc。

2.SQL允许用记号(v1,v2,...vk)  来表示一个分量值分别为v1,v2,..,vk的n维元组。在元组上可以使用比较运算符,

按字典顺序进行比较运算。例如:(a1,a2)<= (b1,b2)在a1 <= b1 且 a2 <= b2 时为真。 where 条件语句

 where instructor.ID = teachers.ID and dept_name = 'Biology' 可以换成

where (instructor.ID,dept_name)= (teachers.ID,'Biology') 

四,并,交,差运算

1. 并运算 union自动去重,需要保留重复,使用union all。例如:找出在2009年或者在2010年开办的课程。

(select courseName from section where year = 2009)union  (select courseName from section where year = 2010) 

2. 交运算 intersect 自动去重,需要保留重复,使用intersect all。例如:找出在2009年和2010年同时开办的课程。

(select courseName from section where year = 2009)intersect(select courseName from section where year = 2010) 

3.差运算 except自动去重,需要保留重复,使用except all。例如:找出在2009年开办但不在2010年开办的课程。

(select courseName from section where year = 2009)except(select courseName from section where year = 2010) 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 回顾 数据库基础知识:关系型数据库(磁盘)和非关系型数据库(内存) 关系型数据库:建立在关系模型上的数据库数据结构...
    翊溪阅读 3,593评论 0 1
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,894评论 0 2
  • 写在前面:本篇博客大部分内容参考数据库系统概念(本科教学版)第三章 SQL的组成PS:其中DDL、DML、inte...
    SunnyQjm阅读 3,811评论 0 2
  • 最近要考试,整理一波Oracle数据库的课堂笔记。 1、数据库(Database)是按照数据结构来组织、存储和管理...
    Shaw_Chen阅读 2,972评论 3 5
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,730评论 0 13

友情链接更多精彩内容