美文网首页
数据库学习(一)

数据库学习(一)

作者: 箭头_7a49 | 来源:发表于2018-05-28 19:31 被阅读0次

    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) 

    相关文章

      网友评论

          本文标题:数据库学习(一)

          本文链接:https://www.haomeiwen.com/subject/yfbljftx.html