Sybase及SQL Anywhere SQL语句小结

SELECT 语句
SELECT *
FROM employee
SELECT *
FROM employee
ORDER BY emp_lname ASC
SELECT *
FROM employee
ORDER BY emp_lname DESC
SELECT emp_lname, dept_id, birth_date
FROM employee
SELECT *
FROM employee
WHERE emp_fname='John' (一定使用单引号)
SELECT emp_fname, emp_lname, birth_date
FROM employee
WHERE emp_fname = 'John'
ORDER BY birth_date
SELECT emp_lname, birth_date
FROM employee
WHERE birth_date < 'March 3, 1964'
(=、<、>、<=、>=、<>,加上AND与OR)
SELECT emp_lname, emp_fname
FROM employee
WHERE emp_lname LIKE 'br%'
(%、_)
SELECT emp_lname, emp_fname
FROM employee
WHERE SOUNDEX( emp_lname ) = SOUNDEX( 'Brown' )
SELECT emp_lname, birth_date
FROM employee
WHERE birth_date BETWEEN '1965-1-1' AND '1965-3-31'
SELECT emp_lname, emp_id
FROM employee
WHERE emp_lname IN ('yeung', 'bucceri', 'charlton')
连接表
SELECT *
FROM sales_order, employee
WHERE sales_order.sales_rep = employee.emp_id
SELECT E.emp_lname, S.id, S.order_date
FROM sales_order as S, employee as E
WHERE S.sales_rep = E.emp_id
ORDER BY E.emp_lname
连接两表的快捷键KEY JOINNATURAL JOIN ,最好用WHERE.
SELECT emp_lname, id, order_date
FROM sales_order
KEY JOIN employee
(主键与外部键对应的地方,就可以用KEY JOIN)
SELECT company_name,
CAST( SUM(sales_order_items.quantity * product.unit_price) AS INTEGER) AS value
FROM customer
KEY JOIN sales_order
KEY JOIN sales_order_items
KEY JOIN product
GROUP BY company_name
SELECT emp_lname, dept_name
FROM employee
NATURAL JOIN department
(找出两表间有相同的字段名,进行连结)
集合
SELECT count( * )
FROM employee
SELECT count( * ),
min( birth_date ),
max( birth_date )
FROM employee
(MIN, MAX, COUNT, AVG, SUM, LIST,作为单独的一列选出)
SELECT sales_rep, count( * )
FROM sales_order
GROUP BY sales_rep
(在使用GROUP BY时,对于GROUP BY指定的字段,其每一个不同的值都会组成一行)
SELECT sales_rep, count( * )
FROM sales_order
KEY JOIN employee
GROUP BY sales_rep
HAVING count( * ) > 55
更新数据库
插入语句
INSERT
INTO department ( dept_id, dept_name, dept_head_id )
VALUES ( 220, 'Eastern Sales', 902 )
INSERT
INTO department
VALUES ( 220, 'Eastern Sales', 902 )
UPDATE employee
SET dept_id = 400, manager_id = 1576
WHERE emp_id = 195
DELETE
FROM employee
WHERE termination_date IS NOT NULL
DELETE
FROM employee
WHERE LEFT( phone, 3 ) = '617' AND manager_id = 902
视图
CREATE VIEW emp_dept AS
SELECT emp_fname, emp_lname, dept_name
FROM employee
JOIN department ON department.dept_id = employee.dept_id
SELECT *
FROM emp_dept
(视图能自动更新状态)
DROP VIEW emp_dept
CREATE VIEW emp_dept(FirstName, LastName, Department) AS
SELECT emp_fname, emp_lname, dept_name
FROM employee JOIN department ON department.dept_id = employee.dept_id
(创建视图不能使用ORDEY BY,但使用视图可以使用)
SELECT LastName, dept_head_id
FROM emp_dept, department
WHERE emp_dept.Department = department.dept_name
(将视图与其他表进行进一步的连结)
视图权限管理
GRANT CONNECT TO M_Kelly
IDENTIFIED BY SalesHead
CREATE VIEW SalesEmployee AS
SELECT emp_id, emp_lname, emp_fname
FROM "dba".employee
WHERE dept_id = 200
GRANT SELECT ON SalesEmployee TO M_Kelly
CONNECT USER M_Kelly IDENTIFIED BY SalesHead ;
SELECT * FROM "dba".SalesEmployee
子查询:
SELECT *
FROM sales_order_items
WHERE prod_id IN
( SELECT id
FROM product
WHERE quantity < 20 )
ORDER BY ship_date DESC
SELECT *
FROM fin_data
WHERE fin_data.code = ANY ( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )
(=ANY 相当于IN)
SELECT *
FROM fin_data
WHERE fin_data.code <> ALL ( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )
(相当于NOT IN)
SELECT sales_order.id, sales_order.order_date,
( SELECT company_name
FROM customer
WHERE customer.id = sales_order.cust_id )
FROM sales_order
WHERE order_date > '1994/01/01'
ORDER BY order_date
(如果其他表只要求产生一个字段,就可以使用子查询来代替连接)
SELECT company_name, state,
( SELECT MAX( id )
FROM sales_order
WHERE sales_order.cust_id = customer.id )
FROM customer
WHERE state = 'WA'
SELECT company_name, MAX( sales_order.id ),state
FROM customer
KEY LEFT OUTER JOIN sales_order
WHERE state = 'WA'
GROUP BY company_name, state
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Anywhere数据库非常规恢复工具 ReadASADB 一个不依赖数据库管理系统 直接从db文件上提取数据的业内领先的恢复工具 一 SQL Anywhere UltraLite介绍 SQL Anywhere 一个免维护 易管理的移动数据库 SQL Anywhere 提供了企业级的功能 包括完全的事务处理 无与伦比的可靠性和功能 包括参照完整性 存储过程 触发器 行级锁 自动的任务安排和自动恢复等功能 易于使用 易于管理 降低最终用户的日常管理费用 多平台支持 资源效率高 配套的定时数据同步工具Mobilink UltraLite 是一种用于小型 移动和嵌入式设备的 具有同步功能的关系数据库 稳健的数据管理 强大的同步功能 直接简明的开发 多平台可用性 您可以开发和部署用于 Windows CE Palm OS 和基于 Java 的设备的 UltraLite 数据库应用程序 二 ReadASADB功能 能够从损坏的SQL Anywhere数据文件 db 和UltraLite数据文件 udb 上提取数据的非常规恢复工具 适用于所有的SQL Anywhere版本 包括:5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 适用于所有的UltraLite版本 能够恢复出来表结构和数据 能够恢复自定义数据类型 能够恢复存储过程等对象的语法 能够导出到目标数据库 能够导出到SQL文件并生成导入脚本 支持多种字符集 包括:cp850 cp936 gb18030 utf8等 能够恢复未加密或者简单加密类型的数据 简单易用 限制:不支持AES加密的数据文件 三 ReadASADB适用场景 各种误操作: 误截断表 truncate table 误删除表 drop table 错误的where条件误删数据 误删除db或log文件 误删除表中的字段 四 ReadASADB恢复数据过程 关于工具ReadASADB还可以参考我的博客: 研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具 ASA数据库物理存储结构分析(1) ASA数据库物理存储结构分析(2) SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍 http: www dbainfo net introduce sql anywhere recovery tool readasadb htm 研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具 http: www dbainfo net i have the tool can recover from asa db file htm">SQL Anywhere数据库非常规恢复工具 ReadASADB 一个不依赖数据库管理系统 直接从db文件上提取数据的业内领先的恢复工具 一 SQL Anywhere UltraLite介绍 SQL Anywhere 一个免维护 易管理的移动数据库 SQL Anywhere 提供了企业级的功 [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值