SQL语言备忘录

原创 2007年10月12日 13:02:00
 
Boolean Data
BOOLEAN   TURE/FALSE
Numeric Data
Exact Numbers
INTEGER (INT,INT4) 2,147,483,648 to 2,147,483,647
SMALLINT -32768 to 32767
BIGINT (INT8) 8位整数
Approximate Numbers
FLOAT[precision]
REAL
DOUBLE PRECISION
Formatted Numbers
DECIMAL(i,j), DEC(i,j) or NUMERIC(i,j)
 
CREATE TABLE TT (A DATE, B DATE, C INTERVAL); (creat )
INSERT INTO TT(A, C) VALUES(NOW(),'1 DAY');
UPDATE TT SET B = A+ '2 MONTH'::INTERVAL;
 
‘2000-02-29’ 推荐   to_date('2000/02/29' , ‘yyyy/mm/dd' )
 
CREATE DOMAIN hour_dom AS INTEGER DEFAULT 0 CHECK (VALUE >= 0);
CREATE DOMAIN genderDom AS CHAR   DEFAULT ‘M’
       CHECK (VALUE IN (
‘F’, ‘f’,‘M’ ,‘m’));  
 
CREATE TABLE BOOK
 (  Book_Id NUMERIC(6) NOT NULL,
       Edition NUMERIC(3) NOT NULL,
       CallNumber VARCHAR(8) NOT NULL UNQUE,( UNQUE 备选码    唯一码)
       Primary Key (Book_Id),
       FOREIGN KEY (LibCheck) REFERENCES LIBRARIAN(SSN)
 );
 
DROP TABLE MEMBER CASCADE;
DROP TABLE MEMBER RESTRICT;
 
ALTER TABLE tableName
[ADD [COLUMN] columnName dataType [NOT NULL] [UNIQUE]
[DEFAULT defaultOption] [CHECK (searchCondition)]]
[DROP [COLUMN] columnName [ RESTRICT | CASCADE ]]
[ADD [CONSTRAINT [constraintName]]tableConstraintDefinition]
[DROP CONSTRAINT constraintName [ RESTRICT | CASCADE ]]
[ALTER [COLUMN] SET DEFAULT defaultOption]
[ALTER [COLUMN] DROP DEFAULT]
 
第一:
ALTER TABLE products ADD COLUMN description text ;
ALTER TABLE products DROP COLUMN description RESTRICT;
ALTER TABLE products DROP COLUMN description CASCADE;  
 
第二:
ALTER TABLE products
ADD CHECK (name <> '');
ALTER TABLE products
ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE products
ADD FOREIGN KEY    (product_group_id) REFERENCES product_groups;
ALTER TABLE products DROP CONSTRAINT constraint_name;
 
第三:
ALTER TABLE LIBRARIAN
ALTER COLUMN Salary TYPE NUMBER(6,2);  
ALTER TABLE DEPENDENT
ALTER COLUMN kinship DROP DEFAULT(NOT NULL);
ALTER TABLE BOOK
ALTER COLUMN BorrowerMemNo SET DEFAULT NULL(SET NOT NULL);
 
SELECT DISTINCT CallNumber (消重)
       FROM BOOK;
 
SELECT staffNo,fName,lName,salary/12 AS monthlySalary FROM Staff;
 
SELECT Book_id FROM BOOK WHERE BorrowerMemNo IS NULL;
 
SELECT * FROM LIBRARIAN  WHERE Salary BETWEEN 25000 AND 35000;
 
SQL语句, WHERE子句为真的才被选出
1.SELECT staffNo,fName,lName,position
              FROM Staff
              WHERE position NOT IN (‘Manager’, ‘Supervisor’) is not false;(包括NULL
(题目句子中有not in   就用此结构)
2.Select SSN,name,salary
              From Employee
              Where SSN in
              (select MgrSSN
From DEP) is not null;   ( 包括NULL)
 
_ 一个字符
%任意个字符
SELECT SSN, Name    FROM LIBRARIAN      WHERE Name LIKE 'Nick%';
表示本身转义字
SELECT Name, CallNumber
       FROM TITLES
       WHERE Name LIKE '%10&%%' ESCAPE '&';
 
SELECT Fname || MI || Lname AS Name, PhoneNumber FROM MEMBER
       WHERE PhoneNumber LIKE '(412) 6_3%';
 
 
SELECT SUM (Salary) AS TotalSalaries,     --求和
           MAX (Salary) AS MaxSalary,              --最大值
           MIN (Salary) AS MinSalary,         --最小值
           AVG (Salary) AS AvgSalary,         --平均值
           COUNT (*) AS Cardinality,          --元组计数
           COUNT (DISTINCT Salary) AS Salarylevels –不重复非空值计数
FROM LIBRARIAN;
 
count(*)对所有选出元组计数, count(column)只对column非NULL的原组计数。


ELECT后一般只能出现集函数和GROUP BY后的分组列(补:将一些看是无用的放在GROUP BY)
SELECT CallNumber, COUNT(*) AS NoPopularBooks
       FROM BOOK
       WHERE Edition >= 3           --元组限制
       GROUP BY CallNumber        --分组
       HAVING COUNT (*) >= 5; --分组限制    
 
嵌套子查询
1( =, <>, >, >=, <, <= ) 要求子查询单值,类型可比,子查询只能在比较运算符右边。
SELECT SSN
              FROM Librarian
              WHERE salary <
                     (SELECT salary
                            FROM Librarian
                            WHERE SSN = ‘S3-07-021’);
2ANY (that is, SOME) or ALL.
Comparisons ( =, <>, >, >=, <, <= ) + (ANY or ALL) 实现各种复杂语义
> ANY 不是最小,>= ALL 最大,<= ALL 最小
SELECT SSN
FROM Librarian
WHERE salary <= ALL
(SELECT salary
FROM Librarian);
 
Example 2: List the name and SSN of all head librarians whose salary is lower than that of any librarian who is not a head librarian.
SELECT Name, SSN
FROM LIBRARIAN, SECTION
WHERE SSN = HeadSSN AND salary < ANY            (SELECT Salary
FROM LIBRARIAN L
WHERE L.SSN NOT IN
( SELECT HeadSSN FROM SECTION ) IS NOT FALSE);
相关子查询:
计算时,类似两重循环。外层带值入内层,测试是否有值。
Example 1: List the names and SSNs of all librarians who are not head librarians.
SELECT L.SSN, L.Name
FROM LIBRARIAN L
WHERE NOT EXISTS
(SELECT *
FROM SECTION
WHERE L.SSN = HeadSSN); - -内外层相关
 
The UNIQUE and NOT UNIQUE operators test for duplicates in a result. 唯一测试
Example: List the names and SSNs of all librarians with more than one dependent.
SELECT Name,SSN
FROM Library L
WHERE NOT UNIQUE
(SELECT * FROM DEPENDENT
WHERE LIBSSN = L.SSN);
 
表连接
1.SELECT Lname, Book_Id
       FROM Member,Book
       WHER MemNo=BorrowerMemNo; 
2.SELECT DISTINCT Lname, Address
FROM (MEMBER JOIN BOOK ON MemNo = BorrowerMemNo)
WHERE Fname = 'Andreas' or Fname = 'Rebecca';
 
UPDATE TableName
SET columnName1=value [, columnName1=value…]
[WHERE searchCondition]
UPDATE librarian
SET salary = salary*1.05;
       WHERE section =
                 (SELECT sectno
                   FROM sction
                   WHERE name = ‘Art’);
 
DELETE FROM TableName
[WHERE searchCondition]
DELETE FROM librarian
WHERE section =
(SELECT sectno FROM section
WHERE name = ‘checkout’);
DELETE FROM book;(全部删除)
 
 
集合关系
Intersect expect union
 
 
不用<>而用‘not in+’=’
 
Like (‘A’ or ‘B’)不好 Like ‘A’ or Like ‘B’
 
UPPERgender = ‘F’ LOWER
 
多个表中有共同的字段 一定要指明是那个表的
 

基于Qt5.5.0的sql,C++备忘录软件的编写

http://www.cnblogs.com/xiaobo-Linux/p/4676950.html 我的第一个软件。 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编...
  • tianzhijiaozi19
  • tianzhijiaozi19
  • 2016年10月23日 14:50
  • 284

安卓小项目实战之--定时提醒备忘录

写在前面:      安卓的学习也有半年多了,期间也曾写过博客,但大多都是一些琐碎的笔记,基本没用任何参考价值,这几天闲来无事,便想做个小项目来玩玩,巩固一下基本知识,并且完整的记录下来整个开发的过程...
  • wingichoy
  • wingichoy
  • 2015年05月18日 23:30
  • 2599

“备忘录模式”就这么简单

备忘录模式的官方定义: 在不破坏封装性的前提下,获取一个对象的内部状态,并在该对象之外保存这些状态。这样以后就可以通过该对象恢复到原先保存的状态。...
  • u010425776
  • u010425776
  • 2015年08月26日 20:22
  • 1293

动态规划&备忘录方法&递归方法

动态规划的基本思想是,将原问题拆分为若干子问题,自底向上的求解。其总是充分利用重叠子问题,即通过每个子问题只解一次,把解保存在一个表中,巧妙的避免了子问题的重复求解。 递归方法,采用的是自顶向下的思...
  • traceorigin
  • traceorigin
  • 2013年04月30日 13:22
  • 3833

这些在安装Windows 10时常用到的(类似备忘录)

(网络都有了,整理一下方便查找,今天找一台有Win10的机子配点图) 1、资源管理器一打开就看到分区。 默认的任务栏上的不好用,我需要的是象打开“我的电脑”(习惯了这叫)那样的,一打开就可以见到各...
  • xz0125pr
  • xz0125pr
  • 2015年10月14日 11:53
  • 786

php备忘录模式

CleverCode最近在看备忘录模式。 1 模式介绍  在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 2 模式中的角色   ...
  • CleverCode
  • CleverCode
  • 2016年11月05日 17:24
  • 1128

备忘录模式及C++实现

一,理论学习: 1.什么是备忘录模式?     GoF《设计模式》中对备忘录模式的定义是这样的:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原...
  • u012395430
  • u012395430
  • 2014年05月27日 22:12
  • 756

android 备忘录之简单实现

首先创建保存备忘录信息的表:
  • kuangfengbuyi
  • kuangfengbuyi
  • 2014年10月31日 17:50
  • 16313

iOS备忘录之开发经验总结

转载自:点击打开链接 在iOS开发中经常需要使用的或不常用的知识点的总结,几年的收藏和积累(踩过的坑)。 一、 iPhone Size 手机型号 屏幕尺寸 iPh...
  • q1194259339
  • q1194259339
  • 2016年05月09日 15:48
  • 1866

算法备忘录——查找

数据一旦被有规律得组织起来,从中查找出所需元素的效率将会大大提高。 查找算法准确的说,应该是数据的组织方法与查找方法的结合。没有组织规律的数据,我们只能用直观的暴力方法,一个一个拿出来对比,从而筛选出...
  • zhou_chenz
  • zhou_chenz
  • 2016年08月21日 22:41
  • 1496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL语言备忘录
举报原因:
原因补充:

(最多只允许输入30个字)