>

【从零伊始学习Oracle数据库】(1)建表与简便询问

- 编辑:乐百家599手机首页 -

【从零伊始学习Oracle数据库】(1)建表与简便询问

咱俩今日主要向大家讲述的是把SQL Server数据复制到的Access数据库中的实操步骤,把SQL Server数据库中的某个数据复制到的Access数据库中,其表的主要社团是如出一辙的,不要提用openrowset,因为Access文件和SQL Server不在一台机器上。

转移的艺术

  1. Access: 使用format()函数,SELECT TOP 五arttitle,format(artdate,'YY-MM-DD') as arttime FROM kingart WHERElistid=九,这里运用format()函数,钦定artdate(日期型)查询出来的格式为YY-MM-DD。
  2. SQL Server: 使用convert()函数,select Id,lanmu,title,content, convert(varchar(10),updatetime ,120) as update_time from news,这里的120,是钦定格式为YY-MM-DD,假如是任何数字(十壹-120),就是别的的格式。

6.Oracle援助的数据类型

  • 数字
  • number(n) 数字( 最长 n 位 )
  • number(n , m) 浮点数( 总参谋长 n 为 , 小数点后 m 位 )
  • 例:number(7,贰) 表示最大数为 9999玖.9九
  • 字符串
  • char(n) 代表定长字符串( 方便查询 )最长放入 n 个字符 , 放入的多寡若是不够 n 个字符则补空格 , 无论怎样都占 n 个字符长度。
  • varchar(n) 代表变长字符串( 节省空间 )最长放入 n 个字符 , 放入的多少是多少个长度就占多大空间
  • varchar二(n) Oracle 本人定义的变长字符串
  • 日期
  • date 日期
  • 二进制
  • BLOB 二进制数据 最大尺寸肆G

上述的有关内容正是对SQL Server数据复制到的Access中的描述,希望会给你带来一些相助在此方面。

近几来又在进级二个先后,使其帮衬大多据库。
原本的程序数据库为SQL Server,所以选拔SQL Server 的“导入和导出数据”效用将三个 SQL Server 数据库转变来了Access数据库,但里面开掘了一些难题,但也找到了缓慢解决方案,一并记录于此:

别的一些常用的SQL语句集锦

二.RDBMS( Relational Database Management System )

关系型数据库管理连串是数据库软件中用来决定和管制数据库的1对 , 用亍创设、使用和护卫数据库 , 简称 rdbms。它对数据开展统一的管控 , 以保险数据的安全性和完整性。

因为表的字段相比多,所以不得不用2个巡回

8、这一步的八个单项选取,从数量源复制表和视图与用一条查询指令钦定要传输的多少,接纳前者,按下一步继续。

  1. Access: SELECT '调查' CStr(Did) as diaocha FROM CZdengji
  2. SQL Server: select artid,'调查' Cast(listid As varchar) as did from kingart where artdate>=getdate()

乐百家lo599,五.Table( 表 )

表是数据仓库储存款和储蓄的为主单元 , 对应亍现实世界中的实体对象 , 例如部门、人员等 , 表是二个2维结构 , 由行和列组成 , 横向为行(Row) , 也叫记(Record) , 用来代表实体的数据 , 比方二个高级干部的连带消息。纵向为列(Column) , 也叫作字段(Filed) , 用来代表实体的属性 , 比方人员的薪俸。在软件开拓技巧比如 Java 中 , 现实世界的实业使用对象来描述 , 所以数据表和对象时期存在壹种对应涉及。数据表特出亍类(Class) , 数据表的行就是有些对象的实例(Instance) ,当中每一个列皆以目的实例的习性(Field)。

while (!m_pRecordset_sql->adoEOF)  
{  
m_pRecordset_access->AddNew();  
for (int i = 0; i < m_pRecordset_sql->Fields->Count; i  )  
{  
vValue = m_pRecordset_sql->GetCollect(_variant_t((long)i));  
m_pRecordset_access->PutCollect(_variant_t((long)i), vValue);  
}  
m_pRecordset_access->Update();  
m_pRecordset_sql->MoveNext();  
} 

四、接纳新确立的数据库,按鼠标右键,选用“全体职务”下“导入数据”,按“下一步”继续。

  1. Access: SELECT Id,IIF(Isfinished=1,'已完成','进行中'),Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC
  2. SQL Server 的写法就相对更加的多,能够自定义函数,也足以运用case语句,如select Id,case Isfinished when 壹 then '已成功'
    when 0 then '进行中'  end,Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC

1.常用数据库软件

  • 乐百家数据库,大型数据库
  • Oracle Oracle是驰名中外的Oracle(宋体)公司的数据库产品 , 它是世界上先是个商品化的关系型数据库管理系统 , 也是首先个生产和数据库结合的第陆代语言开拓工具的数据库产品。Oracle 公司的软件出品丰盛 , 包含 Oracle 服务器产品 , Oracle 开采工具和Oracle APP。当中最著名的正是 Oracle 数据库 , 方今风靡的本子是 Oracle1一g。
  • DB二 DB二 是 IBM 的关系型数据库管理系统 , DB2 有那多少个丌同的本子 , 可
    以运维在从掌上产品到大型机丌同的终点机器上。DB2在高等数据库的重要竞争对手是 Oracle。
  • Sybase Sybase是U.S.Sybase集团研制的1种关系型数据库系统 , 是较早采纳C/S 技艺的数据库厂商 , 是1种标准的 UNIX 或 Windows NT 平台上客户机/服务器情状下 的巨型数据库系统 , 在国内大中型系统中全数广泛的选拔。
  • 中小型数据库
  • Sql Server Microsoft SQL Server 是运作在 Windows NT 服务器上 , 接济C/S结构的数据库 管理体系。它利用专门的学问 SQL 语言。 Mysql MySQL是3个微型关系型数据库管理系统 , 开垦者为瑞典王国 MySQL AB公司。在 二〇一〇年 一 月 1六 号被 Sun 集团收购。而 二〇一〇 年 SUN 又被 Oracle 收购。
  • Mysql MySQL 容积小、速度快、总体具有资金财产低 , 尤其是开放源码 , 大多中型小型型网站为了下跌网址整体具有资金财产而挑选了 MySQL 作为网址数据库。
  • 微型数据库
    Access Microsoft Office Access( 前名 Microsoft Access )是由微软公布的关联式数据库管理系统 , 是 Microsoft Office 的积极分子之1。

开头的主见是用五个recordset,一个从SQL取多少,一个往Access里边插入数据

上述正是Access和SQL数据库相互转变的点子及注意事项。

一、数据类型转变:

七.练习Sql语句

  • 1.建表
--建表
-- 表名不能超过 30 个字符
-- 表名、列名是自由定义的
-- 所有的 SQL 语句都是以“ ; ”结尾
CREATE TABLE user_test(
            id  number(4),
            password char(6),
            name char(20),
            phone char(11),
            email varchar(20)
);
  • 2.修改表格的列
alter table user_test modify email varchar(50);
  • 三插入数据
insert into user_test values(1001,'123456','张三','13468857714','linglongxin24@163.com');

*肆. 询问数据

SELECT * from user_test;
  • 5.数额计划
  • 创办单位表并插入数据
CREATE TABLE dept_test(
            dept_id NUMBER(2),
            dept_name CHAR(20),
            dept_location CHAR(20)
);

desc dept_test;

INSERT INTO dept_test VALUES(10,'developer','beijing');

INSERT INTO dept_test VALUES(20,'account','shanghai');

INSERT INTO dept_test VALUES(30,'sales','guangzhou');

INSERT INTO dept_test VALUES(40,'operations','tianjin');

SELECT * FROM dept_test;
  • 成立职员和工人表并插入数据
CREATE TABLE emp_test(

            emp_id NUMBER(4),
            name VARCHAR(20),
            job VARCHAR(20),
            salary NUMBER(7,2),
            bonus NUMBER(7,2),
            hire_date DATE,
            manager NUMBER(4),
            dept_test_id NUMBER(2)
);

DESC emp_test;

SELECT * FROM EMP_TEST;

INSERT INTO emp_test VALUES(1001,'张无忌','Manager','10000','2000',TO_DATE('2010-01-12','yyyy-mm-dd'),1005,10);
INSERT INTO emp_test VALUES(1002,'刘苍松','Analyst', 8000 , 1000 ,TO_DATE('2011-01-12','yyyy-mm-dd'),1001,10);
INSERT INTO emp_test VALUES(1003,'李翊' ,'Analyst',9000 , 1000 ,TO_DATE('2010-02-11','yyyy-mm-dd'),1001,10);
INSERT INTO emp_test VALUES(1004,'郭芙蓉','Programmer',5000, NULL ,TO_DATE('2010-02-11','yyyy-mm-dd'),1001,10);

INSERT INTO emp_test VALUES(1005 , '张三丰' , 'President' ,15000 , NULL ,TO_DATE('2008-02-15','yyyy-mm-dd'),NULL,20);
INSERT INTO emp_test VALUES(1006 , '燕小六' , 'Manager' ,5000 ,400 , '01-FEB-09' , 1005 , 20);
insert into emp_test values(1007 , '陆无双' , 'clerk' ,3000 , 500 , '01-FEB-09' , 1006 , 20) ;
insert into emp_test values(1008 , '黄蓉' , 'Manager' ,5000 , 500 , '1-MAY-09' , 1005 , 30) ;
insert into emp_test values(1009 , '韦小宝' , 'salesman' ,4000 , null , '20-FEB-09' , 1008 , 30) ;
insert into emp_test values(1010 , '郭靖' , 'salesman' ,4500 , 500 , '10-MAY-09' , 1008 , 30) ;



SELECT * FROM emp_test;
  • 陆.练习大旨查询语句
--计算员工的名字、月薪和年薪?
SELECT name,salary,salary*12 year_salary
    FROM emp_test;

--计算员工的月收入?
--空值和任何数据做算数运算 , 结果为空(null)
--正确写法:如果 bunus 的值是 null , 则取 0
SELECT name,salary,bonus,salary  nvl(bonus,0) month_salary
    FROM emp_test;

--指定字段揑入值
    INSERT INTO emp_test (emp_id,name) VALUES(1011,'于泽成');

--查询 emp_xxx 表 , 如果没有职位 , 显示'no position' , 如果有职位 , 显示员工的职位
SELECT name,NVL(job,'no positon') job
            FROM emp_test;

--查询 emp_xxx 表 , 如果没有入职时间 , 显示为 2016-12-12 , 否则原样显示
SELECT name,NVL(hire_date,TO_DATE('2016-12-12','yyyy-mm-dd')) hire_date
            FROM emp_test;

--连接字符串用CONCAT(str1,str2,...)和Oracle有区别,Oracle用||
SELECT emp_id,name||' job is '||job detail
            FROM emp_test;
--复制表
CREATE TABLE emp_test2 AS SELECT * FROM emp_test;
SELECT * FROM emp_test2;

--DISTINCT注意:distinct 必须( 只能 )跟在 select 后边,distinct 指所有列的唯一组合
--机构中有多少种职位?
SELECT DISTINCT job FROM emp_test;
--员工分布在哪些部门?
SELECT DISTINCT dept_test_id FROM emp_test;
--查询每个部门不重复的职位
SELECT DISTINCT job,dept_test_id FROM emp_test;

--薪水高亍 10000 元的员工数据?
SELECT * FROM emp_test WHERE salary>10000; 

--职位是 Analyst 的员工数据?SQL 语句大小写丌敏感 , 数据大小写敏感
SELECT * FROM emp_test WHERE LOWER(job)='analyst'; 

--薪水大亍 5000 并且小亍 10000 的员工数据?>=<=;between and
SELECT * FROM emp_test WHERE salary>=5000 AND salary<=10000; 
SELECT * FROM emp_test WHERE salary BETWEEN 5000 AND 10000; 

--入职时间在 2011 年的员工?
--错误写法
SELECT * FROM emp_test WHERE hire_date=TO_DATE('2011','yyyy'); 
--正确写法
SELECT * FROM emp_test WHERE hire_date BETWEEN TO_DATE('2011-01-01','yyyy-mm-dd') AND TO_DATE('2011-12-31','yyyy-mm-dd') ; 


--列出职位是 Manager 或者 Analyst 的员工
SELECT * FROM emp_test WHERE job IN('Manager','Analyst');

--列出职位中包含有 sales 字符的员工数据?
SELECT * FROM emp_test WHERE LOWER(job) LIKE '%sales%';

--列出职位中第二个字符是 a 的员工数据?
SELECT * FROM emp_test WHERE LOWER(job) LIKE '_a%' ;

--查询数据库中有多少个名字中包含 'EMP' 的表?
SELECT COUNT(*) FROM USER_TABLES WHERE TABLE_NAME LIKE '%EMP%';


SELECT * FROM emp_test;

-- 查询哪些员工没有奖金?
SELECT * FROM emp_test WHERE bonus IS NULL;

--薪水丌在 5000 至 8000 的员工?
SELECT * FROM emp_test WHERE salary NOT BETWEEN 5000 AND 8000;

--不是部门 20 和部门 30 的员工?
SELECT * FROM emp_test WHERE dept_test_id NOT IN(20,30);

insert into emp_test values(1012 , 'text_test' , 'salesman' ,4500 , 500 , TO_DATE('2011-01-01','yyyy-mm-dd') , 1008 , 30) ;
--如果要查询的数据中有特殊字符( 比如_或% ),
-- 在做模糊查询时 ,
-- 需要加上符号表示转义 , 如果是Oracle并且用 escape 短语指明转义字符mysql不用
SELECT name FROM emp_test WHERE name LIKE '%_%' ESCAPE '' ;

上述的有关内容正是对SQL Server数据复制到的Access中的介绍,望你能具有收获。

一、主键。调换后的Access数据库都不曾主键,需和煦安装;
二、自增字段。调换程序会将SQL Server的自增字段调换为数字型,需手动修改为Access的“自动编号”类型;
3、私下认可值。转变程序不会改变SQL Server中装置的暗许值,需手动设置;
四、bigint型字段。转变程序会将SQL Server的bigint调换为小数,须手动调度为Access的整型或长整型;
5、索引。转变程序不会更动索引,需手动在Access中创造目录。

您大概感兴趣的小说:

  • SQL Server中的数据复制到的Access中的函数
  • Access转Sql Server难点实例证实
  • Sql Server、Access数据排名的贯彻格局(比方:成绩排行)
  • SQLServer与Access常用SQL函数不一样
  • SQL 随机查询 包蕴(sqlserver,mysql,access等)
  • 在ACCESS和SQL Server下Like 日期类型查询区别
  • asp.net下Oracle,SQL Server,Access万能数据库通用类
  • SQL SE奇骏VE福特Explorer与ACCESS、EXCEL的数额转换方法分享
  • 将Access数据库中数量导入到SQL Server中的详细措施实例
  • 八步化解ACCESS自动编号问题(将SQL SE奇骏VERAV4两千数据库,调换为ACCESS数据库)
  • 将ACCESS数据库迁移到SQLSE君越VEHummerH二数据库二种格局(图像和文字详解)
  • sqlserver,sqlite,access数据库链接字符串整理
  • 友善入手把ACCESS调换成SQLSE凯雷德VE路虎极光的法子
  • Access 导入到SQL Server 2007的点子小结
  • JavaScript使用ActiveXObject访问Access和SQL Server数据库
  • SQL Server数据复制到的Access两步走

四.DBA( Database Administrator )

数据库管理员

本文由乐百家数据库发布,转载请注明来源:【从零伊始学习Oracle数据库】(1)建表与简便询问