当前位置:文档之家› 嵌入式_数据库学习笔记

嵌入式_数据库学习笔记

嵌入式_数据库学习笔记
嵌入式_数据库学习笔记

数据库学习杂记

--嵌入式开发2011年6月25日

目录

一、数据库概述

数据库组成、数据库范式 (1)

二、数据库基本语法

一、常用单词缩写 (1)

二、sql创建表 (1)

1、字段名数据类型 (1)

2、字段约束的关键字 (1)

三、基本语法 (2)

1alter (2)

2、select(关联查询、左连接、右连接、内链接子查、复制等) (2)

3、insert (2)

4、update (2)

5、delete (3)

四、关键字(distinct、top、union)及聚合函数 (3)

五、介绍常用函数(ascii/left/ltrim等) (4)

三、linux sqlite3

一、安装步骤 (5)

二、sqlite系统的命令 (5)

三、sqlite使用及语法(数据类型、亲和性、函数、备份、导入等) (5)

四、sqlite API

一、相关c函数及操作步骤(打开、编译、执行等) (7)

二、事务(使用、c函数等) (8)

五、Oracle数据库

一、简介 (8)

二、逻辑问题 (9)

三、oracle启动及创建用户(别名、创建、权限等) (9)

四、oracle 数据类型 (10)

五、虚表及相关函数(rowed、to number、decode、nvl、解锁等) (10)

六、变量声明及结构 (11)

3、语句结构:选择、循环 (12)

3.1选择结构 (12)

3.1.1字段引用类型 (12)

3.1.2行引用类型 (12)

3.1.3记录类型(类似c中的结构体) (13)

3.1.4表类型(类似c中的数组) (13)

3.1.5动态表类型 (13)

3.2循环结构 (13)

4、游标(取值、属性、分类等) (14)

4.1.静态游标 (14)

4.2动态游标 (15)

七、存储过程和函数(三种模式in、out、int out) (16)

八、函数与存储过程的区别 (17)

六、MYSQL ----Linux

一、mysql安装(rpm 包安装、源代码安装,相关安装目录等) (17)

二、mysql启动及关闭命令 (18)

三、mysql用户密码修改及登录 (18)

四、mysql相关操作命令 (18)

五、创建表约束字段的关键字 (19)

六、添加外键 (19)

七、对字段约束修改 (19)

八、事务 (19)

九、函数 (20)

十、存储过程(语法、变量赋值、选择、循环结构) (20)

十一、触发器 (23)

七、MYSQL C API

一、linux配置开发环境 (24)

二、API函数 (24)

三、预处理 (25)

一、数据库概述

一、数据库组成、结构:sqlite、mysql、oracle

1、数据库组成:物理结构(数据文件、日志文件、控制文件);逻辑结构(DB段区块)

2、数据库里面最小的逻辑单元是表,表是由字段组成

二、数据库范式

1NF :表中只需要有字段就行了。缺点:缺少一个能够决定该记录唯一性的字段。

create table student

(

sname varchar(10),

sex int,

clasname varchar(10)

)

2NF:在1NF基础上增加了一个决定该记录唯一性的字段,表里面多了一个主键字段,主键字段一般是具有编号意义数字或者字母组合。缺点:记录某一字段存在二义性。

create table student

(

sno integer primary key k_no;

sname varchar(10),

sex int,

clasname varchar(10)

)

3NF:在2NF基础上,解决有二义性字段的问题,外键:让有主外关系的表关联起来create table student

(

sno integer primary key k_no;

sname varchar(10),

sex int,

clssno int foreign key

)

create table class

(

classno int primary key ,

classname varchar(10)

)

二、数据库基本语法

一、常用单词缩写

DB: data base

DBMS: data base manager system

SQL: struct squery language

PLSQL: procedure language struct squery language

RDBMS: relation data base manager system

DBA: data base administrator

plsql:procedure language sql 过程化的结构查询语言

二、sql创建表

1、字段名数据类型

1.数字类型integer ;numeric(n,m)(n:数字所有长度,不包括小数点,m:小数位数)

2.字符类型varchar(n) ,text

3.日期类型date,datetime (yyyy年; mm月; dd日; hh 12制小时; hh24 24制小时;mi

分钟;ss秒)

4.大字段类型blob:以二进制存取,image

sql语句分类

DDL:数据定义语言create drop alter

DML:数据操作语言select update delete insert

TCL:事务控制语言trsancation commit rollback save point

DCL:数据控制语言grant revoke

2、字段约束的关键字

null or not null//空,非空

primary key //主键

foreign key //外键

check // 条件

default // 默认

constraint约束:控制用户必须满足该字段的约束条件,才能存储到表中

alter table class add constraint fk_class primary key(classid)

alter table class modify constraint fk_class primary key(classid)

alter table class drop constraint fk_class

三、基本语法

1、alter

alter table student add score numeric(4)//对表添加一个新的字

alter table student modify COLUMN score varchar(10)

alter table student drop COLUMN score//删除表的一字段

drop table tablename//删除表

2、select

<1>.关联查询:select dept.* from emp,dept where emp.deptno=dept.deptno

<2>.左连接:select * from table1,table2 where table1.id(+)=table2.id

1.把table2表里面的所有记录显示出来

2.在根据table2的id字段在table1表中去找

select * from table2 left join table1 on table1.id=table2.id

<3>.右连接:select * from table1,table2 where table1.id=table2.id(+)

1.把table1表里面的所有记录显示出来

2.在根据table1的id字段在table2表中去找

select * from table1 left join table2 on table1.id=table2.id

<4>.内链接:select *from table1,table2 where table1.id=table2.id

select * from table1 inner join table2 on table1.id=table2.id

<5>.子查询:在查询的语句中再包好多个查询语句

Syntax:select * from (select * from tablename) tablename

例:select (select id from table) id from table

select * from table where id in(select id from table2)

<6>.条件查询

select * from book where bookno='05' or bookname='c语言'

select * from book where bookno='05' and bookname='c语言'

注意:and 优先级高于or优先级

<7>.复制

create table tablename2 as select * from tablename

复制tablename 包括数据和结构,名称为tablename2

create table tablename3 as select * from tablename

复制tablename 只有结构,名称为tablename3

3、insert

insert into book values('010','aaa',40)

insert into book(bookno,bookname) values('011','bbb')

insert into tablename select * from tablename

4、update

Syntax:update tablename set 字段名1=value1,字段名2=value2 where id=1

5、delete

delete from tablename where id=1

例:

create table student

(

stuno numeric(4) not null primary key,

stuname varchar(10) not null,

stusex varchar(4) check(stusex='男' or stusex='女'),

score numeric(3) check(score>=0 and score<=100),

age numeric(3) default 20,

classid numeric(4) foreign key references class(classid)

//class 为表名

)

create table class

(

classid numeric(4) primary key,

classname varchar(10) not null

)

四、关键字及聚合函数

1、sql常用的函数和符号:+ - * /

select 1+2+3

select price+100,price from book

select 5%2 --取MOD

select price%100 from book

2、distinct

1.去掉相同的记录(相同的记录只显示一次)

2.根据select distinct 后面列出的字段判断是否重复

3.以select distinct 后面最近的一个字段排序(升序)

select bookname from book

select distinct bookname from book

3、top

select top n from tablename //取该表的前n条记录

select top 2 * from book where bookno not in (select top 6 bookno from book) //取出第6 条到第8条记录

4、union

1.连接两个查询结果集,去掉重复的记录

2.以第一个字段排序(升序)

union all:仅仅只是简单把两个结果集连接

5、聚合函数

<1>.Sum:把该表的所有记录求和select sum(price) from book

<2>.Max:求最大值select max(price) from book

<3>.Min:求最小值select min(price) from book

<4>.Avg:求平均值select avg(price)from book

<5>.Count:求记录数select count(price) --count(*) from book、

<6>.group by :对查询的结果集分组显示函数

1.针对聚合或者子查询才能用到group by

select sum(price) from (select * from book) a group by bookname

select sum(price) from book group by bookname

2.group by 后面分组的字段必须同select 与第一个聚合函数之间的字段要一样,否

则错误,但是顺无无所谓

select bookno,bookname,sum(price) from book group by bookname,bookno

3.对group by 进行条件筛选,用having关键字

select bookno,bookname,sum(price) from book

group by bookname,bookno having bookname='c语言'

select bookno,bookname,sum(price) from book

group by bookname,bookno having sum(price)>=50

<7>.order by

1.根据某一些字段排序----升序:asc,降序:desc

select * from book order by price desc

2.order by 只能写在所有语句最后(除开子查询)

select bookno,bookname,sum(price) from book

group by bookname,bookno order by bookno

<8>.case when

如果条件正确,输出语句一;否则,输出语句二

Syntax:select case when 1=2 then 'a' else 'b' end

select *, case when bookname='c语言' then 'aaaa' else 'bbb' end from book

练习:1.假设有如下表和记录

student

stuno stuname 科目名称科目分数

1 aaaa 语文80

1 aaaa 数学90

1 aaaa 英语100

2 bbbb 语文70

2 bbbb 数学80

2 bbbb 英语90

写一条sql语句,要求输出如下结果

stuno stuname 语文数学英语

1 aaaa 80 90 100

2 bbbb 70 80 90

create table student

(

stuno int,

stuname varchar(10),

objectname varchar(10),

score int

)

insert into student values(2,'李四','英语',80)

select * from student

select stuno,stuname,

max(case when objectname='语文' then score else '' end)'语文',

max(case when objectname='数学' then score else '' end)'数学',

max(case when objectname='英语' then score else '' end)'英语'

from student group by stuno,stuname

五、介绍常用函数

Ascii 获取字符的ascii编码值select ascii('A')

Char 通过ascii编码值找到所对应的字符select char(97)

Left 从左边开始取N个字符select left('abcdefgh',4)

Right 去右边n个字符select right('abcdefgh',4)

Ltrim 去掉左边的空格select ltrim(' aaaa aaaa ')

Rtrim 去掉右边空格select rtrim(' aaaa aaaa ') 去掉两边的空格select rtrim(ltrim(' aaaa aaaa ')) Lower 大写转换小写select lower('AAAAA')

Upper 小写转换大写select upper('bbbb')

Len 字符串的长度select len('aaaaaaaaa')

Like %模糊查找select * from book where bookname like 'c%' --表示匹配以c开头的字符串select * from book where bookname like '%c%' --表示匹配以c开头或者c在中间的字符串

Patindex模糊匹配字符,并且返回匹配该字符的起始位置

select Patindex('%cd%','abcdefgh')

select Patindex('%cd','abcdefgh')--格式不匹配,应为在原串中cd后面是有其它字符replace 替换原串中的指定字符select replace('abcefgce','ce','12345') replicate 把指定字符串重复连接n次select replicate('abcd-',4)

reverse 将字符创反转select reverse('12345')

space 增加空格select space(6)

str 将浮点数转换成字符串select str('1234')/select str(1234) select str(1234.56789,7,2) --7:转换后的字符长度,包括小数点

--2:保留小数2位(四舍五入)

Stuff 将原串从指定的位置n开始替换M个字符select stuff('abcdeft',2,4,'xxxxxxxxxx') Substring 在原串中从第n个字符开始取,取m个字符select substring('abcdefg',3,1)

Rand 产生随机数(0---1)select rand()

Round 保留小数位n位,n可以为负数select round(123.567,2)

select round(123.567,-2)--保留两位整数位floor小于数字n的最大整数select floor(1234.56789)

dateadd把给定时间往前推或者往后推select dateadd(m,3,getdate())

select dateadd(m,-3,getdate())

select dateadd(d,3,getdate())

select dateadd(d,-3,getdate())

datediff两个日期相差多少天select datediff(d,'2004-07-01','2004-07-15')

select datediff(m'2004-07-01','2004-07-15') datename select datename(d,'2004-07-15')

datepart select datepart(d,getdate())

charindex select charindex('123','abc123def')

SELECT @@VERSION --获得数据版本

SELECT @@LANGUAGE --获得数据语言

select getdate() --获取系统当前服务的时间

select day(getdate()) --获取日期天

select month(getdate()) --获取日期月

select year(getdate()) --获取日期年

三、linux sqlite3

一、安装步骤

1.cp sqlite-3.3.7.tar.gz /tmp

2.tar -xvzf sqlite-

3.3.7.tar.gz -C /usr/local

3.cd sqlite-3.3.7

4. ./configure --prefix=/usr/local/sqlite-3.3.7

5.make

6.make install

7.make doc --安装文档帮助文档(自己选择)

二、sqlite系统的命令(格式:.commandname)

.help

.tables --查看所有表名.databse --查看数据库

.output filename --把查询结果输出到文件.schema tablename --查表结构看

.show --查看mode headers echo的值.mode column

.headers on

三、sqlite使用及语法

1、sqlite概述:sqlite是一个轻量级数据库

创建表时可以不指定字段的数据类型,根据插入第一笔值来决定该字段数据类型

2、sqlite字段的数据类型

<1>.空类型(null)该字段可以不填充人数数据

<2>.数字类型:integer ,float

1.sqlite中的表的主键一般要求是integer类型数据

2.如果integer类型字段作为主键,在插入值的时,可以不需要给出该字段的值,系统会根据上一笔记录该字段的值来确定本记录该字段的值

<3>.字符:char(n) text 文本类型

<4>.日期:datetime

<5>.BLOB :大字段类型(一般存取图片视频)

3、数据类型的亲和性(123 和‘123’)

可以将两种不同数据类型的字段相互赋值,系统会自动转换

数字字符、整数、blob,常用语句如下:

create table tablname(id inetger primary key,name text,pid integer unique);

insert into tablname values(1,'aaa',123);

insert into tablname(name,pid) values('aaa',123);

select * from tablname

select * from tablname where id=1

select * from tablname where id==1

select * from tablname where id='1'

select * from tablname where id="1"

select * from tablname where id=='1'

select * from tablname where id=="1"

update tablname set name=newvalue where id=2

delete from tablname where id=2

4、常用的函数

select abs(-1) 取绝对值

select max(pid) from tt2;

select min(pid) from tt2;

select avg(pid) from tt2;

select sum(pid) from tt2;

select count(*) from tt2;

select random();

select round(123.456,2);

select length('aaaa');

select substr('abcdefg',2,3);

select lower('SSSSS');

select upper('aaaa');

select typeof(id),typeof(name),typeof(pid) from tt2;

select typeof(1);

select last_insert_rowid()

select sqlite_version();

create table if not exists tt3(f2); 如果表tt3存在不需要再创建

5、时间函数

select date('now') --获取当前的日期

select date('2011-07-09');

select date('now','start of month','+1 month','-1 day');

--月份改变以后,是按照新的月份第一天计算的select time('now','localtime'); --获取本地当前时间

select datetime('now','localtime');

select strftime('%Y','now','localtime'); --年

select strftime('%m','now','localtime'); --月

select strftime('%d','now','localtime'); --日

select strftime('%H','now','localtime'); --小时

select strftime('%M','now','localtime'); --分钟

select strftime('%S','now','localtime'); --秒

select julianday('now')-julianday('2001-06-09');

6、数据备份和还原

sqlite3 test.db 'select * from emp';

sqlite3 test.db .dump student

sqlite3 test.db '.dump' > emp.sql; --数据库备份

sqlite3 test.db < /home/lizhanglin/workspace/sqlite/emp.sql ;--数据库还原

sqlite3 test.db ".dump" | sqlite3 test2.db --等价于上面的两句话的效果sqlite3 -html test.db "select * from emp";

7、SQLite的数据导入与导出

通常情况下,数据导入的基本步骤可分为三步:

<1>.确定导入的数据源,按固定格式存储的文本文件或SQL文件

vim student.txt

1,tom,23

2,jarry,34

3,jim,32

4,hand,23

5,merrym,32

<2>.依照导入的文件格式,确定目标数据表

sqlite3 test.db

create table student(id char(4),name char(10),age char(4));

<3>.执行.import导入命令,将数据导入到数据表中

.separator ","

.import student.txt student

注意事项:

1.用户准备导入的文件必须具备有一定的格式才可以,而且最重要的是文件的名字必须

同表的名字一摸一样

2.在数据导入之前,先要根据数据的具体格式,设置数据导入的间隔符

四、sqlite API

一、相关c函数及操作步骤

1、sqlite3_open打开数据库

int sqlite3_open(const char* dbfile,sqlite** db)

dbfile:数据库文件的名称

db:如果打开成功,数据库标识符(类似于文件的标识符)

返回值SQLITE_OK:表示打开成功

2、Sqlite3_close关闭数据库

int sqlite3_close(sqlite* db)

db:已经打开的数据库

3、sqlite3_errmsg获取异常信息

const char* sqlite3_errmsg(sqlite*db)

db:已经打开的数据库

4、编译gcc sqlite.c -o sqlite -I/usr/local/sqlite-3.3.7/include -L/usr/local/sqlite-3.3.7/lib -lsqlite3

5、执行sql语句的函数

int sqlite3_exec(sqlite* db,char *sql,(callback),void* parameter,char**msgerr)

db:打开的数据库对象

sql:sql语句

callback:回调函数

parameter:传给回调函数的参数

msgerr:错误消息

6、快捷键:shift+ctrl+"?"--注释你选定的语句

shift+ctrl+f--自动排版

二、事务

1、事务是数据库最小处理单元。事务的四个特性:1.原子性2.隔离性3.一直性4.持久性

2、sqlite如何使用事务

<1>.begin trasaction

<2>.rollback --回滚(取消)

<3>.commit --提交

<4>.sqlite3_exec(db,"begin trasaction",NULL,NULL,NULL)

<5>.sqlite3_exec(db,"commit",NULL,NULL,NULL)

<6>.sqlite3_exec(db,"rollback",NULL,NULL,NULL)

<7>.回调函数:一个函数作为另一个函数的参数。作用:实现异步操作

针对sqlite3_exec的回调函数有固定格式

void fun(void *d,int cols,char ** values,char ** colnames);

<8>.查询函数之一

int sqlite3_get_table(sqlite3 * db,const char* sql,char*** resultvalue,int * row,int* col,char** msgerr)

根据查询命令,获得数据集,存放在一个连续的内存区域,以一维数组存取缺陷:

1.获取的数据行是有限的;

2.执行效率较低

<9>.sqlite_free_table(char**result)

<10>.sqlite3_prepare(sqlite3 * db,char* sql,int nbyte,sqlite3_stmt ** stmt,const char** tail)

nbyte默认为-1

<11>.sqlite3_step(sqlite3_stmt ** stmt);--获取数据的第一笔记录

<12>.sqlite3_column_text(sqlite3_stmt ** stmt,int col)

col:从0开始取.获取每个字段的值

<13>.sqlite3_column_int

<14>.sqlite3_column_blob

<15>.sqlite3_finalize(sqlite3_stmt *pStmt);-----释放空间

<16>.sqlite3_bind_text(sqlite3_stmt *pStmt,int length,int index,void* value,NULL)

index:sql语句未确定值的序号(‘?’代表未确定值)

<17>.sqlite3_bind_int(sqlite3_stmt *pStmt,int index ,void* value)

<18>.sqlite3_bind_blob()

<19>.sqlite3_reset(sqlite3_stmt *pStmt);

<20>.sqlite3_column_bytes(sqlite3_stmt *pStmt);

五、Oracle数据库

一、简介

oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQL server等数据库系统,它的操作很简单,功能也比较齐全。只是相对于oracle 数据库而言,在处理大量数据方面有些不如。结构和基本的语句:pl/sql、proceudre、function 、trigger,导入导出。1.oracle基本的机构:内存;2.PGA 程序全局区:为客户服务的进程所占的内存空间3.SGA系统全局区:为服务器自己服务的进程锁占的内存空间4.进程:<1>.客户进程;<2>.服务进程:后台进程、系统默认进程。PCB c1: select * from emp;

s1: c2: select * from emp;log 日志文件、死锁

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个Oracle DB和一个Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个DBA用户名,具有最大的数据库操作权限;System,它也是一个DBA用户名,权限

仅次于Sys用户。

逻辑结构,它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。

数据块(Block)是数据库进行UO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。其中包括:

数据段:用来存放表数据;.

索引段:用来存放表索引;

临时段:用来存放中间结果;

滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。

二、逻辑问题

逻辑大小划分:oracle提倡一个服务器只有一个数据库

schema :模式

数据库---->表空间(tablespace)---->段----->区---->块

user 用户:oralce是用以用户模式管理数据

1.表空间是最大的逻辑单元

2.数据库里面必须有一个表空间

3.系统会默认创建一个表空间system

4.在创建用户时,就应该指定一个表空间

5.一个用户只能存在一个表空间里面

6.一个表空间可以有多个用户

三、oracle启动及创建用户

1、开启oracle

<1>.启动OracleOraDb11g_home1TNSListener

<2>.启动OracleServiceORCL 数据库服务

oracle安装注意事项

1.SID:数据库系统ID,数据库名称sid='aaaa'

2.oracle安装包路径不能出现中文

3.用户密码设置

默认用户:

sys :系统操作员密码自己设置角色:sysoper

system:系统管理密码自己设置角色:sysdba

scott :测试用户密码为:tiger 角色:normal

2、oracle第三方使用工具

3、数据库别名

<1>.客户端机器必须安装oracle客户端软件

<2>.客户根据自己的习惯称呼数据库名称

<3>隐藏数据库真实信息

<4>如何创建别名

1.启动net manager

oracle11g scott帐号默认为锁住状态

1.利用system帐号登入

2.alter user scott account unlock 解锁命令

<5>.怎样创建表空间

创建表空间语法:

create tablespace tablespacename

datafile 'd:/oracle/oracle.ora' size 10m

autoextend on

例:

create tablespace testspace

datafile 'D:\oracle\oracle2.ora' size 10m

autoextend on

<6>.创建用户

create user username

identified by passwd

default tablespace tablespacename

例:

create user user1

identified by test//将用户创建在系统默认的表空间system

default tablespace testspace//将用户创建在指定表空testspace

<7>.新建的用户是不能使用,必须要授权才可以进入数据

1.授予用户登入权限

grant connect to user --连接数据库

grant create table to user --创建表

grant select on tablename to user --查询某个表的权限

grant insert on tablename to user --插入某个表的权限

grant delete on tablename to user --删除某个表的权限

grant update on tablename to user --修改某个表的权限

grant all on tablename to user

grant resource to user --授予开发资源权限

grant DBA to user --最大的权限

2.权限回收revoke resource from user

3.修改用户alter user username

identified by passwd

4.删除用户

5.删除空用户drop user usernam3e

6.删除非空用户drop user username cascade--把与用户有关的东西全部删除

四、oracle 数据类型

1、字符类型char 1-2000字节,name char(10)

<1>.如果没指定长度name char,只能存储一个字节

name char(20),name="1234"

<2>.系统按照指定数字n分配空间,如果实际不够,用空格填满

<3>.varchar 1-4000字节

varchar2 1-4000字节,可变长度

name varchar2(10)

name varchar2;---错误,必须指定长度

name="123"系统根据该字段的实际字符数分配空间,但是最多不能超过10

2、整形long 最多2G

raw 1-2000字节

long raw 最多2G

3、使用上面三种数据类型

<1>.一个表中只能有一个字段,为该三种类型之一

<2>.如果该字段是上面三种类型,那么该字段不能作主键,也不能作外键、函数、存储过程参数

4、数字类型number(n,m) n:数据长度m:小数的位数(小数点不算小数位数)

5、日期类型date 日期时间,timespan 时间

6、大字段类型blob、clob、bfile

五、虚表及相关函数

1、dual:虚表----主要要是用来测试函数

<1>.rownum :查询的记录序号

rownum只能用在<=中,如果要用在>=必须用子查询,而且要对rownum取别名

select * from(select emp.*,rownum id from emp) where id>=5 and id<=7

<2>rowid :记物理地址录存储select emp.*,rowid,rownum from emp

<3>.to_date 将非日期类型字段转换成日期类型字段

select to_date('20110614134556','yyyy-mm-dd hh24:mi:ss') from dual//hh24:24小时计算select to_date('20110614104556','yyyy-mm-dd hh:mi:ss') from dual //hh:12小时计算

<4>.to_char字段将非字符串类型字段转换成字符类型

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dua

<5>.to_number 转换成数字

select to_number('1234') from dual

<6>.nvl(field,value) 如果值为空,指定一个值

select nvl('',0) from dual

select sal+nvl(comm,0) from emp

<7>.decode 判断

select decode('1','1','3','4') from dual

<8>.解锁及加锁oracle 11g、scott

alter user scott account unlock --解锁

alter user scott account lock --加锁

第三方工具plsql

六、变量声明及结构

1、declare

---声明变量或常量

begin

--sqlstate

[exception]

-- 处理异常

end

2、变量的数据类型,变量声明,变量在使用之前必须声明

<1>.变量标识数据类型;

age int/integer/number(4);--整数变量

name varchar2(20);--字符类型变量

birthday datetime;

<2>.常量声明:常量标符识constant 数据类型赋值;

id constatnt int default 1;

<3>.变量赋值

https://www.doczj.com/doc/c74464390.html,:=‘124242’

https://www.doczj.com/doc/c74464390.html, default '12345'

3.select into name from dual

例1:

declare

vname varchar2(20) default '123345';

begin

--vname:='14242425';

select '12345' into vname from dual;

dbms_output.put_line(vname); --输出语句

end;

例2:

declare

vname varchar2(20) default '123345';

begin

--vname:='14242425';

--select '12345' into vname

--from dual;

vname:=&1; --通过输入窗口输入值

dbms_output.put_line(vname);

end;

3、语句结构:选择、循环

3.1选择

<1>.if 条件then end if;

<2>.if 条件then else end if;

<3>.if 条件then elsif 条件then end if;

例3.1

declare

vsal number(6,2);

begin

select sal into vsal

from emp

where empno=7499;

if vsal<=2000 then

dbms_output.put_line('A');

elsif vsal<=3000 then

dbms_output.put_line('B');

else

dbms_output.put_line('C');

end if;

end;

3.1.1字段引用类型:tablename.field%type;

declare

vsal emp.sal%type;

begin

select sal into vsal

from emp

where empno=7499;

if vsal<=2000 then

dbms_output.put_line('A');

elsif vsal<=3000 then

dbms_output.put_line('B');

else

dbms_output.put_line('C');

end if;

end;

3.1.2行引用类型:vrow tablename%rowtype;

declare

vempno emp.empno%type;

vename varchar2(20);

vsal number(6,2);

begin

select empno,ename,sal

into vempno,vename,vsal

from emp

where empno=7499;

dbms_output.put_line(vempno||'---'||+vename||'---'||vsal);

end;

declare

vrow emp%rowtype;

begin

select *

into vrow

from emp

where empno=7499;

dbms_output.put_line(vrow.empno||'---'||+vrow.ename||'---'||vrow.sal);

end;

3.1.3记录类型(类似c中的结构体)

declare

type emp_record is record(

vempno emp.empno%type,

vename varchar2(20),

vsal number(6,2));

vrow emp_record;

begin

select empno,ename,sal

into vrow

from emp

where empno=7499;

dbms_output.put_line(vrow.vempno||'---'||+vrow.vename||'---'||vrow.vsal);

end;

3.1.4表类型(类似c中的数组)

declare

type emp_tab is table of varchar2(10);

vemp_tab emp_tab:=emp_tab(null);

begin

vemp_tab.extend(10);

select ename into vemp_tab(1)

from emp

where empno=7499;

select ename into vemp_tab(2)

from emp

where empno=7499;

dbms_output.put_line(vemp_tab(1)||'---'||vemp_tab(2));

end;

3.1.5动态表类型

declare

type emp_tab is table of emp%rowtype

index by binary_integer;

vemp_tab emp_tab;

begin

select * bulk collect

into vemp_tab

from emp;

for i in 1..vemp_tab.count-1 loop

dbms_output.put_line(vemp_tab(i).ename);

end loop;

end;

3.2循环结构

3.2.1Syntax: loop

exit when 条件

end loop

例:

declare

vdata number(4);

begin

vdata:=0;

loop

dbms_output.put_line(vdata);

vdata:=vdata+1;

exit when vdata>10;

end loop;

end;

3.2.2syntax:for var in 1..endvalue loop

end loop;

例:

declare

begin

for i in 1..10 loop

dbms_output.put_line(i);

end loop;

end;

declare

begin

for i in reverse 1..10 loop

dbms_output.put_line(i);

end loop;

end;

3.2.3syntax:while 条件loop

end loop;

例:

declare

vdata number(4);

begin

vdata:=1;

while vdata<=10 loop

dbms_output.put_line(vdata);

vdata:=vdata+1;

end loop;

end;

4、游标

游标就类似于c数组或指针。游标是一块连续的内存空间,供存放数据,以防后续要用,如果用时直接在从内存取出来

<1>.如何从游标取数据: 1.通过游标名称,从第一笔开始往后取

2.游标不支持类似于数组下标取数据,必须从第一笔开始

<2>.游标语法

cursor cursor_name is 语句--只能够是查询语句

cursor cursor_name is select * from tablename

<3>.游标的属性

1.notfound;

2.found

3.rowcount

4.isopen

<4>.游标分类

4.1.静态游标(游标取数据)

4.1.1标准方法

Syntax: open cursorname

loop

fetch cursorname into var;

exit when cursornamr%notfound;

--sqlstate

end loop

close(cursorname)

例1:

declare

cursor emp_cur is

select * from emp;

vrow emp%rowtype;

begin

open emp_cur;

loop

fetch emp_cur into vrow;

exit when emp_cur%notfound;

dbms_output.put_line(vrow.ename);

end loop;

close emp_cur;

end;

例2:

declare

cursor emp_cur is

select ename,sal from emp;

vename emp.ename%type;

vsal emp.sal%type;

begin

open emp_cur;

loop

fetch emp_cur into vename,vsal;

exit when emp_cur%notfound;

dbms_output.put_line(vename||vsal);

end loop;

close emp_cur;

end;

例3:

declare

cursor emp_cur is select * from emp;

begin

for vrow in emp_cur loop

dbms_output.put_line(vrow.ename);

end loop;

end;

例4:

declare

begin

for vrow in (select * from emp) loop

dbms_output.put_line(vrow.ename);

end loop;

end;

4.2动态游标(动态游标实际就是一个新的特出的数据类型)

4.2.1动态游标的声明语法(注意:动态游标是不能用for操作)

Syntax:type emp_ref is ref cursor;

vref emp_ref;

例:

declare

type emp_ref is ref cursor;

vemp_ref emp_ref;

vrow emp%rowtype;

begin

open vemp_ref for select * from emp;

loop

fetch vemp_ref into vrow;

exit when vemp_ref%notfound;

dbms_output.put_line(vrow.ename);

end loop;

close vemp_ref;

end;

七、存储过程和函数

1、概述:存储过程或者函数实际就是一个具体名称的语句块,存储和函数的优点:

1>.提高开发效率,存放在服务端,只需要一个人写,其它人都可以调用

2>.存储过程减少网络流量,降低服务器的负荷

3>.提高数据操作的安全性

4>.较少代码量

2、存储过程语法

create [or replace] procedure procedure_name[(parameter datatype...)]

as|is

begin

end;

例1:

create or replace procedure emp_pro11

is

cursor emp_cur is select * from emp;

begin

for vrow in emp_cur loop

dbms_output.put_line(vrow.ename);

end loop;

end;

调用存储过程:

declare

begin

emp_pro11;

end;

例2:

create or replace procedure emp_pro12(

vdeptno number(4))

is

cursor emp_cur is select * from emp

where deptno=vdeptno;

begin

for vrow in emp_cur loop

dbms_output.put_line(vrow.ename);

end lopp;

end;

declare

vdeptno dept.deptno%type;

begin

vdeptno:=10;

emp_pro12(vdeptno);

end;

3、存储过程参数的三种模式

1>.in --输入性参数系统默认为第一种模式

2>.out --输出性参数

3>.int out --输入输出性参数

例3:

create or replace procedure emp_pro14

(vempno in out emp.empno%type)

as

begin

select sal into vempno

from emp

where empno=vempno;

end;

declare

vsal emp.sal%type;

begin

vsal:=7499;

emp_pro14(vsal);

dbms_output.put_line(vsal);

end;

八、函数与存储过程的区别

1、函数必须要有返回值,存储过程不需要

2、函数声明语法

create or replace function functionname(parameter datatyoe) return datatype

is

begin

end;

例:create or replace function emp_fun12

return integer

is

cursor emp_cur is select * from emp;

begin

for vrow in emp_cur loop

dbms_output.put_line(vrow.ename);

end loop

return 1;

end;

select emp_fun12 from dual

declare

vret integer;

begin

vret:=emp_fun12;

dbms_output.put_line(vret);

end;

六、MYSQL ----Linux

一、mysql安装

1.rpm包安装

版本:

redhat

redhat4 ----》

MySQL-client-community-5.1.45-1.rhel4.i386.rpm

MySQL-server-community-5.1.45-1.rhel4.i386.rpm redhat5 ----》

MySQL-client-community-5.1.45-1.rhel5.i386.rpm

MySQL-server-community-5.1.45-1.rhel5.i386.rpm 安装步骤:

<1>用来查找系统中是否已安装

.rpm -qa | grep mysql

<2>.安装server端

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

数据库课程设计完整版

HUNAN CITY UNIVERSITY 数据库系统课程设计设计题目:宿舍管理信息系统 姓名: 学号: 专业:信息与计算科学 指导教师: 20年 12月1日 目录 引言 3 一、人员分配 4 二、课程设计目的和要求 4 三、课程设计过程 1.需求分析阶段 1.1应用背景 5 1.2需求分析目标5 1.3系统设计概要 5 1.4软件处理对象 6 1.5系统可行性分析 6 1.6系统设计目标及意义7

1.7系统业务流程及具体功能 7 8 2.系统的数据字典11 3.概念结构设计阶段 13 4.逻辑结构设计阶段 15 5.物理结构设计阶段 18 6.数据库实施 18 7.数据库的运行和维护 18 7.1 解决问题方法 19 7.2 系统维护 19 7.3 数据库性能评价 19 四、课程设计心得. 20 参考文献 20 引言 学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条一条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了

校园基础地理空间数据库建设设计方案

校园基础地理空间数据库建设设计方案 遥感1503班第10组 (杨森泉张晨欣杨剑钢熊倩倩) 测绘地理信息技术专业 昆明冶金高等专科学校测绘学院 2017年5月

一.数据来源 二. 目的 三 .任务 四. 任务范围 五 .任务分配与计划六.小组任务分配七. E-R模型设计八.关系模式九.属性结构表十.编码方案

一.数据来源 原始数据为大二上学期期末实训数字测图成果(即DWG格式的校园地形图) 导入GIS 软件数据则为修改过的校园地形图 二.目的 把现实世界中有一定范围内存在着的应用数据抽象成一个数据库的具体结构的过程。空间数据库设计要满足用户需求,具有良好的数据库性能,准确模拟现实世界,能够被某个数据库管理系统接受。

三.任务 任务包括三个方面:数据结构、数据操作、完整性约束 具体为: ①静态特征设计——结构特性,包括概念结构设计和逻辑结构设计; ②动态特性设计——数据库的行为特性,设计查询、静态事务处理等应用程序; ③物理设计,设计数据库的存储模式和存储方式。 主要步骤:需求分析→概念设计→逻辑设计→物理设计 原则:①尽量减少空间数据存储冗余;②提供稳定的空间数据结构,在用户的需要改变时,数据结构能够做出相应的变化;③满足用户对空间数据及时访问的需求,高校提供用户所需的空间数据查询结果;④在空间元素间为耻复杂的联系,反应空间数据的复杂性;⑤支持多种决策需要,具有较强的应用适应性。 四、任务范围 空间数据库实现的步骤、建库的前期准备工作内容、建库流程 步骤:①建立实际的空间数据库结构;②装入试验性数据测试应用程序;③装入实际空间数据,建立实际运行的空间数据库。 前期准备工作内容:①数据源的选择;②数据采集存储原则;③建库的数据准备;④数据库入库的组织管理。 建库流程:①首先必须确定数字化的方法及工具;②准备数字化原图,并掌握该图的投影、比例尺、网格等空间信息;③按照分层要求进行

大作业设计报告书(嵌入式系统原理与开发)

大作业设计报告书 题目:嵌入式系统原理与开发 院(系):物联网工程学院 专业: 班级: 姓名: 指导老师: 设计时间: 10-11 学年 2 学期 20XX年5月

目录 1.目的和要求 (3) 2.题目内容 (3) 3.设计原理 (4) 4.设计步骤 (5) 4.1 交通指示灯设计 (5) 4.2 S3C44B0X I/O 控制寄存器 (6) 4.3 红绿灯过渡代码: (8) 4.4 电源电路设计 (10) 4.5 系统复位电路设计 (11) 4.6 系统时钟电路设计 (11) 4.7 JTAG 接口电路设计 (12) 4.8串口电路设计 (12) 5.引脚分类图 (13) 6.参考文献 (13)

1.目的和要求 ARM技术是目前嵌入式应用产业中应用十分广泛的先进技术,课程开设的目的在于使学生在了解嵌入式系统基础理论的前提下能够掌握ARM处理器的汇编语言和c语言的程序设计方法,掌握S3C44B0X芯片的基本硬件结构特点和接口设计方法,同时熟悉ARM开发环境,学习ARM的硬件设计和软件编程的基本方法,为今后从事相关的应用与研究打下基础。通过大作业要达到如下目的: 一、掌握ARM的开发工具使用和软件设计方法。 二、掌握ARM处理器S3C44B0X的原理和GPIO接口设计原理。 三、掌握C语言与的ARM汇编语言的混合编程方法; 四、培养学生选用参考,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。 五、通过课程设计,培养学生严肃认真的工作作风。 2.题目内容 题目:交通指示灯系统设计 功能描述: 1.用S3C44B0X的GPIO设计相关电路; 2.设计相关的软件并注释; 3.实现十字路口2组红、黄、绿交通灯交替显示。 编程提示: 1.交通灯可用发光二极管代替; 2.电路可部分参照实验电路; 3.时间控制可以使用软件循环编程解决。

数据库学习笔记

数据库学习笔记 图形化界(Navicate Premium)面操作数据库 1、工具---->命令行操作 2、选中某个表对象--->右击---->逆向表到模型---生成各表的关系模型 3、选中某个表对象-->右击-->对象信息--->DDL查看创建表的信息 Sql语言集数据定义语言,数据操纵语言,数据查询语言,数据控制语言于一体,可以完成数据库生命周期中的全部工作。 数据定义语言:完成创建,修改或删除数据库中的各种对象有create,drop,alter的命令。 数据查询语言:按各种条件查询数据库中的数据有select及其相关命令。 数据操纵语言:对已经从在的数据库对其进行数据的插入,删除和修改有insert,update,delete命令。 数据库控制语言:用于授权或收回访问数据库的某种特权,控制数据操纵事物的发生时间及效果,对数据库进行监视。有grant,revoke,commit,rollback等命令。 一、数据库操作 1、启动数据库:net start mysql 2、关闭数据库:net stop mysql 3、打开数据库:mysql -u root -p123 4、显示所有数据库:show databases;

5、创建数据库:create database mydb1; 6、删除数据库:drop database mydb1; 二、单表操作: 1、选择并使用数据库:use mydb1 2、创建表:(宠物表) 宠物表:id名字、主人、种类,性别、出生和死亡日期。create table pet( id int primary key, name varchar(20), owner varchar(20), species varchar(20), sex char(1), birth date, death date ); 3、插入数据: insert into pet values(1,’ergou’,’zx’,’dog’,’f’,’2013-09-06’ null); 4、查询所有内容 select * from pet; 5、删除一条数据: delete from pet where id=1;

2016年下学期嵌入式系统设计大作业

嵌入式系统设计大作业 1、叙述嵌入式系统开发过程中所要解决的两个问题。 2、叙述嵌入式平台的搭建过程,以linux为例。 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? 4、现今较流行的嵌入式操作系统有哪些? 5、PXA270嵌入式开发板的接口有哪些? 6、请写出Nor Flash和Nand Flash的区别。 7、冯。诺依曼架构与哈佛架构的区别。 8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束? 9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME "X-Hyper250 Keypad" #define KEYPAD_VERSION "Version 0.1" #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i<8;++i) { EXT_LED_CS = ~((1 << i) & 0xff); udelay(30000); } EXT_LED_CS = 0xff; }

数据库课程设计(自己做的)

——货存控制系统 6、1数据库设计概述 ㈠数据库设计的概念:数据库设计就是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求与处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。 ㈡数据库设计的特点 1、数据库建设就是硬件、软件与干件的结合:三分技术、七分管理、十二分基础数据,技术与管理的界面称之为干件。 2、数据库设计过程就是结构设计与行为设计的密切结合:结构设计就是设计数据库结构,行为设计就是设计应用程序、事务处理等。 ㈢数据库设计的方法 1、手工试凑法:设计质量与设计人员的经验与水平有直接关系,缺乏科学理论与工程方法的支持,工程质量难保证。 2、规范设计法:基本思想就是过程迭代与逐步求精。 ㈣数据库设计的基本步骤 准备工作:选定参加设计的人员。 ⑴分析员:数据库设计的核心人员,自始至终参与数据库设计,其水平决定了数据库系统的质量。 ⑵用户:主要参加需求分析与数据库的运行维护,用户的积极参与将加速数据库设计,提高数据库设计的质量。 ⑶程序员:在系统实施阶段参与进来,负责编制程序。 ⑷操作员:在系统实施阶段参与进来,准备软硬件环境。 ㈤数据库设计的过程(六个阶段) 1、需求分析阶段: 准确了解与分析用户需求(包括数据与处理),就是整个设计过程的基础,就是最困难、最耗费时间的一步。 2、概念结构设计阶段: 整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型 3、逻辑结构设计阶段: 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。 4、数据库物理设计阶段: 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构与存取方法)。 5、数据库实施阶段: 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计与物理设计的结果建立数据库、编制与调试应用程序、组织数据入库并进行试运行。 6、数据库运行与维护阶段: 数据库应用系统经过试运行后即可投入正式运行,在运行过程中不断对其进行评价、调整与修改。 设计一个数据库应用系统往往就是上述六个阶段的不断反复。 ㈥数据库设计各阶段的模式形成: 1、需求分析阶段:综合各个用户的应用需求。 2、概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)。

无锡市基础空间数据库SHP格式方案(大比例尺)

无锡市基础空间数据SHP格式设计方案 (大比例尺) 1、综述 1.1目的 为无锡市规划局基础空间数据建库提供标准。 1.2适用范围 1:500、1:1000、1:2000基础地形图数据 1.3制定原则 ●保证按本方案生产的数据可以实现同SHP数据的高效互转; ●保证按本方案生产的数据在转入数据库后可以实现标准图的输出; ●操作方便。 1.4类型约定 ● ●

1.5引用标准 《GB/T 14804-93 1:500 1:1000 1:2000 地形图要素分类与代码》(1994-08-01)《GB/T 7929-1995 1:500 1:1000 1:2000 地形图图式》(1996-05-01) 《GB 1:500 1:1000 1:2000 地形图数字化规范》(1998-08-01) 《GB/T14804-93 1:500 1:1000 1:2000 地形图要素分类与代码》(1994-08-01)《GT地籍数据库标准》 《GB/T 13923-92 国土基础信息数据分类与代码》(1993-07-01) 2、实体的划分 数据在SDE的服务器里是按照点、线、面和注记划分的,每一个SDE图层(FEATURECLASS)只能存储上述的一种空间对象。由于这种存储模型的限制,势必造成很多国标中的复杂地物被拆分到不同的SDE图层。为了在编码中体现设计的合理性、对实体的物理存储进行统一的管理,特在数据库的设计中在对空间实体做逻辑的划分。 2.1简单点 ●简单点实体只记录插入点的位置和相关属性,所有的简单点实体都必须以插入符号 的形式采集。 ●简单点状实体对应ARCOBJECT体系的IPOINT对象。 ●采集单位在使用点符号的时候要保证简单点的符号要和本方案提供的符号描述一 致,符号的插入点一致。 2.2简单无向线 ●简单线需要作业单位针对每一种实体制作线符号,这里所指的线符号必须是采集系 统提供的线符号库,不能用程序绘制。

数据库读书笔记 李辉

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL被作为关系型数据库管理系统的标准语言。一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。 SQL 语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。SQL语句可以分为以下几组: DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据; DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象; DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。 DML 组可以细分为以下的几个语句: SELECT:用于检索数据; INSERT:用于增加数据到数据库; UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。 DDL 语句可以用于创建用户和重建数据库对象。下面是DDL 命令: CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX DCL 命令用于创建关系用户访问以及授权的对象。下面是几个DCL 命令: ALTER PASSWORD GRANT REVOKE CREATE SYNONYM 下面主要介绍几个常用的数据库操作语句的格式: 数据查询:select 语句主要被用来对数 据库进行查询并返回符合用户查询标准的结果数据。Select 语句的语法格式如下:select column1 [, column2,etc] from tablename [where condition]; ([] 表示可选项) select 语句中位于select 关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。select 语句中位于from 关键词之后的表格名称用来决定将要进行查询操作的目标表格。Select 语句中的where 可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。 向表格中添加、更新、删除记录 添加新记录 SQL 语言使用insert 语句向数据库表格中插入或添加新的数据行。Insert 语句的使用格式如下: insert into tablename (first_column,https://www.doczj.com/doc/c74464390.html,st_column)

数据库系统课程设计--实例

摘要 数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求; 信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径. 校园网信息系统建设的重要性越来越为成人高校所重视. 利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的件。在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数据设计成为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要。 本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。本系统利用IBM DB2企业版本开发出来的。DB2是IBM公司开发的关系关系数据库管理系统,它把SQL语言作为查询语言。 本文的分为5章。其中第1章主要是课题简介及设计的内容与目的。第2章是需求分析,此阶段是数据库设计的起点。第3章是概念设计,它是将需求分析的用户需求抽象为信息结构,这是整个数据库设计最困难的阶段。第4章是逻辑结构设计,它将概念模型转换为某个DBMS所支持的数据模型。第5章是数据库的实施与运行,它包括数据的载入及数据库的运行。 关键词:SQL语言;IBM DB2;数据库设计;教学管理系统 I

数据库学习笔记

集成电路的发展到目前为止,依次经历了SSI,MSI,LSI,VLSI四个阶段。 微型计算机可采用不同的主振频率的CPU芯片。叵现有芯片的主振频率为8MHZ,也就是说它的主振周期为0.125US,(主振周期=1/主振频率)若已知每个机器周期平均含有4个主振周期,该机的平均指令执行速度为0.8MI/S,那么该机的平均指令周期为 1.25US,(平均指令周期=1/平均指令执行速度)平均每个指令周期含有 2.5个机器周期(平均机器周期数=平均指令周期/平均机器周期)。若改用主振周期为0.4US的CPU芯片,则计算机的平均指令执行速度为0.25MI/S(平均指令执行速度=1/平均指令周期=1/主振周期*平均机器周期含主振周期数*机器周期数)。若要得到平均每秒40万次的指令执行速度,则应采用主振频率为4MHZ的CPU 芯片。(平均指令执行速度=1/{(1/主振频率)*主振周期数*机器周期数}) 单个磁头在向盘片的磁性涂层上写入数据时,是以串行方式写入的。 虚拟存储管理系统的基础是程序的局部性理论。此理论的基本含义是程序执行时对主存的访问是不均匀的。局部性有两种表现形式:时间局部性和空间局部性。它们的意义分别为最近被访问的单元,很可能在不久的将来还要被访问和最近被访问的单位,很可能在它附近的单元还要被访问。根据局部性理论,DENNING提出了工作集的理论。 设有四级流水线,分别完成取指、译码、运算、存数四步操作,各步时间依次为30ns\50ns,80ns和100ns。则流水线的操作周期应为100ns。(取平均时间取决于流水线最慢的一步)每步操作时间依次为60、100、50、70 ns。该流水线的操作周期应为100 ns。若有一小段程序需要用20条基本指令完成则得到第一条指令结果400ns,结果完成该段程序需2300 ns。在流水线结构的计算机中,频繁执行条件转移指令时会严重影响机器的效率。当有中断请求发生时,若采用不精确断点法,则将不仅影响中断响应时间,还影响程序的正确执行。内存按字节编址,地址从A4000H到CBFFFH,共有160K 字节(CBFFFH-A4000H=27FFFH=160K)。若用存储容量为32K*8BIT的存储器芯片构成该内存,至少需要5片。(160K/32K=5) 若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是T取指=T分析=2NS,T执行=1NS,则100条指令全部执行完毕需203NS (T=100*2+3=203) 在单指令流多数据流计算机SIMD中,各处理单元必须以同步方式,在同一时间内执行同一条指令。 容量为64场面的CACHE采用组相联方式映像,字块大小为128个字,每4块为一组。若主存容量为4096块, 且以字编址,那么主存地址应为19位(4096*128=219 字),主存区号应为6位。(4096/64=32) 甲通过计算机网络给乙发消息,表示甲同意与乙签订合 同,不久后甲不承认发过该消息。为了防止这种情况的 出现,应该在计算机网络中采取数字签名技术 硬磁盘存储器的道存储密度是指沿磁盘半径方向上单 位长度毫米或英寸上的磁道数,而不同磁道上的位密度 是靠近圆心的密度大。 中央处理器CPU中的控制器是由基本的硬件部件构成 的。外设接口部件不是构成控制器的部件。中央处理 CPU主要由运算器和控制器组成,控制器中程序计数器 保存了程序的地址。中央处理CPU的主要功能不包括传 输数据。 使CACHE命中率最高的替换算法是替换最近最少使用 的块算法LRU。一般来说CACHE的功能全部由硬件实现。 某32位计算机的CACHE容量为16KB,CACHE块的大小 为16B,若主存与CACHE的地址映射采用直接映射方式, 则主存在地址为1234E8F8的单元装入的CACHE地址为 10 1000 1111 1000平均命中率最高的是近期最少使用 LRU算法。设某流水线计算机主存的读/写时间为100ns, 有一个指令和数据合一的CACHE已知该CACHE的读/写 时间为10 ns,取指令的命中率为98%,取数的命中率 为95%。在执行某类程序时,约有1/5指令需要存/取 一个操作数。假设指令流水线在任何时间都不阻塞,则 设置CACHE后,每条指令的平均访存时间约为12 ns。 (4/5*{10*98%+100*2%}+1/5*{1095%+100*5%}=12 ns) 相联存储器的访问方式是按内容访问。 利用并行处理技术可以缩短计算机的处理时间,所谓并 行性是指在同一时间完成两种或两种以上工作。可以采 用多种措施来提高计算机系统的并行性,它们可分成三 类即资源重复,资源共享和时间重叠。提供专门用途的 一类并行处理机亦称阵列处理机以SIMD方式工作,它 适用于矩阵运算。多处理机是目前性能较高计算机的基 本结构,它的并行任务的派生是需要专门的指令来表示 程序中并发关系和控制并发执行。 中断响应时间是指从发出中断请求到进入中断处理所 用的时间。 虚拟存储器对应用程序员透明而对系统程序员不透明. 虚拟存储器一定是多级存储器,而多级存储器不一定是 虚拟存储器. 程序中10%的指令占用了90%的执行时间,这一规则被 称为局部性原理。建立存储层次体系依据的原理是局部 性原理。 可随机读写且只要不断电则基本存储信息就可一直保 存的称为SRAM可随机读写但即便在不断电的情况下其 存储的信息也要定时刷新才不致丢失的称为DRAM所存 信息由生产厂家用掩膜技术写好后就无法再改变的称 为ROM通过紫外线照射后可擦除所有信息然后重新写 入新的信息并可多次进行的称为EPROM通过电信号可 在数秒钟内快速删除全部信息但不能进行字节级别删 除操作的称为Flash Memory 存储器读写速率越高每位的成本也越高,存储容量也越 大,解决这一问题的方法是采用多级存储体系. 为了大幅度提高处理器的速度,当前处理器都采用了指 令级并行处理技术如超级标量Superscaler它是指采 用多个处理部件多条流水线并行执行.流水线组织是实 现指令并行的基本技术影响流水线连续流动的因素除 数据相关性、转移相关性能、功能部件冲突和中断系统. 要发挥流水线的效率还必须重点改进编译系统在RISC 设计中对转移相关性一般采用延迟转移方法解决 计算机执行程序所需时间P,可用P=I·CPI·T来估计, 其中I是程序经编译后的机器指令数,CPI是执行每条 指令所需的平均机器周期数,T为每个机器周期的时间。 RISC计算机是采用虽增加I,但更减少CPI来提高机器 的速度。它的指令系统具有指令种类少的特点。指令控 制部件的构建,CISC更适于采用微程序控制,而RISC 更知于采用硬布线控制逻辑。RISC机器又通过采用大 量的寄存器加快处理器的数据处理速度。RISC的指令 集使编译优化工作更简单。访问内存需要的机器周期比 较少不是RISC的特点。 计算机总线在机内各部件之间传输信息.在同一时刻只 可以有一个设备发数据,一个或多个设备收数据.系统 总线由三总分构成.它们是地址总线、控制总线、数据 总线。早期的微机,普遍采用ISA总线,它适合16位 字长的数据处理为了适应增加字长和扩大寻址空间的 需要,出现了EISA总线它与ISA总线兼容。目前在奔 腾机上普遍使用,数据吞吐量可达2Gbit/s的局部总线 是PCI总线。 在流水线操作时,每个阶段的执行时间应取3个阶段执 行时间中的最大值。 SCSI是一种通用的系统级标准输入/输出接口,其中 FASTSCSI-II标准的数据宽度为16位,数据传送率达 20MB/S。大容量的辅助存储器采用RAID磁盘阵列。RAID 是工业标准共有6级。其中RAIDI是镜像磁盘阵列,具 有最高的安全性;RAID5是无独立校验盘的奇偶校验码 磁盘阵列;RAID2是采用纠错海明码的磁盘阵列;RAID0 则是既无冗余也无校验的磁盘阵列,它采用了数据分块 技术,具有专长最高的I/O性能和磁盘空间利用率,比 较容易管理,但没有容错能力。RAID是一种经济的磁 盘冗余阵列,它采用智能控制器和多磁盘驱动器以提高 数据传输率。RAID与主机连接较普遍使用工业标准接 1页

数据库课程设计(完整版)

HUNAN CITY UNIVERSITY 数据库系统课程设计 设计题目:宿舍管理信息系统 姓名: 学号: 专业:信息与计算科学 指导教师: 20年 12月1日

目录 引言 3 一、人员分配 4 二、课程设计目的和要求 4 三、课程设计过程 1.需求分析阶段 1.1应用背景 5 1.2需求分析目标5 1.3系统设计概要 5 1.4软件处理对象 6 1.5系统可行性分析 6 1.6系统设计目标及意义7 1.7系统业务流程及具体功能 7 1.8.1数据流程图8 2.系统的数据字典11 3.概念结构设计阶段 13 4.逻辑结构设计阶段 15 5.物理结构设计阶段 18 6.数据库实施 18 7.数据库的运行和维护 18 7.1 解决问题方法 19 7.2 系统维护 19 7.3 数据库性能评价 19 四、课程设计心得. 20参考文献 20

引言 学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条一条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备修改功能,能够快速的查询学校所需的住宿信息。 面对目前学校发展的实际状况,我们通过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。

数据库读书笔记

数据库读书笔记 导语:读书笔记是指读书时为了把自己的读书心得记录下来或为了把文中的精彩部分整理出来而做的笔记。以下是数据库读书笔记的内容,希望你们喜欢! 数据库读书笔记n 物化视图——物化视图是包括一个查询结果的数据库对象,物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高读取速度,特别适用于多个数据量较大的表进行连接操作及分布式数据库中需要进行分布在多个站点的表进行连接操作时使用。 物化视图可以进行远程数据的本地复制,此时物化视图的存储也可以成为快照。主要用于实施数据库间的同步。 物化视图对于数据库客户端的使用者来说如同一个实际表,具有和表相同的一般select操作,而其实际上是一个视图,一个定期刷新的数据视图。物化视图的刷新可采用自动刷新和人工刷新两种方式,具体刷新方式和刷新时间在定义物化视图的时候可以定义。使用物化视图可以实现视图的所有功能,因物化视图不是在使用时才读取,而大大提高了读取速度,特别使用抽取大量数据表中某些信息以及分布式环境中跨节点进行多表数据连接的场合。 n 聚集 在数据库运行初期,数据库对SQL语句各种写法的性能

优劣还不敏感,但是随着数据库正式使用,数据库中的数据不断增加,劣质SQL语句和好的SQL语句之间的速度差异就逐渐显示出来。 n 合理使用索引 n 避免和简化排序:通常在运行order by和group by 的SQL语句值,会涉及到排序操作,应当简化成避免对大型表进行重复排序,因为磁盘排序的开销是很大的。与内存排序相比,磁盘排序操作很慢,从而会花费很长时间,降低数据库性能,而且磁盘排序会消耗临时表空间中的资源。 当能够利用索引自动以适当的次序产生输出时,优化器就可以避免不必要的排序步骤,以下是一些影响因素由于现有索引的不足,导致排序时索引中不包括一个或几个待排序的列;group by或order by 子句中列的次序与索引的次序不一样;排序的列来源于不同的表。 为了避免不必要的排序,就要正确建立索引,合理地合并数据表。如果排序不可避免,那么应当试图简化它,如缩小排序的范围等。 n 消除对大型表数据的顺序存取:嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。避免这种情况的主要方法就是对连接的列进行索引。还可以使用并集来避免顺序存取,尽管在所有的检查列上都有索引,但某些形式的where子句强迫优化器使用顺序存取。

嵌入式系统基础作业

一、简要说明嵌入式系统产品的基本组成、嵌入式系统特点、嵌入式系统开发流程; 答:基本组成:可分为硬件和软件两个组成部分。其中硬件组成结构以嵌入式微处理机为中心,配置存储器I/O设备、通信模块以及电源等必要的辅助借口;软件组成结构包括应用层、OS层、BSP等。 特点:“专用”计算机系统;运行环境差异大;比通用PC系统资源少;功耗低、体积小、集成度高、成本低;具有完整的系统测试和可靠性评估体系;具有较长的生命周期;需要专用开发工具和方法进行设计;包含专用调试电路;多科学知识集成系统。 开发流程:(1)系统定义与需求分析阶段。(2)方案设计阶段。(3)详细设计阶段。(4)软硬件集成测试阶段。(5)系统功能性及可靠性测试阶段。 二、写出教材图1-1嵌入式系统的组成结构中各英文缩写的中文释义; 答:.OS:操作系统 API:应用程序接口 BSP:板级支持包 Boot:启用装载 HAL:硬件抽象层 SoC/SoPC:片上系统/片上可编程系统 GPIO:控制处理器输出接口 USB:通用串行总线 LCD:液晶显示器 ADC/DAC:模数转换和数模转换 FPGA/CPLD:现场可编程门阵列/复杂可编程逻辑器件 UART/IrDA:通用异步收发传输器/红外线接口 DMA:直接内存访问 CAN:控制器局域网络 Timer/RTC:定时器/实时时钟 MMU/Cache:内存管理单元/高速缓冲存储器

三、比较说明FLASH存储器中NOR型和NAND型FLASH的主要区别;比较说明RAM 存储器中SRAM和SDRAM的主要区别; 答:NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NANDFlash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。SRAM是靠双稳态触发器来记忆信息的;SDRAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用SDRAM,而高速缓冲存储器(Cache)则使用SRAM,在存取速度上,SRAM>SDRAM。 四、说明嵌入式系统常见硬件平台种类、典型处理器型号; 答:典型的型号有MIPS处理器、PowerPC处理器、Sparc处理器、ARM处理器、Xtensa系列可配置处理器。 五、嵌入式系统中常用的接口或通信方式有RS232、RS485、BlueTooth、CAN、IrDA、GPRS、SPI、GSM、802.11、SPI、IIC、Ethernet、JTAG等,请根据通信介质是否无线或有线对其进行分类;请根据通信距离从近至远依次排序;请根据通信速度从慢至快依次排序; 答:无线:RS485、BlueTooth、CAN、IrDA、GPRS、GSM、802.11、Ethernet 有线:RS232、SPI、IIC、JTAG 传输距离:RS232、SPI、IIC、JTAG、BlueTooTh、IrDA、RS485、CAN、802.11、GSM、GPRS、Ethernet 传输速度:GSM、GPRS、Blueteeth、IrDA、802.11、CAN、RS232、RS485、Ethernet、IIC、SPI、JTAG 六、列举常见嵌入式操作系统及其特点; 答:源代码公开并且遵循GPL协议 有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。

数据库设计课程设计要求

《数据库技术》课程设计 设计目的: 数据库技术课程设计是在学生系统的学习数据库技术课程后,按照关系型数据库的基本原理,综合运用所学的知识,以个人或小组为单位,设计开发一个小型的数据库管理系统。通过对一个实际问题的分析、设计与实现,将数据库技术、原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。 总体要求: 1)2到3人为一个小组,每个小组设组长一人,小组成员既要有相互合作的 精神,又要分工明确。 2)每个学生都必须充分了解整个设计的全过程。 3)从开始的系统需求分析到最后的软件测试,都要有详细的计划,设计文档 应按照软件工程的要求书写。 4)系统中的数据表设计应合理、高效,尽量减少数据冗余。 5)软件界面要友好、安全性高。 6)软件要易于维护、方便升级。 7)后台数据库(DBMS)用SQL Server2008. 8)前台开发工具自选,但一般情况下应该是小组的每个成员都对该语言较熟 悉,避免把学习语言的时间放在设计期间。 9)每组提交一个课程设计报告和可行的应用软件。 具体设计要求: 结合一个具体任务(课程设计参考题目),完成一个基于C/S模式或者B/S 模式的数据库系统的设计与开发。 正文要包括系统总体设计、需求分析、概念设计、逻辑设计(在逻辑设计中,需要检测是否满足3NF,如果设计为不满足3NF的,要说明原因)、物理设计(物理设计中,要设置表的索引、完整性、联系等)、测试、安装说明、用户使用说明书,参考文献等。 主要应包括如下内容: 1.完成课题任务的需求分析、完成系统总体结构设计方案。(主控功能模块、数据处理模块、统计报表模块等) 2.数据库结构的设计与实现。 3.数据库安全的设计 4.客户端数据库应用程序的开发。 5.综合调试方法的掌握。

数据库基础知识试题(含答案)

数据库基础知识试题 部门____________ __________ 日期_________ 得分__________ 一、不定项选择题(每题1.5分,共30分) 1.DELETE语句用来删除表中的数据,一次可以删除( )。D A .一行 B.多行 C.一行和多行 D.多行 2.数据库文件中主数据文件扩展名和次数据库文件扩展名分别为( )。C A. .mdf .ldf B. .ldf .mdf C. .mdf .ndf D. .ndf .mdf 3.视图是从一个或多个表中或视图中导出的()。A A 表 B 查询 C 报表 D 数据 4.下列运算符中表示任意字符的是( )。B A. * B. % C. LIKE D._ 5.()是SQL Server中最重要的管理工具。A A.企业管理器 B.查询分析器 C.服务管理器 D.事件探察器 6.()不是用来查询、添加、修改和删除数据库中数据的语句。D A、SELECT B、INSERT C、UPDATE D、DROP 7.在oracle中下列哪个表名是不允许的()。D A、abc$ B、abc C、abc_ D、_abc 8.使用SQL命令将教师表teacher中工资salary字段的值增加500,应该使用的命令 是()。D A、Replace salary with salary+500 B、Update teacher salary with salary+500 C、Update set salary with salary+500 D、Update teacher set salary=salary+500 9.表的两种相关约束是()。C

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

相关主题
文本预览
相关文档 最新文档