当前位置:文档之家› Platform Builder实践之配置文件

Platform Builder实践之配置文件

Platform Builder实践之配置文件
Platform Builder实践之配置文件

Platform Builder实践之配置文件

2004-10-03 15:57作者:付林林出处:天极网责任编辑:方舟

这篇文章主要讲解PB的配置文件。从用途方面分析,PB包含两种配置文件。分别是源码配置文件和镜像配置文件。下面分别讲解这两种配置文件。

一、源码配置文件:

源码配置文件用于编译源码时使用。这里的源码是指Windows CE公开的源码,如驱动程序、系统应用程序等。PB在编译平台时将这些公开的源码即时编译并将编译链接后的文件复制到平台工程子目录里。记得前面讲过PB在开始编译时调用cebuild.bat批处理文件,cebuild.bat执行的一个步骤是针对_DEPTREES变量指定的所有目录执行build.exe和sysgen.bat。build.exe在编译源码文件时会寻找当前目录下存放的源码配置文件,根据配置文件的信息来编译和链接,产生EXE、DLL、LIB文件。CE的源码文件所在的目录中都包含了相应的配置文件,这些配置文件只对当前目录或者子目录的源码有效,具体分为三种:

DIRS文件:文件内容和解释如下:

DIRS:指定哪个子目录的源码要被编译

DIRS_CE:只有为CE编写的源码才被编译

OPTIONAL_DIRS:指定可选的目录(很少使用这个选项),可以只编译指定目录而不是全部编译。

SOURCES文件:通过宏定义来指定编译和链接涉及到的文件,文件内容和解释如下:

TARGETNAME:指定编译链接产生的主文件名

TARGETTYPE:指定编译链接产生的文件的类型(决定了扩展名)。文件共分三种:.lib (LIBRARY)和.dll(DYNLINK)和.exe(PROGRAM)。

TARGETLIBS:定义.lib链接文件,链接时需要这个文件。

SOURCES:源码文件。包含扩展名为*.c或*.h 或*.cpp的文件。

EXEENTRY:.exe文件的执行代码入口点。

sources.cmn文件是通用的SOURCES文件。在这个文件中可以指定作用于所有源码文件的配置选项。

MAKEFILE文件:包含默认的编译和链接选项

整个编译和链接过程:build.exe收集编译和链接需要的数据(源码文件、链接文件、编译和链接选项)产生一系列的内部环境变量,然后调用nmake.exe,nmake.exe根据内部环境变量执行编译、链接,最后产生最终文件(*.lib *.exe *.dll)。

二、镜像配置文件:

镜像配置文件用于在制作CE镜像文件时使用。CE的镜像文件扩展名为.bin。制作镜像工具romimage.exe除了能够产生.bin文件外,还能够产生.abx和.sre文件。整个镜像的制作过程由makeimg.exe控制,它调用cenlscmp.exe、fmerge.exe、res2.exe、txt2ucde.exe、regcomp.exe、romimage.exe等。这些工具大部分在前面已经介绍过了。镜像配置文件类型有.bib、.reg、.db、.dat、.str。如果主文件名为Common,表示是通用的配置文件。如果主文件名为Platform,表示是某一个BSP的配置文件。如果主文件名是Project,表示是定制的一个平台的配置文件。在PB中修改配置文件前如果没有把握最好先做好备份。

l .bib(Binary image builder)

定义包含在内核镜像中的文件和模块的名称、加载位置。主要的bib文件有Common.bib,Config.bib, Project.bib, Platform.bib等。.bib文件内部分为几个部分:

【MEMORY】用于定义有效的物理内存块,在此将整个RAM分为几个部分。

格式:名称首地址大小内存类型

名称:内存区域的唯一名称(RESERVE是预定义名称,可以用多次,表示此区域保留)

首地址:内存区域的首地址(十六进制表示)

大小:内存区域的大小(十六进制表示)

内存类型:分为三种。

RAM:运行所有进程的内存区域(整个区域必须是连续的,且不能含空洞)

RAMIMAGE:专用于保存镜像的内存区域。(每个.bin中只能指定一个RAMIMAGE)

RESERVED:保留内存区域(这样的区域一般用于驱动程序使用,如显卡缓冲区、DMA 缓冲区)

举例:

;名称首地址大小内存类型

IF IMGRAM64

NK 80220000 009E0000 RAMIMAGE

RAM 80C00000 03000000 RAM

UMABUF 83C00000 00400000 RESERVED

ENDIF

注:整个内核的地址都是从0x8000 0000开始的。如果是x86系列的CPU,那么物理内存地址与虚拟地址映射关系在oeminit.asm中指定。

【CONFIG】类似环境变量,PB预设置了一些配置变量。常用的配置及说明如下:

AUTOSIZE:

格式:AUTOSIZE = OFF | ON

默认值为OFF。在config.bib中的MEMORY部分定义了有效的内存区域,其中两部分RAM、RAMIMAGE分别用于进程使用区域和保存镜像区域。如果为ON,romimage.exe在创建nk.bin时将RAM和RAMIMAGE两部分合并成一个部分,然后从最低地址开始保留RAMIMAGE大小的内存,其余都作为RAM使用。

BOOTJUMP:

格式:BOOTJUMP = address | NONE

默认值为NONE。每次重新启动CE内核,默认执行的代码从RAMIMAGE的首地址开始。如果在BOOTJUMP指定一个地址(必须在RAMIMAGE范围内),那么将从指定的地址开始执行。

COMPRESSION:

格式:COMPRESSION = OFF | ON

默认值为ON。romimage.exe在创建内核时默认压缩所有可写部分。对于文件,默认全部压缩。对于模块(.exe、.dll),默认压缩可写部分。模块的可写部分包括数据段,也就是在模块运行时一定加载到内存中的部分。如果模块在.bib中定义时具有C属性(表明压缩模块所有部分),那么当前这个选项就忽略了。

FSRAMPERCENT:

格式:FSRAMPERCENT = number

默认值为0x80808080。指定为文件系统分配的内存的百分比。number分为四个字节,由十六进制表示。

byte0的值(单位为4KB)表示在第一个2MB中,其中每1MB包含的4KB的整数倍。

byte1的值(单位为4KB)表示在第二个2MB中,其中每1MB包含的4KB的整数倍。

byte2的值(单位为4KB)表示在第三个2MB中,其中每1MB包含的4KB的整数倍。

byte3的值(单位为4KB)表示在剩下的内存中,每1MB包含的4KB的整数倍。

计算一下默认值0x80808080表示的百分比:0x80*4K/1M = 0.5,因为每个字节都等于0.5,所以整个占用的百分比是50%。

KERNELFIXUPS:

格式:KERNELFIXUPS = OFF | ON

默认值为ON。如果为ON,romimage.exe创建内核前重定位内核到RAM的开始位置。

OUTPUT:

格式:OUTPUT = path

指定romimaeg.exe将创建完成的内核文件nk.bin放置到的路径。一般放置

到%_FLATRELEASEDIR%下。

ROMFLAGS

格式:ROMFLAGS = Flags

设置内核选项的位掩码,多个位掩码可以组合使用。

0x0001 禁止按需分页:EXE和DLL默认是按需分页的。

0x0002 禁止全内核模式:进程运行在两种模式下,用户模式和内核模式。全内核模式下所有线程运行在内核模式。全内核模式能够提高执行效率,但会增加系统的不稳定性。如果允许执行用户程序,那么不适合采用全内核模式。

0x00000010 只信任来自ROM的模块(DLL、EXE)。默认ROM中的模块和所有文件系统的模块都是内核信任的。OEM能够在OAL层实现对所有运行模块的检查,这个标志将忽略对来自ROM保存的模块的检查。

0x00000020 停止刷新TLB。这个标志仅用于运行在x86CPU上的内核。TLB(Translation Look-aside Buffer),有人翻译成变换

索引缓冲区,它的作用是在虚拟地址和物理地址之间转换。对于具有实时性的内核,这个标志应该设置。

0x00000040 按照/base链接选项中的地址加载DLL。这样内核将不采用重定位加载DLL。不建议采用。

ROMSIZE

格式:ROMSIZE = size

指定内核镜像的大小

ROMSTART

格式:ROMSTART = address

指定内核镜像的首地址

ROMWIDTH

格式:ROMWIDTH = width

指定数据宽度,一般为32位

ROMOFFSET

格式:ROMOFFSET = address

指定偏移地址。

SRE

格式:SRE = OFF | ON

指定romimage.exe是否产生.src文件,一般烧录ROM的程序能够识别此文件。

注:config中绝大多数【CONFIG】选项不需要修改。凡是配置文件都可以使用IF/ENDIF 条件语句。

【MODULES】定义镜像要包含的模块并指定模块(DLL、EXE)如何被加载到内存表中。

格式:模块名称路径内存块类型

模块名称一般为模块的真实名称;路径为当前文件所处的位置(路径中指定的文件名和前面模块名称最好一致);内存块是指这个模块将被存放到哪个内存块中,内存块的定义见前面MEMORY部分;类型指定这个模块将被存放的属性,具体类型如下:

S:系统文件

H:隐藏文件

R:只压缩模块的资源部分(默认模块是不压缩的)

C:压缩模块所有部分

D:禁止调试

N:标志模块是非信任的

P:忽略CPU类型

K:指定romimage.exe修正模块(仅用于调试或者内核跟踪)

X:指定romimage.exe对此模块验证签名

M:运行时加载整个模块,而不是按需分页

L:不分离DLL在进程地址空间和Slot 1

举例:

MODULES

init.exe %_WINCEROOT%\RELEASE\INIT.EXE NK SH

nk.exe $(_FLATRELEASEDIR)\kitlnokd.exe NK SHD

nk.exe $(_FLATRELEASEDIR)\kitlnokd.exe NK SHN

【FILES】定义镜像要包含的文件并指定文件如何被加载到内存表中。格式:模块名称路径内存块类型

具体类型如下:

S:系统文件

H:隐藏文件

U:不压缩文件(默认是压缩的)

举例:

FILES

initobj.dat %_WINCEROOT%\RELEASE\INITOBJ.DA T NK SH

【.dat File System File】定义目录和指定文件位置。当冷启动CE平台时,filesys.exe用这些数据创建目录、快捷方式、

文件(在RAM文件系统)。

举例:

;;创建根目录下子目录Program Files

root:-Directory("Program Files")

;;创建目录Program Files下一个子目录My Projects

Directory("\Program Files"):-Directory("My Projects")

;;复制文件从\Windows\Myproj.exe到\Program Files\My Projects\My Project.exe

Directory("\Program Files\My Projects"):-File("My Project.exe", "\Windows\Myproj.exe")

;;复制文件从\Windows\control.lnk到\control.lnk

root:-File("\control.lnk", "\Windows\control.lnk")

快捷方式的运用:如果要在CE平台的桌面上显示一个程序的快捷方式,实现步骤为:

1、创建一个快捷方式。在开发机上用记事本一类的文字编辑软件写入字符格式为:长度#路径。其中长度为路径的字符个数。

例如“16#\windows\abc.lnk”,注意路径中空格也算在内。完成后保存为ASCII码的扩展名为.lnk的文件。

将此快捷方式文件*.lnk复制到%_FLATRELEASEDIR%下,也就是PB编译的所有文件存放的目录。

2、在project.bib中的FILES部分下按FILES的格式键入字符。例如:

FILES

abc.lnk $(_FLATRELEASEDIR)\abc.lnk NK S

3、在project.dat中指定abc.lnk文件所存放的位置。例如:

root:-Directory("\Windows")

Directory("\Windows"):-Directory("LOC_DESKTOP_DIR")

Directory("\Windows\LOC_DESKTOP_DIR"):-File("abc.lnk","\Windows\abc.lnk")

【.reg Registry file】设置注册表项。关于注册表见我的文章《开发实例二:保存信息》。

数据类型格式

REG_SZ "my string"

REG_DWORD DWORD: NNNNN (十六进制)

REG_MULTI_SZ multi_sz: "my string"

REG_BINARY hex: xx,xx,xx,xx ...

HEX hex(xxxxxxxx): xx,xx,xx,xx

例如:

[HKEY_LOCAL_MACHINE\init]

"Launch60"="myproc.exe" ///REG_SZ类型

"Depend60"=hex:14,00, 1e,00 ///REG_BINARY类型

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\TRUEFFS_UNAND\FATFS]

"MountFlags"=dword:2 ///REG_DWORD类型

【.db The database files】数据库文件保存在对象存储中。实际应用的不多,在这里不再过多讲解。

【.str string files】类似EVC中的字符串资源。用于指定ID与字符串的关联。CE支持很多国家语言,所以内核使用的字符串可能采用不同国家的语言。为此,CE将字符串用ID来定义,在.str文件中指定ID对应的字符串。包含.str文件的目录名采用国家码来设置,例如“C:\......\0410\cepc.str”。

数据库的增删改查(精)

学习收藏数据库增删改查 --查询信息系和计算机系的学生,并按学生所在系和学号排序。select sno,sname,Sdept from Student where Sdept='CS'OR Sdept='IS' order by Sdept,sno ASC --查询学生表中最小的年龄。 select MIN(sage from student --查询课程名中包含“数据”的课程名。 select cno,cname from course where Cname like'%数据%' --查询先行课程为空值的课程号、课程名及学分 select cno,cname,ccredit from Course where Cpno is null --查询李勇选修的数据库课程的成绩 select grade from SC where Sno=(select Sno from Student where Sname='李勇'and Cno=(select Cno from Course where cname='数据库' --查询平均成绩分以上的学生的学号 select distinct sno from SC scx where (select AVG(Grade from SC scy

where scy.sno=scx.Sno>85 --求计算机系没有选修数据库课程的学生姓名 select sname from Student where Sno not in(select Sno from SC where Cno in(select Cno from Course where Sname='数据库'and Sdept='IS' --求至少选修了学号为S1所选修的全部课程的学生学号 select distinct sno from SC scx where not exists(select*from SC scy where scy.Sno='20021522'and not exists(select* from sc scz where scz.sno=scx.sno and https://www.doczj.com/doc/3d5853732.html,o=https://www.doczj.com/doc/3d5853732.html,o --求各系的系的学生人数的,并将结果按学生人数的降序排序 select Sdept,COUNT(sno from Student group by Sdept order by Sdept ASC --查询选修了数学课程并且成绩高于该门课程平均分的学生学号和成绩 select sno,grade from SC scx where Grade>=(select AVG(Grade from SC scy where Cno=(select Cno from Course where Cname='数学'and Cno=(select Cno from Course

数据库增删改查基本语句

数据库增删改查基本语句 adoquery1.Fielddefs[1].Name; 字段名 dbgrid1.columns[0].width:=10; dbgrid的字段宽度 adoquery1.Fields[i].DataType=ftString 字段类型 update jb_spzl set kp_item_name=upper(kp_item_name) 修改数据库表中某一列为大写select * from master.dbo.sysobjects ,jm_https://www.doczj.com/doc/3d5853732.html,ers 多库查询 adotable1.sort:='字段名称ASC' adotable排序 SQL常用语句一览 sp_password null,'新密码','sa' 修改数据库密码 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值orderby 字段名[desc] " sql="select * from 数据表where 字段名like '%字段值%' orderby 字段名[desc]" sql="select top10 * from 数据表where 字段名orderby 字段名[desc]" sql="select * from 数据表where 字段名in('值1','值2','值3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" (3)删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" sql="insert into 目标数据表select * from 源数据表"(把源数据表的记录添加到目标数据表)

数据库增删改查

02.连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 03.创建数据库:create database [库名] 04.显示所有数据库: show databases; 05.打开数据库:use [库名] 06.当前选择的库状态:SELECT DATABASE(); 07.创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 08.显示数据表字段:describe 表名; 09.当前库数据表结构:show tables; 10.更改表格 11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE 12. 说明:增加一个栏位(没有删除某个栏位的语法。 13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名]) 14. 说明:更改表得的定义把某个栏位设为主键。 15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名]) 16. 说明:把主键的定义删除。 17.显示当前表字段:show columns from tablename; 18.删库:drop database [库名]; 19.删表:drop table [表名]; 20.数据操作 21.添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据); 22.查询: SELECT * FROM [表名] WHERE ([条件]); 23.建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]); 24.删除:DELETE FROM [表名] WHERE ([条件]); 25.修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件]; 26. 27.导入外部数据文本: 28.1.执行外部的sql脚本 29.当前数据库上执行:mysql < input.sql 30.指定数据库上执行:mysql [表名] < input.sql 31.2.数据传入命令load data local infile "[文件名]" into table [表名]; 32.备份数据库:(dos下) 33.mysqldump --opt school>school.bbb 34. 35. 36. 37.提示:常用MySQL命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库 38.一. 增删改查操作 39. 40.============================================================================ ===== 41.1. 增: 42.insert into 表名values(0,'测试'); 43.注:如上语句,表结构中有自动增长的列,也必须为其指定一个值,通常为0 44.insert into 表名(id,name) values(0,'尹当')--同上

oracle10g数据库的表空间查看和修改

oracle数据库表空间大小的查看、修改 1、通过oracle客户端连接到oracle数据库 a)安装好oracle客户端后,通过net manager工具配置本地net服务名, 依次点击开始,程序,Oracle - OraClient10g_home1,配置和移植工具,Net Manager。 b)进入Net Manager配置窗口。

c)依次点击本地,服务命名。 d)可以看到左侧的号变成绿色,此时可以点击该,弹出net服务名的 配置窗口

e)这里的网络服务名是指的oracle客户端所在机器的本地服务名,随便设 置个名字,例如sbzw,点击下一步。 f)默认设置,点击下一步。 g)在主机名后的输入框中输入oracle数据库所在的服务器的ip地址,例 如:192.168.1.236.,点击下一步。

h)在服务名后的输入框中输入oracle数据库的全局服务名,例如tjsb, 点击下一步。 i)此处不要点击完成,先点击测试查看连接是否正常。

j)在连接测试窗口中显示的应该是测试没有成功,此时请点击更改登录。 k)修改了用户名和密码后,点击确定,然后再次点击“测试”,提示连接成功后,关闭连接测试窗口,点击完成,至此本地net服务名配置完成。 2、通过oracle客户端的企业管理器修改数据库的表空间大小

a)依次点击开始,程序,Oracle - OraClient10g_home1,Enterprise Manager Console(企业管理器)。 b)进入了oracle的企业管理器 c)依次点击数据库,sbzw,弹出登录窗口,

修改及查看mysql数据库的字符集

修改及查看mysql数据库的字符集 来源: ChinaUnix博客日期: 2008.03.23 22:20 (共有条评论) 我要评论https://www.doczj.com/doc/3d5853732.html,/techdoc/database/2008/03/23/986386.shtml Liunx下修改MySQL字符集: 1.查找MySQL的cnf文件的位置 find / -iname '*.cnf' -print /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /usr/share/texmf/web2c/https://www.doczj.com/doc/3d5853732.html,f /usr/share/texmf/web2c/https://www.doczj.com/doc/3d5853732.html,f /usr/share/texmf/web2c/https://www.doczj.com/doc/3d5853732.html,f /usr/share/texmf/tex/xmltex/https://www.doczj.com/doc/3d5853732.html,f /usr/share/texmf/tex/jadetex/https://www.doczj.com/doc/3d5853732.html,f /usr/share/doc/MySQL-server-community-5.1.22/https://www.doczj.com/doc/3d5853732.html,f /usr/share/doc/MySQL-server-community-5.1.22/https://www.doczj.com/doc/3d5853732.html,f /usr/share/doc/MySQL-server-community-5.1.22/https://www.doczj.com/doc/3d5853732.html,f /usr/share/doc/MySQL-server-community-5.1.22/https://www.doczj.com/doc/3d5853732.html,f /usr/share/doc/MySQL-server-community-5.1.22/https://www.doczj.com/doc/3d5853732.html,f 2. 拷贝 https://www.doczj.com/doc/3d5853732.html,f、https://www.doczj.com/doc/3d5853732.html,f、https://www.doczj.com/doc/3d5853732.html,f、https://www.doczj.com/doc/3d5853732.html,f 其中的一个到/etc下,命名为https://www.doczj.com/doc/3d5853732.html,f cp /usr/share/mysql/https://www.doczj.com/doc/3d5853732.html,f /etc/https://www.doczj.com/doc/3d5853732.html,f 3. 修改https://www.doczj.com/doc/3d5853732.html,f vi /etc/https://www.doczj.com/doc/3d5853732.html,f 在[client]下添加 default-character-set=utf8 在[mysqld]下添加 default-character-set=utf8 4.重新启动MySQL [root@bogon ~]# /etc/rc.d/init.d/mysql restart Shutting down MySQL [ 确定 ] Starting MySQL. [ 确定 ] [root@bogon ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)

数据库语句增删改查

mysql语句用法,添加、修改、删除字段一,连接MySQL 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 五,后记 一,连接MySQL 格式:mysql -h 远程主机地址 -u 用户名 -p 回车 输入密码进入: mysql -u root -p 回车 Enter password: ,输入密码就可以进入 mysql> 进入了 退出命令:>exit 或者ctrl+D 二,MySQL管理与授权 1.修改密码:

格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 2.增加新用户: >grant create,select,update....(授予相关的操作权限) ->on 数据库.* -> to 用户名@登录主机 identified by '密码' 操作实例: 给root用户添加密码: # mysqladmin -u root password 52netseek 因为开始root没有密码,所以-p旧密码一项可以省略. 登陆测试: # mysql -u root -p 回车 输入密码,成功登陆. 将原有的mysql管理登陆密码52netseek改为52china. # mysqladmin -u root -p 52netseek password '52china' 创建数据库添加用户并授予相应的权限: mysql> create database phpbb; Query OK, 1 row affected (0.02 sec)

mysql> use phpbb; Database changed mysql> grant create,select,update,insert,delete,alter -> on phpbb.* -> to phpbbroot@localhost identified by '52netseek'; Query OK, 0 rows affected (0.00 sec) 授予所有的权限: >grant all privileges >on bbs.* >to bbsroot@localhost identified by '52netseek' 回收权限: revoke create,select,update,insert,delete,alter on phpbb.* from phpbbroot@localhost identified by '52netseek'; 完全将phpbbroot这个用户删除: >use mysql >delete from user where user='phpbbroot' and host='localhost'; >flush privileges; 刷新数据库 三,数据库简单操作

SQL单词及数据库增删改查

数据库(Database, DB) 数据库管理系统(Database Management System, DBMS) 数据库管理员(Database Administrator, DBA) 数据库系统(Database System, DBS) SQL:结构化查询语言(structured Query Language)DB: 数据库(database) DBA:数据库管理员(database administrator)DBMS:数据库管理系统(database management system) Toa d:癞蛤蟆,一款开发数据库的可视化软件 Roo t: 根 Re la tion shi p:关系 U ser:用户 Ta ble:表 P ro ce dure:存储过程 Fun c tion:函数 Tri gger:触发器 Vie w:视图 In de x:索引 C rea te:创建 Dro p:删除 Ta ble:表 En gine:引擎 Co lu mn:列 P ri ma ry:主要的 Primary key:主键 Na me:列名 Au to:自动的 In cre men t:可增长的 Au to_In cre men t: 自动增长 Da ta Ty pe:数据类型 Not null:非空 Co mmen t:注释 Cha ra c ter se t:字符集 Co lle c tion:采集(对比方法) Fo reig n:外部的

Fo reig n key:外键 SQL 数据化查询语言 DML数据操作语言(Data Manipulation Language)DCL数据控制语言(Data Control Language)DQL: 数据查询语言(Data Query Language)DDL: 数据定义语言(Data Definition Language) in ser t:插入(增) de le te:删除(删) up da te:修改(改) se le c t:查询(查) in to:到哪里。。。 fro m:从哪里来。。。 va lue:值 u nio n:拼接 wh ere:在。。。。。 se t:设置 trun ca te:截断 im por t:导入 ex por t:导出 Or der:顺序 Or der by:排序 Re p la ce:替换 Now:现在 Cei ling:天花板 F loo r:地板 Si gn:符号 Con ver t:转换 Di s tin c t:独特的(去重复的) Li mi t:限制 li ke:像。。。一样 be t wee n 。。。and:在。。。。和。。。。之间 su m:和 avg:平均值

Mysql 查看、创建、更改、删除数据库和表

Mysql 查看、创建、更改、删除数据库和表 MySQL的所有命令必须通过命令行输入;且它不提供可视化界面。 注意:所有MySQL命令必须以";"结束。如果忘记了输入分号,可以在下一行中输入";"让前一命令得到处理。 1、登录mysql命令行客户端,根据提示输入密码,按回车键,如下: 2、使用show语句找出在服务器上当前存在什么数据库(显示可用数据库列表):mysql>show databases;

3、创建一个数据库caidan: 语法:create database name; 创建数据库mysql>create database caidan; 好了,可以用mysql>show databases;查看

4、利用 use +(数据库名称) 语句使用它。(既选中数据库) 此时进入你所建立的数据库caidan。 5、创建一个数据表 首先看现在你的数据库中存在什么表: mysql> SHOW TABLES;

说明刚才建立的数据库中还没有数据库表。 创建一个数据表该数据库内容包括id,name,public_time,product_price,status 创建了一个表后,我们可以看看刚才做的结果,用show tables显示数据库中有哪些表:

6、显示表的结构:describe tablename; 表的详细描述 用SELECT命令来查看表中的数据: 显示表中的记录: mysql>select * from 表名;

这说明刚才创建的表还没有记录。 7、加入一条记录: 往表中加入记录 Insert into 表名 (属性1,属性2,…..) values (值1,值2,……) mysql>insert into 表名 values("hyq","M"); 注意:日期表达方式 用SELECT命令来查看表中的数据: 显示表中的记录: mysql>select * from 表名;

数据库基本的增删改查语句(精)

增删改查: DDL,数据定义语言 1.创建数据库,表 1.create database 数据库名2.create table 数据表名( --结构 ; 3.反引号 ``:作用:使用mysql标识符命名时,使用反引号包裹,执行sql语句会通过。 2.查看数据库,表列表 show databases;show tables; 3.查看数据库,表语句 show create database 数据库名 show create table 数据表名 4.删除数据库,表 drop database 数据库 drop database 数据库表 5.选择数 据库 use 数据库名 1.like 作用:对展示的结果进行过滤。 mysql中的字符串,使用单引号进行包裹!(也是支持双引号,但是双引号有特别的含义,因此不建议使用)通配符:匹配任意字符的任意数量: % 匹配任意字符的一次出现: _ 如果要匹配% 和 _ ;使用反斜杠"\" 转义即可。 show databases like '数据库名\_'; 3.特别容错语法: 1.if not exists 2.if exists 一个要求:认为库名,表名,都区分大小写的。 4.create table 库名.表名,没练习过 5.\G 6.改表名,rename table 原表名 to 新表名 7.查看表结构:desc 数据表名 8.first 关键字第一 9.after 关键字后面修改 alter 1.table: 1.修改表选项,比如字符集........... 2.修改表结构: 1.增加字段: alter table 表名 add column(字段字段定义(比如,id值) 2.在表里增加一个字段 alter table 表名 add column(字段字段定义(比如,id值)after column(字段) alter table 表名 add column(字段字段定义(比如,id值)first column(字段) 3.删除表中的字段 alter table 数据表名 drop column column_name(字段名 4.修改表的字段 alter table 数据表名”modify“ column 字段名新定义没练习过 5.字段改名 alter table 数据表名 change column 原字段名新字段名新字段定义没练习过 2.主键:管理主键: alter table 表名 primary key(主键字段删除 alter table 表名 drop primary key //例子:alter table preperty_unique_3 drop index sn; 添加: alter table 表名 add primary key(指定的字段管理类似于自动增长其他属性时: alter table 表名 modify column 3.unique key:唯一:删除; alter table 表名 drop unique key index 索引名增加: alter table 表名 add unique key 索引字段列表 %%4.外键:删 除: alter table 表名 drop foreign key 外键语法增加: alter table 表名{子表} add constraint 约束名称 foreign key 外键索引名 (外键字段名 references 关联表名{父表} (关联字段 [操作] 置空: alter table null_fk_student add constraint set_null foreign key(class_id references null_fk_class (class_id on delete set null on update cascade; ------

数据库 查询 修改 删除 增加 排序 等命令

数据库查询修改删除增加排序等命令 insert into Register values('张三') //添加语句 select*from Register //查询语句查询整个表 delete from Register where Loadname='张三' //删除Register 表中的Loadname字段=‘张三’的行信息 select*from UserLoad order by id desc/*利用ID进行排序desc降序排序将UserLoad中的所有id都进行排序 select*from UserLoad order by id asc利用ID进行排序asc 升序排序 alter table UserLoad drop column Text 删除Userload表中 Text字段这列 select count(*)from Register where sex='男' 查找Register 表中sex=‘男’的所有人数 select BrithDay,Phone from Register where Loadname='张三' 在Register表中查询Loadname='张三'的BrithDay和Phone update UserLoad set Text='11111'where id='1' 修改UserLoad表中ID=’1’的Text文本内容 select Passworld from Register where Loadname='张三' 在Register表中查找Loadname=张三的密码 id int identity(1,1)//使ID值由1自动增加1 当字段的长度大于5个字符在其后加.... select case when len(FCatalog)>5 then LEFT(FCatalog,5)+'.....' else FCatalog end from Fiction 多表查询

Linux修改数据库的sid和dbname 查看oracle 实例

有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成: 1、修改实例名(SID) 2、修改数据库名(dbname) 下面演示将数据库sid和dbname由orcl修改为cnhtm的过程: 1、修改实例名(sid) 1.1、检查原来的数据库实例名(sid) oracle@oracle[/home/oracle]> echo $ORACLE_SID orcl oracle@oracle[/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:14:49 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options sys@ORCL> select instance from v$thread; INSTANCE -------------------------------------------------------------------------------- orcl 1.2、关闭数据库 注意不能用shutdown abort,只能是shutdown immediate或shutdown normal sys@ORCL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. sys@ORCL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 1.3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为cnhtm oracle@oracle[/home/oracle]> cat ~/.bash_profile|grep -i sid ORACLE_SID=cnhtm export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH 1.4、修改/etc/oratab文件,将sid名由旧的修改为新的,如从orcl修改为cnhtm oracle@oracle[/home/oracle]> cat /etc/oratab

数据库中的表的查询、添加、修改、删除数据

首先引入数据库操作引用: using System.Data.SqlClient; 第一、查询数据: string MyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no";/ /定义数据库连接参数 SqlConnection MyConnection=new SqlConnection(MyConn);//定义一个数据连接实例SqlCommand MyCommand=new SqlCommand("SELECT CategoryID, CategoryName, Description FROM Categories",MyConnection); //定义一个数据库操作指令 SqlDataAdapter SelectAdapter=new SqlDataAdapter();//定义一个数据适配器 SelectAdapter.SelectCommand=MyCommand;//定义数据适配器的操作指令 DataSet MyDataSet=new DataSet();//定义一个数据集 MyConnection.Open();//打开数据库连接 SelectAdapter.SelectCommand.ExecuteNonQuery();//执行数据库查询指令 MyConnection.Close();//关闭数据库 SelectAdapter.Fill(MyDataSet);//填充数据集 DataGrid1.DataSource=MyDataSet; DataGrid1.DataBind();//将数据表格用数据集中的数据填充 第二、添加数据 string MyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no"; SqlConnection MyConnection=new SqlConnection(MyConn); string MyInsert="insert into Categories(CategoryName, Description)values('"+Convert.T oString(T extBox2.T ext)+"','"+Convert.T oString(TextBox3.T ext)+"')"; SqlCommand MyCommand=new SqlCommand(MyInsert,MyConnection); try//异常处理 { MyConnection.Open(); MyCommand.ExecuteNonQuery(); MyConnection.Close(); } catch(Exception ex) { Console.WriteLine("{0} Exception caught.", ex); } 第三、修改数据 string categoryName=T extBox2.T ext; string categoryDescription=T extBox3.T ext; string MyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no"; SqlConnection MyConnection=new SqlConnection(MyConn); string MyUpdate="Update Categories set

数据库的增删改查

MySQL的常用命令符、增删改查的方法、以及修改表的结构语句和修改表的记录语句。 创建一个完整的数据库: Create database 库名default character set utf8 collate utf8_general_ci; 删除一个数据库: Drop database 库名; 查询所有数据库: Show databases; 选择当前数据库: Use 库名; 导入外部文件: Source ‘路径’没有分号 导出数据库文件: Into outfile ‘路径’; 创建一个完整的表:

Create table 表名 (字段名) default charecter set utf8 collate utf8_general_ci; 删除一个表: Drop table 表名; 清空表的记录: Truncate 表名; 查看表的结构: Desc 表名; 查看所有的表: Show tables; DDL部分 修改数据表,包括: 修改列的名称: Alter table 表名 change 旧的字段名新的字段名类型; 修改列的类型: Alter table 表名 modify 字段名新的类型; 增加一列:

Alter table 表名 add column 字段名类型; 删除一列: Alter table 表名 drop column 字段名; DML部分 给某个字段增加记录: Insert into 表名(字段名) values (记录); 给多个字段增加记录: insert into 表名(字段名1,字段名2,..) values(记录1,记录2,..); 给所以字段增加记录: Insert into 表名 values (与之对应的记录); 给某个字段增加多条记录: Insert into 表名(字段名) values(记录1),(记录2),(记录3),(...); 删除数据: Delete from 表名 where 要删除的记录; 注意:如果不加where条件的话会删除表中所有的记录;

数据库连接及增删改查

连接数据库 首先把需要的jar包拷到lib文件夹下,其中包括mysql的驱动 一、新建项目spring(Dynamic Web Project) 二、src下创建package(name: https://www.doczj.com/doc/3d5853732.html,.utils),spring-context.xml(new-other-xml-xml file) spring-context.xml代码如下: (路) (通往路的交通工具) 三、https://www.doczj.com/doc/3d5853732.html,.utils下创建Department.java、SpringUtils.java(class类) Department.java代码如下:

数据库修改命令

通过SQL查询分析器对WIS数据进行维护 一、查看表中的信息 1、select * from wis_log 2、select * from wistable1 where wisfield101='曹责强' 3、select * from wistable1 where wisfield_femesign=0 4、select wisfield101,wisfield_areano ,wisfield106 from wistable1 where wisfield_areano='610303005' --某乡人数 5、select wisfield101,wisfield_areano from wistable2 where wisfield_areano='610303004' --某乡妊娠史人数 6、select wisfield101,wisfield_areano from wistable3 where wisfield_areano='610303004' --某乡家庭子女人数 7、select wisfield101,wisfield_areano from wistable4 where wisfield_areano='610303004' --某乡避孕史人数 8、select wisfield101,wisfield_area from wistable5 where wisfield_areano='610303004' ---某乡生殖健康情况人数 9、select wisfield101,wisfield_areano from wistable7 where wisfield_areano='610303004' --某乡婚姻史人数 二、删除个别因各种原因要去掉的个案信息 1、删除以数字或拼音开头的记录 delete from wistable1 where ASCII(wisfield101)<=122 三、信息变更 1、合并村组 /*--在同一乡镇中撤村并组数据库合并办法如下 需要变动的信息有育龄妇女现居住地址(代码)WISfield103(WISfield104)户籍所在地(代码)WISfield105(WISfield106) 丈夫所在现居住地址(代码)WISfield163(WISfield164)户籍所在地(代码)WISfield165(WISfield166)(包含子女信息) 显示某村已婚育龄妇女人数 select wisfield_femesign,wisfield_areano,

c#与数据库增删改查

向网格控件中添加所有数据 清空ListView lvStudent.Items.Clear(); 1.查找 设置要执行的SQL语句 string sql = "select * from Students where 1=1 "; 设置查询条件 if (txtName.Text.Trim() != "") { sql += string.Format(" and stuName like '%{0}%'",txtName.Text); } if (cboSex.Text != "") { sql += string.Format(" and sex='{0}'",cboSex.Text); } 创建执行对象 SqlCommand cmd = new SqlCommand(sql,DBHelper.conn); try { 打开数据库连接 if (DBHelper.conn.State == ConnectionState.Closed) { DBHelper.conn.Open(); } 执行操作 SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { 创建主项 ListViewItem lvi = new ListViewItem(dr["stuName"].ToString()); lvi.Tag = dr["id"].ToString(); 添加子项 密码 lvi.SubItems.Add(dr["stuPass"].ToString()); 性别 lvi.SubItems.Add(dr["sex"].ToString()); Email lvi.SubItems.Add(dr["email"].ToString()); 地址

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