无需申请自动送彩金38-注册送38体验金-2017注册送白菜

66文章网, 最全、最新、最实时的知识分享平台!

数据库编程学习/我想学习数据库(编程),不知道先学哪种好?

作者: | 人气:6 | 时间:2017-09-12

一 : 我想学习数据库(编程),不知道先学哪种好?

我想学习数据库(编程),不知道先学哪种好?


当然是SQL SERVER!

微软出品,经典力作!入门必修!

二 : 学习数据库的步骤本人有一定的编程基础,熟悉C语言对数据库一窍不通

学习数据库的步骤

本人有一定的编程基础,熟悉C语言

对一窍不通

希望大家能够介绍数据库的学习步骤,从基础到提高,基础方面尽可能详细点,提高方面希望是现在流行的技术,并介绍相关的书籍,同时说明书籍的学习先后顺序。

请大家详细点,不要三言两语,否则可能对我这个初学者来说会造成误解。thank you


1、若是在校生

11、直接用上MS SQL的官方教程,中英对照学,这样就能非常全面的学,[注意以考试或认证为专攻方向]

2、若是在职的话

21、请直接用ACCESS自带的或MS SQL 自带的罗斯文数据库示例,进行一个案例,每一个细节的全程体会与思考

=============

数据库是一门专业中的专业的实践设计课程,

数据库的专业应用有如下三个方面

• 1、一个是程序

• 2、一个是分析

• 3、另一个就是商业战略

目前国内只能教程序方面

================

也没有办法了,毕竟老师需要天份,学生也需要天份的

--------------

你能问这个现实问题说明已经跑先了一步,就看你是马拉松,还是百米跑了

不过祝你好运

===============

专业问题,需要你的专业,以及日常所学,天份,才能汇总给你明确回复

================

================

叶绿楚才

2008/10/07

================

三 : Android系统数据库编程学习日志

Android 完整地支持 sqlite数据库,而且一个APP不能访问其他APP的数据库。

1、查看AndroidAPI,看到有两个package与数据库相关:android.database 和android.database.sqlite。

android.database 用于与ContentProvider交互的;直接操作数据库的API位于 android.database.sqlite。

2、查看Dev Guide ->Data Storage这份文档。讲解了一些常用的存储数据的方法,不过对于直接操作数据库的内容只是略微提及,并没有详细讲解。

3、查看Android SDK中的 sqlite3这个工具的用法(可以在PC上试用一下这个软件)

4、到 sqlite 的官方网站逛一逛,网址http://www.sqlite.org。然后把它的参考手册下载回来,因为在开发的时候会用到。

手工操作一下数据库,熟悉一下sqlite3这个工具。

1、首先启动虚拟机或者将手机连接到PC,执行 adbshell,进入android的shell

2、执行 sqlite3命令(在andoid系统中执行,不是在PC端)。用真机执行的话需要root权限,建议在虚拟机中操作。

执行 sqlite3 命令的时候,可以带一个数据库的文件路径,例如

$ sqlite3/data/data/com.android.providers.media/database/internal.db。

如果你有Linux的系统,完全可以在PC上试用sqlite3,跟Android上面的sqlite3是差不多的。

3、进入了 sqlite3的终端,可以执行各种sqlite命令(提示:sqlite命令都是以句点符号开头,例如“.tables”列出所有表格,“.databases”列出所有数据库,“.help” 查看帮助,“.exit”退出)

4、在sqlite3的终端界面还可以执行SQL语句,例如CREATE TABLE, SELECT 等等。参考sqlite官网了解SQL语句的写法。

手工操作了一下数据库之后,然后就开始利用AndroidAPI编写访问数据库的Java程序。

大致了解一下android.database.sqlite包中的各个类的用途:

1、SQLiteCloseable抽象类,一般不直接用这个类(它主要是提供一个接口,提供了close()方法)

2、SQLiteCursor保存查询操作返回的结果,类似于Content Provider返回的Cursor。

3、SQLiteDatabase是访问sqlite数据库的最主要的类,提供了多个操作数据库的API(查询、插入、删除等)

4、SQLiteOpenHelper是为了简化数据库操作而引入的类,也很常用(对于这个类,根据API文档的描述,需要覆盖它的几个onXXX()回调函数,然后使用)

5、SQLiteProgram表示一次sqlite查询操作(这个类的作用是提供一个基类,供继承的,一般不用)

6、SQLiteQuery是一次查询,从SQLiteProgram继承而来。这个类要提供给SQLiteCursor才有用,它本身没什么用。

7、SQLiteQueryBuilder是用于构造SQLiteQuery的工厂类,通过这个类建立SQLiteQuery,再把SQLiteQuery传给SQLiteCursor,做查询操作。

8、SQLiteStatement表示一个提前编译好的SQL语句,而且这个语句只能返回一行一列数据,需要从SQLiteDatabase.compileStatement来创建(不要用构造函数创建),引入他的目的是为了复用。

典型开发步骤:

1、写一个类,继承SQLiteOpenHelper类,并实现它的回调函数。这个类的最主要作用就创建数据库,返回数据库调用接口:

[java] viewplaincopyprint?
  1. publicclassDictionaryOpenHelperextendsSQLiteOpenHelper{
  2. privatestaticfinalintDATABASE_VERSION=2;
  3. privatestaticfinalStringDICTIONARY_TABLE_NAME="dictionary";
  4. privatestaticfinalStringDICTIONARY_TABLE_CREATE=
  5. "CREATETABLE"+DICTIONARY_TABLE_NAME+"("+
  6. KEY_WORD+"TEXT,"+
  7. KEY_DEFINITION+"TEXT);";
  8. DictionaryOpenHelper(Contextcontext){
  9. super(context,DATABASE_NAME,null,DATABASE_VERSION);
  10. }
  11. @Override
  12. publicvoidonCreate(SQLiteDatabasedb){
  13. db.execSQL(DICTIONARY_TABLE_CREATE);
  14. }
  15. }
public class DictionaryOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String DICTIONARY_TABLE_NAME = "dictionary"; private static final String DICTIONARY_TABLE_CREATE = "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" + KEY_WORD + " TEXT, " + KEY_DEFINITION + " TEXT);"; DictionaryOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DICTIONARY_TABLE_CREATE); }}

2、写好SQLiteOpenHelper子类之后,用构造函数实例化对象(用new运算符),即可访问数据库了。典型的访问数据库的代码如下:

[java] viewplaincopyprint?
  1. DictionaryOpenHelperhelper=newDictionOpenHelper(getApplicationContext());
  2. SQLiteDatabasedb=helper.getWritableDatabase();
  3. Stringdelete="DELETEFROM"+Dictionary.TABLE_NAME+
  4. "WHEREyear="+year+"ANDmonth="+month+";";
  5. db.execSQL(delete);
  6. db.close();
DictionaryOpenHelper helper = new DictionOpenHelper(getApplicationContext());SQLiteDatabase db = helper.getWritableDatabase();String delete = "DELETE FROM " + Dictionary.TABLE_NAME + " WHERE year=" + year + " AND month=" + month +";";db.execSQL(delete);db.close();

创建 helper,调用 helper 的getReadableDatabase() / getWritableDatabase(),得到SQLiteDatabase(数据库接口),然后用这个对象提供的API对数据库进行查询、插入、删除等各种操作。

3、如果要对数据库做查询操作,就调用 SQLiteDatabase的 query() 函数,返回 Cursor 对象。

注意:

1、如果数据库要提供数据给 ContentProvider,那么需要包含一个字段,名称为 BaseColumn._ID。

2、我在做开发的时候,遇到的麻烦问题就是SQL字符串比较复杂,容易出错,把SQL传过去报错的话

不能马上发现错误。

http://blog.csdn.net/smfwuxiao/article/details/7213892

四 : IOS开发学习笔记:iOS数据库编程

IOS开发学习笔记iOS数据库编程是本文要介绍的内容,主要是来了解IOS开发中的数据库的学习,具体内容来看详解。在IOS开发过程中常常会用到数据库,而SQLite3是iPhone中支持的数据库。下面简单介绍一下iPhone中SQLite3数据库的用法:

SQLite3是一个轻量级的数据库,完全使用C语言编写,使用简单方便。它是一个嵌入到程序进程的数据库,和其他一些数据库(MySQL,MS SQL)不同,它没有独立的进程。

1、打开数据库

首先声明一个数据库变量

  1. sqlite3*db=NULL;

每一个SQLite3都是一个文件,打开一个数据库只需要调用一次sqlite3_open函数:

  1. SQLITE_APIintsqlite3_open(
  2. constchar*filename,/*Databasefilename(UTF-8)*/
  3. sqlite3**ppDb/*OUT:SQLitedbhandle*/
  4. );

filename是数据库的路径,ppDb是指向返回的sqlite3数据库,返回SQLITE3_OK则表示正常。比如我们打开Document目录下的“Test.db”数据库:

  1. intresult=sqlite3_open([dbPathUTF8String],&db);
  2. NSAssert(result==SQLITE_OK,@”Can’topendatabase%@”,dbPath);

注意:如果dbPath路径下的数据库不存在,那么打开这个数据库将会创建一个空的数据库。

2、执行SQL语句

SQLite3有3种执行SQL语句的方法:

通过sqlite3_exec()函数,适用于执行(非查询)语句:如CREATE TABLE、INSERT,REPLACE,DELETE等。

  1. SQLITE_APIintsqlite3_exec(
  2. sqlite3*,/*Anopendatabase*/
  3. constchar*sql,/*SQLtobeevaluated*/
  4. int(*callback)(void*,int,char**,char**),/*Callbackfunction*/
  5. void*,/*1stargumenttocallback*/
  6. char**errmsg/*Errormsgwrittenhere*/
  7. );

比如我们要创建一个表示个人(person)的表,就可以使用sqlite3_exec()函数。person表中包括名字(name)、性别(gender)、年龄(age)和生日(birthday)这几个字段。代码如下:

  1. char*errmsg=NULL;
  2. result=sqlite3_exec(db,“CREATETABLEperson(”
  3. “nameTEXT,”
  4. “genderINTEGER,”
  5. “ageINTEGER,”
  6. “birthdayDATE)”,NULL,NULL,&errmsg);
  7. NSAssert(result==SQLITE_OK,@”Can’tCREATETABLE:%s”,errmsg);

通过sqlite3_get_table()函数,适用于查询语句SELECT。由于此函数返回一个字符串数组,因此对于要求结果为二进制数据(如图像数据)的不能用此函数返回。

  1. SQLITE_APIintsqlite3_get_table(
  2. sqlite3*db,/*Anopendatabase*/
  3. constchar*zSql,/*SQLtobeevaluated*/
  4. char***pazResult,/*Resultsofthequery*/
  5. int*pnRow,/*Numberofresultrowswrittenhere*/
  6. int*pnColumn,/*Numberofresultcolumnswrittenhere*/
  7. char**pzErrmsg/*Errormsgwrittenhere*/
  8. );

例如我们要查询person中的所有数据:

  1. char**table=NULL;
  2. introw,col;
  3. result=sqlite3_get_table(db,“SELECTname,age,birthdayfromperson”,&table,&row,&col,&errmsg);
  4. NSAssert(result==SQLITE_OK,@”SQLERROR:%s”,errmsg);

那么字符串数组table中就包含所有的表信息,本例中每行3个元素(name、age和birthday),table第一行元素是字段名字,如table[0]是”name”,table[1]是”age”,table[2]是”birthday”。table的第二行才是实际的数据,如table[3]是”张三”,table[4]是”24″,table[5]是”1981-10-21 12:00:01″。

通过sqlite3_prepare()、sqlite3_step()、sqlite3_bind_xxx()以及sqlite3_finalize()等一系列函数,可以逐行获取数据,并可以获取二进制数据。

sqlite3_prepare()用于编译一个SQL语句,返回一个sqlite3_stmt结构指针。sqlite3_stmt结构指针用于sqlite3_step()、sqlite3_bind_xxx()以及sqlite3_finalize()等函数中。sqlite3_step()用于将当前记录指向下一个。sqlite3_bind_xxx()等一系列函数会获取当前记录中各个字段对应的值。最后调用一下sqlite3_finalize()用于释放一些资源。

3、其他高级应用

(1)创建内存数据库

通常SQLite3数据库存储在磁盘文件中,所以对数据库的读写等操作就会精彩的对磁盘文件进行读写。SQLite3也可以将数据库建立在内存中,但是要注意建立内存的数据是易失的(程序退出时内存便会释放)。我们知道磁盘的读写比内存的读写要慢很多很多,有时候我们对读写速度要求很高,但是对数据是否时持久保存并不感兴趣,这时使用内存数据库最好不过了。

创建内存数据库很简单,只需要把打开数据库的文件名改为“:memory:”即可。

  1. intresult=sqlite3_open(“:memory:”,&db);
  2. NSAssert(result==SQLITE_OK,@”Can’topendatabase%@”,dbPath);

(2)创建自定义SQL语句函数

有时候我们想定义一个函数来判断一个人是否满足结婚条件(男性大于22岁,女性大于20岁),可惜SQL语句中并没有提供如此复杂的判断。这时创建一个自定义函数是非常方便的。

  1. staticvoiddb_func_canmarry(sqlite3_context*context,intargc,sqlite3_value**argv){
  2. intgender=sqlite3_value_int(argv[0]);
  3. intage=sqlite3_value_int(argv[1]);
  4. intcanmarry=0;
  5. if(gender==0&&age>22){
  6. canmarry=1;
  7. }
  8. elseif(gender==1&&age>20){
  9. canmarry=0;
  10. }
  11. sqlite3_result_int(context,canmarry);
  12. }

定义好函数,把这个函数加入到数据库SQL语句中。

  1. sqlite3_create_function(db,“CANMARRY”,2,SQLITE_UTF8,NULL,&db_func_canmarry,NULL,NULL);

以后我们执行SQL语句SELECT * FROM person WHERE CANMARRY(gender,age) 就可以获取到所有满足结婚条件的人。

(3)分页查询

数据库查询时常常碰到需要分页显示结果的情况,这时候我们使用SQL语句LIMIT关键字就非常方便了。比如返回20行起的10行数据

  1. SELECT*FROMpersonWHERECANMARRY(gender,age)LIMIT20,10

小结:IOS开发学习笔记iOS数据库编程的内容介绍完了,希望通过本文的学习能对你有所帮助!关于更多IOS开发的内容,请参考IOS开发频道。