分享

数据库从一无所知到基本使用

 Guristas 2015-03-14
论坛上很多数据库的资料,但很多会员在发贴前都不先搜索一下,因此特意将各个贴子合并到这里,如果个别会员不先搜索一下就发贴提问数据库相关的问题,而且答案很容易在这个贴子里找到的话将会受到扣分的处罚,谢谢大家合作!
! @1 K7 Z+ a% A$ e2 t$ ]
Q1:什么叫数据库?我为什么要用数据库啊?0 R- q+ m0 K7 e
A:二十一世纪十多年了,这二个网站应该会用:www.baidu.com  www.google.com

Q2:那怎么在LabVIEW中使用数据库呢?
A:《深入浅出LabVIEW数据库应用》《在LabVIEW中访问数据库的几种方法》《几篇LabVIEW与数据库的文章1 i/ i/ _9 g* f( V& z

Q3:我没有NI的数据库工具包啊?* B$ l7 ?3 C: t- Q, g# |7 U. t$ h
A:有免费的午餐哈,还不黑屏!《LabSQL下载》《免费的LabVIEW SQL/ODBC LLB》《LabSQL的另一个数据库工具包ADO-Toolkit for LabVIEW
建议用第一个LabSQL工具包,简单实用还带例子,论坛上的例子基本上都是用这个工具包。
& H( r* _# q7 D; R; s5 C. [2 d
Q4:能不能自动建立数据源?
A:可以通过写注册表实现,《在LabVIEW中动态配置ODBC数据源
注意这个贴子后面的图是贴错的,但按文字的话也不难理解。' f4 U& t  G3 j* M) `% K2 ?, h4 _
还有源代码,不过是动态建立SQL Server的数据源的——《动态配置数据源》4楼。8 L; H+ f# l' w  |

Q5:我使用ACCESS怎么样建立数据源?9 u7 i1 B+ \  O9 t( t* E& k
A:ACCESS可以不建立数据源而直接使用连接字符串。《不使用数据源的方法,怎么样建立和数据库的连接?
具体的连接字符串可以从这里找到《数据库连接字符串
0 `4 o5 }) o5 E. k
Q6:怎么样远程连接数据库呢?
A:一般直接将数据库的服务器地址由本地(Local)改为远程IP地址就行了。ACCESS的话直接将连接字符串中的“Dbq=C:\data.mdb”改为“Dbq=192.168.1.222\c:\data.mdb”即可,在局域网内调试证明是连接得上的,如果连接不上先Ping一下目标机看是不是网络的问题。3 l4 _: l4 C( m- g! \$ q) [
这里有一些讨论《服务器-客户机形式的数据库操作( g3 G6 _- I7 ^$ j" Z, X. U9 d
2 p3 u, S4 ~" c( ^* p) I9 D
Q7:想从无到有新建一个数据库行不行?/ U( m, t4 f. g2 B
A:行,对于ACCESS来说是新建一个.mdb文件;对于其它非文件类的数据库就是先建立与默认数据库的连接再使用CREATE DATABASE的SQL命令创建。《关于通过lv新建数据库的问题》这里的8楼的新建ACCESS的源程序,至于其它数据库可以参考9楼的说明,经试验是可行的。
% `% J2 }( g9 v0 g4 a/ j; U
Q8:新建数据库后想要新建数据表怎么样建?, g9 p% v/ k1 z/ U" x: ^
A:这里有程序可以参考一下,使用ACCESS的,其它数据库类似:《使用LabSQL在数据库中新建数据表》。4 J- [$ T8 W' O  Y
. n6 a' k$ j. \7 b2 b/ S
Q9:新建的数据库怎么样写入数据?
A:这里有程序可以参考一下:《循环写入数据库例子》;# H0 V' ], s" b8 X  u' F" @) Y4 X
" E9 [2 H- j6 H0 i: [, j7 l- R( C6 h
Q10:能不能将图片保存到数据库中?
A:可以,这里可以参考一下,有源程序《数据库存储图片问题
》,似乎都是用NI的数据库工具包。


! f* k3 C7 F$ l7 E4 D
Q11:论坛上还有没有其它数据库操作的例子?
A:《第二届程序竞赛获奖程序》部分程序是使用到了数据库。- U# R1 B. O7 W4 A/ t* A. q3 O8 b
      《多通道数据采集系统》将采集的数据写入数据库的。1 F) a1 b# O$ T) F
        数据库操作无非是增删改查,这里基本都包括了:《我要竞赛—密码登录系统》。: J3 T$ U. {0 X% y

Q12:想将数据库学深一点应该怎么样继续?
A:掌握各种SQL,多实践。因为数据库技术比较成熟,在其它软件中应用也非常广泛,而用于LabVIEW中,原理也是完全一样的,所以有一些问题,比如远程连接这一类的,可以直接搜索百度等,看一看在其它软件中是怎么样解决的,在LabVIEW中也基本上是一样的,包括数据库操作的SQL语句、操作时出现错误等,都可以搜索到一些参考资料的。
    《精妙SQL语句收集
      www.baidu.com& L1 V. S7 L) r5 M! [
      www.google.cn

( W3 R- X$ q5 S4 x: d3 |
---------------------------------------------------------------------------------------------------------------------------------------------------------7 u8 q' n# `$ e/ Z4 \  F% A! c* E# w
另补上ACCESS的关键词,尽量避免使用这些词作为字段,不然会出错,查起来比较麻烦:
+ ?( W% ^' f; m: _4 Y0 a

-A
    ADD
    ALL9 x0 a. J# L6 S2 ~2 ~* _  L& Y
    Alphanumeric
    ALTER" p6 O9 u- d# P  ]' c5 R1 l
    AND
    ANY6 W: x3 U: ^6 a6 A9 l& l1 X4 D& J( s
    Application
    AS' _3 P9 M+ ?' l# |6 w
    ASC
    Assistant- B, ?3 p2 B: A
       AT9 t+ f2 `( o# N, O9 N* A
    AUTOINCREMENT. ^# [" i1 e, H9 H
    Avg, v% q& e+ W  @6 E3 N, {! t+ o
-B
    BETWEEN$ V1 }4 r7 }6 ^9 k: S. t8 ]
    BINARY6 p1 G  N" J5 i4 i; Y% b: t) v
    BIT
    BOOLEAN
    BY
    BYTE4 b7 O/ x: U# i1 O6 Z1 t) a2 l
-C
    CHAR, CHARACTER
    COLUMN1 W4 A' U1 n! I" ^2 O: ~7 I6 _
    CompactDatabase
    CONSTRAINT
    Container8 U! R1 \% R" \; b4 b; D% f& C
    Count
    COUNTER$ y+ t1 S, {5 }; w, c+ D6 ]; Y
    CREATE
    CreateDatabase
    CreateField8 L) p9 ~+ w0 g3 z
    CreateGroup
    CreateIndex6 M& K0 Y3 z& J1 l6 Q! |( x! j
    CreateObject$ z% G$ l, S, A. p1 Y
    CreateProperty
    CreateRelation! B3 e. B( V1 `$ L: D7 r8 }
    CreateTableDef
    CreateUser
    CreateWorkspace
    CURRENCY
    CurrentUser
-D/ i9 E, t7 ]3 ?  }/ i, H( V
    DATABASE
    DATE8 h8 a1 Z- H4 P) {: W- `
    DATETIME* {) e0 E2 |2 v8 \
    DELETE
    DESC2 B3 b- ~7 w  Q+ o$ y3 Y
    Description
    DISALLOW
    DISTINCT
    DISTINCTROW
    Document
    DOUBLE5 Y; t/ n& e' [* q- j: F
    DROP4 x4 B% P0 S' l+ o$ }
-E; x% V9 Y) }8 Y' l" z
    Echo5 b2 f; B0 r8 c
    Else3 H' h9 \0 a- m; x, q0 x0 {
    End; _; U* R6 U+ v, S
    Eqv
    Error
    EXISTS6 t* z7 `# e# o7 W/ Q+ v! t
    Exit4 Z+ p6 V: ?/ U( o
-F* v* }5 j0 Z' L  `
    FALSE; |# ?- b0 T* N; m: j7 {8 K% K
    Field, Fields) G/ z7 t( ~* T3 ?/ p
    FillCache. I& f* O4 M4 t0 Z
    FLOAT, FLOAT4, FLOAT8
    FOREIGN2 F% G% o1 W, J1 w
    Form, Forms
    FROM
    Full
    FUNCTION
-G
    GENERAL
    GetObject0 R) \0 ^7 Q8 g1 {% V, S% a1 }
    GetOption( q% R* O  o# x6 C9 c1 Y2 B6 N
    GotoPage
    GROUP* _( @) g, l& `7 {% `
    GROUP BY& P* p$ X. Z6 I3 Z& ^1 Q4 ^3 [0 {5 z
    GUID7 L8 u, [: B, K! }8 W: c; i
-H
    HAVING9 m# z+ L% G, N3 d& U4 T  h
-I. B2 F9 [! ^1 [
    Idle8 k/ {! o, l, E- Y
    IEEEDOUBLE, IEEESINGLE2 ]) {) U6 i  Z, z/ F% Q
    If) f% ?* L- C: L$ v5 B. R! o# I  H
    IGNORE6 b0 H1 m9 V$ ]' d
    Imp
    IN5 U5 E" g, c5 F
    INDEX& X& r8 O9 e8 e
    Index, Indexes4 Q: P$ _3 K; ?# t- N
    INNER% L7 I0 n/ y& I  H
    INSERT
    InsertText6 X& K+ P: ~1 W- ^# X
    INT, INTEGER, INTEGER1, INTEGER2, INTEGER4
    INTO4 E+ q2 R# H6 K
    IS  \3 m  N, [) w5 H
-J
    JOIN
-K6 h. _$ A$ `# ^' I! e6 \, n
    KEY
-L/ D9 A( t; v0 u5 Q
    LastModified
    LEFT
    Level
    Like
    LOGICAL, LOGICAL12 ^1 w1 H' K" k8 `$ C
    LONG, LONGBINARY, LONGTEXT
                5 r3 p* a# _  c
-M
    Macro2 y; v* ]; B9 H
    Match& g0 R" g6 b  ^- p, t  s
    Max, Min, Mod3 G& p8 m0 T: R; k
    MEMO- v  C- X5 ]( X4 X3 O" w
    Module
    MONEY
    Move
-N
    NAME' H# ]& U8 v( b$ ~! p
    NewPassword2 P. o2 D5 `; }6 v
    NO
    Not
    Note
    NULL- F. c. q- f' w/ e8 E- i8 U! F# e
    NUMBER, NUMERIC
-O3 A) T. v( z5 K' a; j6 f5 }2 D; ?
    Object
    OLEOBJECT3 d& ]# w/ D' M5 {% x2 N, `8 w
    OFF/ w2 T& B" G. u$ T: ~6 n5 i
    ON0 l1 c; |* y0 y. e2 w8 q
    OpenRecordset
    OPTION, S9 p$ m4 r2 V' D+ q, x
    OR, R4 {3 n. ^. j) U; a2 q3 l0 ]
    ORDER% m* s, J! ^$ M* r
    Orientation% z7 k& k$ c, L7 v; K
    Outer! f$ ~) N0 f( S9 m$ y' B1 w
    OWNERACCESS+ I$ W6 w0 t. I/ V7 C$ J
-P$ L# k: h- h6 @3 q) r- D( R8 |
    Parameter
    PARAMETERS
    Partial$ r9 _5 g# @+ D8 S8 b- L# @; P
       Password+ M* @% F3 Z" e
    PERCENT
    PIVOT# x7 W1 w. R3 z
    PRIMARY- \6 m' u8 V% N( H. F
    PROCEDURE
    Property, x5 H7 p2 p! r! a
-Q
    Queries5 `( y% k3 R3 Z  I1 O; I
    Query
    Quit
-R& c4 W! {$ H& v+ q7 R
    REAL- p! K9 N, F5 h+ X, N, E
    Recalc
    Recordset
    REFERENCES
    Refresh
    RefreshLink3 f! Q" X8 a4 w) m3 ?2 Q
    RegisterDatabase
    Relation
    Repaint
    RepairDatabase, B$ V; Y: V+ P) A
    Report0 n" I+ H$ W3 V0 K9 w
    Reports
    Requery
    RIGHT0 u+ r3 p. v  Q& {, Q% U* H8 I2 I
-S, ]. g+ H5 L. a. x7 E! @. g
    SCREEN
    SECTION
    SELECT& F0 `0 r- @! W
    SET
    SetFocus' }; k) m) S# R0 p2 s( T1 o3 d( m
    SetOption9 `. W- a/ @: m" f5 n
    SHORT
    SINGLE+ ]& i" g$ w( I& F0 i7 |
        Size
    SMALLINT
    SOME
    SQL+ r, r: n" g, b9 {7 h
    StDev, StDevP
    STRING/ Q7 n  z$ ^) k$ S' e0 a
    Sum
-T1 N) Z; K  o- W+ A9 o2 r9 J! w
    TABLE/ ^. s1 Z" v" Q" K6 u/ S
    TableDef, TableDefs
    TableID. Q- L( r& }) C8 N9 H. n3 w
    TEXT
    TIME, TIMESTAMP
    TOP# V$ j) u- l+ o0 N0 E/ q
    TRANSFORM
    TRUE
    Type
-U
    UNION
    UNIQUE3 ^) {/ l% V# F- J& E  z5 U# C
    UPDATE
    USER
-V
    VALUE6 n1 Y0 W" i* O+ n
    VALUES
    Var, VarP+ ~9 D% H! r. A# f
    VARBINARY, VARCHAR
-W9 [1 `  R" U6 G6 s2 S: a+ q
    WHERE% d4 E. m1 f& ~
    WITH
    Workspace
-X$ p( h1 C# w( ~# z- m6 a
    Xor" X- A3 O- y  ^
-Y
    Year4 U6 [9 G; S, T
    YES9 i7 J# b# g1 n# ^1 x+ \5 Z! j
    YESNO! y- z( j) Z) s% u* d, W) y

4 e: N. r- R9 v3 ?
    最后说明一下:在Access中和在MS SQL中一样,对关键字的转义是使用“[”和“]”的,比如你的数据库中某个表中有以上述关键字作为字段名的,记得在该字段前后分别加上“[”和“]”,如[user],[password],[yes],不过建议还是尽量避免使用关键字。
    另外友情提示:如果遇见报“insert into"语句错误的情况,多半就是因为你使用关键字了。记得转义或者更改字段名。$ F) Z( h7 {$ B/ b2 X, k3 q, O; T
9 x' @! R6 b8 B
! b9 g0 o5 [) z0 Y
[ 本帖最后由 iwanttofly 于 2010-3-7 19:46 编辑 ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多