精华内容
下载资源
问答
  • 创建数据库例子
    万次阅读
    2021-01-08 18:55:46

    创建数据库

    • 语法
    CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
    
    • 例子
    CREATE DATABASE IF NOT EXISTS chtest;   --使用默认库引擎创建库
    

    默认情况下,ClickHouse使用的是原生的数据库引擎Ordinary(在此数据库下可以使用任意类型的表引擎在绝大多数情况下都只需使用默认的数据库引擎)。

    创建表

    • 语法
    CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster](    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],    ...) ENGINE = engine
    
    • 示例
    -- 注意首字母大写
    -- 建表
    node1 :) use default;
    node1 :) create table test(id Int32,name String) engine=Memory; --内存引擎表
    node1 :) insert into test(id,name) values(110,'test');   --字符串不能使用双引号
    node1 :) select * from test;
    
    SELECT *
    FROM test
    
    ┌──id─┬─name───┐
    │ 110 │ test │
    └─────┴────────┘
    

    上面命令创建了一张内存表,即使用Memory引擎。表引擎决定了数据表的特性,也决定了数据将会被如何存储及加载。Memory引擎ClickHouse最简单的表引擎,数据只会被保存在内存中,在服务重启时数据会丢失。一般应用于中间表或者临时表

    分布式DDL操作

    默认情况下,CREATE、DROP、ALTER、RENAME操作仅仅在当前执行该命令的server上生效。

    在集群环境下,可以使用ON CLUSTER语句,这样就可以在整个集群发挥作用。

    比如创建一张分布式表:

    node1 :) CREATE TABLE IF NOT EXISTS user_cluster ON CLUSTER news_ck_cluster(
        id Int32, 
        name String) ENGINE = Distributed(news_ck_cluster, default, user_local,id);
    

    Distributed表引擎的定义形式如下所示:关于ClickHouse的表引擎,后续章节做详细解释。

    Distributed(cluster_name, database_name, table_name[, sharding_key])
    

    各个参数的含义分别如下:

    • cluster_name:集群名称,与集群配置中的自定义名称相对应。
    • database_name:数据库名称
    • table_name:表名称,映射到每台服务器中的表名称。
    • sharding_key:可选的,用于分片的key值,在数据写入的过程中,分布式表会依据分片key的规则,将数据分布到各个节点的本地表。

    创建完成上面的分布式表时,在每台机器上查看表,发现每台机器上都存在一张刚刚创建好的表。

    接下来就需要创建本地表了,在每台机器上分别创建一张本地表:

    -- 没有自动创建可以手动创建
    node1 :) CREATE TABLE IF NOT EXISTS user_local 
    (
        id Int32,
        name String
    )ENGINE = MergeTree()
    ORDER BY id
    PARTITION BY id
    PRIMARY KEY id;
    

    我们先在一台机器上,对user_local表进行插入数据,然后再查询user_cluster表:

    -- 插入数据
    node1 :) INSERT INTO user_local VALUES(1,'tom'),(2,'jack');
    -- 查询user_cluster表,可见通过user_cluster表可以操作所有的user_local表
    node1 :) select * from user_cluster;
    ┌─id─┬─name─┐
    │  2 │ jack │
    └────┴──────┘
    ┌─id─┬─name─┐
    │  1 │ tom  │
    └────┴──────┘
    

    接下来,我们再向user_cluster中插入一些数据,观察user_local表数据变化,可以发现数据被分散存储到了其他节点上了。

    -- 向user_cluster插入数据
    node1 :)  INSERT INTO user_cluster VALUES(3,'lilei'),(4,'lihua'); 
    -- 查看user_cluster数据
    node1 :) select * from user_cluster;
    ┌─id─┬─name─┐
    │  2 │ jack │
    └────┴──────┘
    ┌─id─┬─name──┐
    │  3 │ lilei │
    └────┴───────┘
    ┌─id─┬─name─┐
    │  1 │ tom  │
    └────┴──────┘
    ┌─id─┬─name──┐
    │  4 │ lihua │
    └────┴───────┘
    
    -- 在node1上查看user_local
    node1 :) select * from user_local;
    ┌─id─┬─name─┐
    │  2 │ jack │
    └────┴──────┘
    ┌─id─┬─name──┐
    │  3 │ lilei │
    └────┴───────┘
    ┌─id─┬─name─┐
    │  1 │ tom  │
    └────┴──────┘
    -- 在hadoop02上查看user_local
    hadoop02 :) select * from user_local;
    ┌─id─┬─name──┐
    │  4 │ lihua │
    └────┴───────┘
    

    注:

    1、创建分布式表是读时检查的机制,也就是说对创建分布式表和本地表的顺序并没有强制要求

    2、在上面的语句中使用了ON CLUSTER分布式DDL,这意味着在集群的每个分片节点上,都会创建一张Distributed表,这样便可以从其中任意一端发起对所有分片的读、写请求。

    3、分布式表映射到每台服务器一张本地表。

    更多相关内容
  • Laravel 的Schema门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持的所有数据库系统中提供一致的、优雅的、平滑的API。 2、生成迁移 使用 Artisan 命令make:migration来创建一个新的迁移: ...
  • 摘要:Delphi源码,数据库应用,创建表,删除表 再次与初学Delphi的新手们分享一个基础的数据库操作例子:用Delphi编写程序实现创建表、删除表,很基础的数据库入门操作了,Delphi编程老手就不用下载源码了。
  • 创建数据库例程.zip易语言项目例子源码下载创建数据库例程.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 易语言创建数据库例程.zip易语言项目例子源码下载易语言创建数据库例程.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 大强学易之创建数据库(EDB).zip易语言项目例子源码下载大强学易之创建数据库(EDB).zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 创建数据库关联.zip易语言项目例子源码下载创建数据库关联.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 下面是我们需要创建一个数据与一个用户的...第四步:新建一个用户jb51user,先点击管理用户,点击添加用户第五步:新建用户后,点击展开就能看到多个数据库,可以选择我们上面创建数据库jb51,这里以bbsjb51为例子
  • 数据库-创建数据库

    千次阅读 2021-11-29 10:17:59
    这个系列我们就来说一下,数据库我们应该会些什么,那么我们先从创建数据库和表格开始吧。 1、创建数据库 create database 库名; 创建student库 2、查看是否创建成功: show databases; 3、删除数据库 drop ...

    数据库操作在软件测试工作中,是必须掌握的知识。这个系列我们就来说一下,数据库我们应该会些什么,那么我们先从创建数据库和表格开始吧。

    1、创建数据库
    create database 库名; 创建student库
    在这里插入图片描述
    2、查看是否创建成功:
    show databases;
    在这里插入图片描述
    3、删除数据库
    drop database 库名;
    4、切换数据库
    use 目标库;
    切换数据库的命令是什么意思呢,举个例子:例如,我们当前在info库里进行操作,但是我需要切换到student库里操作,这时候我们需要切换库名,从info库切到student库,就用到切换库的命令了,命令为:use student;
    5、创建表格
    create table 表名 (字段1,字段2,…)
    多个字段,以英文逗号间隔
    在这里插入图片描述

    6、删除表格
    drop table 表名
    7、修改表结构-新增字段
    alter table 表名 add 列名 数据类型
    在这里插入图片描述
    在stud表中,增加tel列,字符串类型

    8、删除列
    alter table 表名 drop column 列名
    在这里插入图片描述
    9、查询表格数据
    select * from 表名
    在这里插入图片描述
    10、往表格中插入数据
    (1)单条插入
    insert into 表名 values(值1,值2)
    在这里插入图片描述
    需要注意的是,字段值的顺序是表结构的顺序,并且,输入的内容,要符合字段限制,也就是类型限制,或者检查约束等。
    (2)缺省字段值
    在这里插入图片描述
    (3)打乱输入顺序
    insert into stud(字段2,字段3,字段1,字段7)
    values(字段2值,字段3值,字段1值,字段7值)
    在这里插入图片描述
    (4)批量输入
    insert into 表名
    select 字段1值,字段2值,… union
    select 字段1值,字段2值
    在这里插入图片描述
    union是连接下条记录的关键字,最后一条记录没有union

    注意:所有的标点符号是英文

    展开全文
  • 易语言动态创建ACCESS数据库源码.zip易语言项目例子源码下载易语言动态创建ACCESS数据库源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 数据库系统概念--创建数据库

    千次阅读 2022-03-15 18:03:59
    创建了一一个主数据文件以及相应的日志文件 create database test1 on ( name='test1_data', filename='D:\sql\data\test1.mdf', size=5 mb, maxsize=50 mb, filegrowth=10% ) log on ( name='test_1log', file.

     安装sql sever2008 r2安装下载sql sever2008 r2icon-default.png?t=M276https://zhuanlan.zhihu.com/p/111516867

    创建了一一个主数据文件以及相应的日志文件

    create database test1
    on
    (
    name='test1_data',
    filename='D:\sql\data\test1.mdf',
    size=5 mb,
    maxsize=50 mb,
    filegrowth=10%
    )
    log on
    (
    name='test_1log',
    filename='D:\sql\data\test1.ldf',
    size=2 mb,
    maxsize=5 mb,
    filegrowth= 1 mb
    );

    数据库文件分类

    根据作用不同,分为以下三种:
    1、主数据文件。
    用来存储数据库的数据和数据库的启动信息。
    每个数据库必须有且只有一个主数据文件,其扩展名为.mdf。
    实际的主数据文件都有两种名称:操作系统文件名和逻辑文件名(在sql语句中会用到)

    2、辅助数据文件
    用来存储数据库的数据,可以扩展存储空间。
    一个数据库可以有多个辅助数据文件。扩展名为.ndf

    3、事务日志文件
    用来存放数据库的事务日志。凡是对数据库进行的增、删、改等操作,都会记录在事务日志文件中。
    每个数据库至少有一个事务日志文件。扩展名为.ldf

    sql 语言的注释方法

    sql 语言的注释方法icon-default.png?t=M276http://c.biancheng.net/view/7227.html单行注释使用#或者--

    多行注释使用/*fndujshfusd*/

    创建文件例子\

    create database test2
    on
    (
    --数据库名称,后缀
    name='test2_data',
    --数据库文件名称(后缀为mdf)文件路径
    filename='D:\sql\data\test2.mdf',
    --文件大小
    size=20 mb,
    --最大文件大小为无限大关键字(unlimited)
    maxsize=UNLIMITED,
    --增长速度
    filegrowth=10%
    ),
    --创建辅助数据文件,文件名不可以和主文件名相同
    (		name= test21_data,
          FILENAME = 'D:\sql\data\test21.ndf',
          SIZE = 20 mb,
          MAXSIZE = UNLIMITED,
          FILEGROWTH = 10% )
    log on
    (
    name='test2_log',
    filename='D:\sql\data\test2.ldf',
    size=50mb,
    maxsize=100 mb,
    filegrowth= 10 mb
    );

    ex.2创建文件组

    create database test3
    on
    primary
    --ON [PRIMARY]是表示表是建立在主文件组上。PRIMARY表示主文件组。
    (
    	--文件名称,后缀类似标识,避免创建辅助文件时,与主文件组重名
    	name='test3_dat1',
    	--文件绝对路径,后缀为(.mdf)
    	filename = 'D:\sql\data\test3_dat1.mdf',
    	--文件初始大小
    	size=20mb,
    	--文件最大限制
    	maxsize= 60mb,
    	--增长速率
    	filegrowth = 5 mb
    ),
    --创建文件组名(filegroup)
    filegroup test3group1
    (
    	name = 'test3_dat2',
    	filename = 'D:\sql\data\test3_dat2.ndf',
    	size = 10 mb,
    	maxsize = 30 mb,
    	filegrowth= 10%
    )

    展开全文
  • 动态创建一个ACCESS数据库,动态创建access的代码是这样的,当窗体激活时执行下列代码自动创建数据库:  Dim myDB As DAO.Database  Set myDB = DAO.Workspaces(0).CreateDatabase("mydb.mdb", dbLangGeneral) ...
  • java代码创建数据库

    2015-01-23 15:25:05
    java代码创建数据库,非常简单的例子,下载之后解压把必须的jar文件导入到到工程,拷贝代码执行main放假就可以看到效果。
  • 再来个简单的Delphi数据库例子创建表、删除表..rar`
  • Android开发之创建数据库

    千次阅读 2021-09-16 10:37:57
    在Android中创建数据库流程 * 1、创建一个类,继承SQLiteOpenHelper * 2、重写方法和创建构造方法 * 3、创建子类对象,再调用getReadableDatabase()/getWriteableDatabase()方法,即可创建数据库 创建一个空的...

    前言:在Android中创建数据库及操作

     * 1、创建一个类,继承SQLiteOpenHelper
     * 2、重写方法和创建构造方法
     * 3、创建子类对象,再调用getReadableDatabase()/getWriteableDatabase()方法,即可创建数据库
    

    1. 创建一个空的数据库

    创建类,并继承SQLiteOpenHelper

    package com.example.databasedemo;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import androidx.annotation.Nullable;
    public class DatabaseHelper extends SQLiteOpenHelper {
        /**
         *
         * @param context
         * @param name  数据库名称
         * @param factory  游标工厂
         * @param version 版本
         */
    	/*  
    	 *  此处为最初的构造方法,为了方便省事,已将其中的三个参数提前设置相应的数据
    	public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
            super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
        }
        */
        public DatabaseHelper(@Nullable Context context) {
            super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }
    
    

    创建子类对象

    package com.example.databasedemo;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建数据库
            DatabaseHelper helper = new DatabaseHelper(this);
            helper.getWritableDatabase();
    
        }
    }
    

    地址为:data/data/com.example.databasedemo/databases/…
    在这里插入图片描述

    2. 创建一个有表的数据库

    (主要是在重写的两个方法中进行操作)

    @Override
        public void onCreate(SQLiteDatabase db) {
            //首次创建时的回调
            Log.d(TAG,"创建数据库时回调...");
            //创建字段
            //sql   :  create table table_name(_id integer,name varchar,age integer, salary integer)
            String sql = "create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer, salary integer)";
            db.execSQL(sql);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            //当版本升级时回调
            Log.d(TAG,"升级数据库...");
            //添加字段
            //sql :  alter table table_name add phone integer;
            String sql;
            //对版本进行一个判断
            switch (oldVersion){
                case 1:
                    sql = "alter table "+ Constants.TABLE_NAME+" add phone integer";
                    db.execSQL(sql);
                    break;
                case 2:
                    sql = "alter table "+ Constants.TABLE_NAME+" add address varchar";
                    db.execSQL(sql);
                    break;
            }
        }
    

    3.使用一个测试类进行测试。

    在一个DAO类中写好了查询的方法

    
    DatabaseHelper mHelper = new DatabaseHelper(context);
    
    public void query(){
    		//获取一个SQLiteDatabase 
            SQLiteDatabase db = mHelper.getWritableDatabase();
            String sql = "select * from "+Constants.TABLE_NAME;
            //获取游标
            Cursor cursor = db.rawQuery(sql, null);
            //moveToNext()移动到下一位
            while (cursor.moveToNext()){
            //根据指定字段获取其坐标
                int index = cursor.getColumnIndex("name");
                String name = cursor.getString(index);
                Log.d(TAG,"name =="+ name);
            }
            db.close();
        }
    

    使用测试机类进行测试

    package com.example.databasedemo;
    
    import android.content.Context;
    
    import androidx.test.platform.app.InstrumentationRegistry;
    import androidx.test.ext.junit.runners.AndroidJUnit4;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    
    import static org.junit.Assert.*;
    
    /**
     1. Instrumented test, which will execute on an Android device.
     2.  3. @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
     */
    @RunWith(AndroidJUnit4.class)
    public class ExampleInstrumentedTest {
        @Test
        public void testQuery(){
            Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
            Dao dao = new Dao(context);
            dao.query();
        }
    }
    

    运行结果

    **

    4. 使用Android提供的API进行增删改查(重点)

    **
    查看提供的源码

    • insert()
    /**
         * Convenience method for inserting a row into the database.
         *
         * @param table the table to insert the row into
         * @param nullColumnHack optional; may be <code>null</code>.
         *            SQL doesn't allow inserting a completely empty row without
         *            naming at least one column name.  If your provided <code>values</code> is
         *            empty, no column names are known and an empty row can't be inserted.
         *            If not set to null, the <code>nullColumnHack</code> parameter
         *            provides the name of nullable column name to explicitly insert a NULL into
         *            in the case where your <code>values</code> is empty.
         * @param values this map contains the initial column values for the
         *            row. The keys should be the column names and the values the
         *            column values
         * @return the row ID of the newly inserted row, or -1 if an error occurred
         */
        public long insert(String table, String nullColumnHack, ContentValues values) {
            try {
                return insertWithOnConflict(table, nullColumnHack, values, CONFLICT_NONE);
            } catch (SQLException e) {
                Log.e(TAG, "Error inserting " + values, e);
                return -1;
            }
        }
    

    在dao类中去调用query()方法

    public void insert(){
            SQLiteDatabase db = mHelper.getWritableDatabase();
            //一个map集合
            ContentValues values = new ContentValues();
            values.put("id",2);
            values.put("name","小芳");
            values.put("age",18);
            values.put("salary",16000);
            values.put("phone",120);
            values.put("address","CN");
            db.insert(Constants.TABLE_NAME,null,values);
            db.close();
        }
    
    • update()
     /**
         * Convenience method for updating rows in the database.
         *
         * @param table the table to update in
         * @param values a map from column names to new column values. null is a
         *            valid value that will be translated to NULL.
         * @param whereClause the optional WHERE clause to apply when updating.
         *            Passing null will update all rows.
         * @param whereArgs You may include ?s in the where clause, which
         *            will be replaced by the values from whereArgs. The values
         *            will be bound as Strings.
         * @return the number of rows affected
         */
        public int update(String table, ContentValues values, String whereClause, String[] whereArgs) {
            return updateWithOnConflict(table, values, whereClause, whereArgs, CONFLICT_NONE);
        }
    

    在Dao类调用update()方法

        public void update(){
            SQLiteDatabase db = mHelper.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("age",20);
            db.update(Constants.TABLE_NAME,values,null,null);
            db.close();
        }
    
    • delete()
        /**
         * Convenience method for deleting rows in the database.
         *
         * @param table the table to delete from
         * @param whereClause the optional WHERE clause to apply when deleting.
         *            Passing null will delete all rows.
         * @param whereArgs You may include ?s in the where clause, which
         *            will be replaced by the values from whereArgs. The values
         *            will be bound as Strings.
         * @return the number of rows affected if a whereClause is passed in, 0
         *         otherwise. To remove all rows and get a count pass "1" as the
         *         whereClause.
         */
        public int delete(String table, String whereClause, String[] whereArgs) {
            acquireReference();
            try {
                SQLiteStatement statement =  new SQLiteStatement(this, "DELETE FROM " + table +
                        (!TextUtils.isEmpty(whereClause) ? " WHERE " + whereClause : ""), whereArgs);
                try {
                    return statement.executeUpdateDelete();
                } finally {
                    statement.close();
                }
            } finally {
                releaseReference();
            }
        }
    

    在Dao类中调用delete()方法

            SQLiteDatabase db = mHelper.getWritableDatabase();
    /*        String sql = "delete from "+Constants.TABLE_NAME+" where age = 60";
            db.execSQL(sql);*/
            int delete = db.delete(Constants.TABLE_NAME, null, null);
            Log.d(TAG,"detele_result = "+delete);
            db.close();
    
    • query()
        /**
         * Query the given URL, returning a {@link Cursor} over the result set.
         *
         * @param distinct true if you want each row to be unique, false otherwise.
         * @param table The table name to compile the query against.
         * @param columns A list of which columns to return. Passing null will
         *            return all columns, which is discouraged to prevent reading
         *            data from storage that isn't going to be used.
         * @param selection A filter declaring which rows to return, formatted as an
         *            SQL WHERE clause (excluding the WHERE itself). Passing null
         *            will return all rows for the given table.
         * @param selectionArgs You may include ?s in selection, which will be
         *         replaced by the values from selectionArgs, in order that they
         *         appear in the selection. The values will be bound as Strings.
         * @param groupBy A filter declaring how to group rows, formatted as an SQL
         *            GROUP BY clause (excluding the GROUP BY itself). Passing null
         *            will cause the rows to not be grouped.
         * @param having A filter declare which row groups to include in the cursor,
         *            if row grouping is being used, formatted as an SQL HAVING
         *            clause (excluding the HAVING itself). Passing null will cause
         *            all row groups to be included, and is required when row
         *            grouping is not being used.
         * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
         *            (excluding the ORDER BY itself). Passing null will use the
         *            default sort order, which may be unordered.
         * @param limit Limits the number of rows returned by the query,
         *            formatted as LIMIT clause. Passing null denotes no LIMIT clause.
         * @return A {@link Cursor} object, which is positioned before the first entry. Note that
         * {@link Cursor}s are not synchronized, see the documentation for more details.
         * @see Cursor
         */
        public Cursor query(boolean distinct, String table, String[] columns,
                String selection, String[] selectionArgs, String groupBy,
                String having, String orderBy, String limit) {
            return queryWithFactory(null, distinct, table, columns, selection, selectionArgs,
                    groupBy, having, orderBy, limit, null);
        }
    

    在Dao类调用Query()方法

     public void query(){
            SQLiteDatabase db = mHelper.getWritableDatabase();
          /*String sql = "select * from "+Constants.TABLE_NAME;
            Cursor cursor = db.rawQuery(sql, null);
    	  */
            Cursor cursor1 = db.query(false, Constants.TABLE_NAME, null, null, null, null, null, null, null);
            while (cursor1.moveToNext()){
                int index = cursor1.getColumnIndex("name");
                String name = cursor1.getString(index);
                Log.d(TAG,"name = "+name);
            }
            cursor1.close();
            db.close();
    
        }
    

    5. 数据库的事务

    特点:安全性、高效性

    安全性:银行转账的例子。

    //不开启事务,会出现一方扣钱,一方未加钱的事情发生。
    //开启事务,要么成功转账,要么失败后金额不变
    public void testUpdate(){
    	DatabaseHelper helper = new DatabaseHelper(getContext());
    	SQLiteDatabase db = helper.getReadableDatabase();
    	 //开始事务
    	 db.beginTransaction();
    	 try{
    	 	db.execSQL("update account set money =10000-12 where name = 'company'");
    	 	//故意让此处发生异常
    	 	int i = 10/0;
    	 	db.execSQL("update account set money = 10+12 where name = 'Tom'");
    	 	db.setTransactionSuccessful();
    	 }catch(Exception e){
    	 	//处理异常
    	 	throw new RuntimeException("发生了异常");
    	 }finally{
    	 	db.endTransaction();
    	 	db.close();
    	 }
    }
    

    高效性:同样是插入6000条数据,看时间

    //正常插入数据的时间:15204ms
    public void TestInsert(){
    	DatabaseHelper helper = new DatabaseHelper(getContext());
    	SQLiteDatabase db = helper.getReadableDatabase();
    	long start = System.currentTimeMillis();
    	db.beginTransaction();
    	for(int i = 0 ;i < 3000;i++){
    		db.insert("insert into account values (1,'company','100000')");
    		db.insert("insert into account values (1,'Tom','10')");
    	}
    	db.endTransaction();
    	long end = System.currentTimeMillis();
    	Log.d("Test","耗时为:"+(end-start))
    }
    
    
    //开启事务后插入数据的耗时:218ms
    public void TestInsert(){
    	DatabaseHelper helper = new DatabaseHelper(getContext());
    	SQLiteDatabase db = helper.getReadableDatabase();
    	long start = System.currentTimeMillis();
    	for(int i = 0 ;i < 3000;i++){
    		db.insert("insert into account values (1,'company','100000')");
    		db.insert("insert into account values (1,'Tom','10')");
    	}
    	long end = System.currentTimeMillis();
    	Log.d("Test","耗时为:"+(end-start))
    }
    

    仅为学习过程中的记录,方便自己以后查阅,也希望能帮助到每一位查阅者。

    展开全文
  • 主流数据库之索引及其例子

    千次阅读 多人点赞 2022-04-10 22:36:25
    数据库中使用索引的优缺点: 索引分类 普通索引 唯─性索引 主键索引 全文索引 空间索引 其他分类 索引设置的基本原则 创建索引 使用CREATE INDEX语句建立索引 创建表时创建索引 修改表时创建索引 ...
  • 在SQL server:中,每个表都属于数据库中称为数据库模式的一组对象。 它是容器或命名空间(查询Microsoft SQL Server 2012)默认情况下,SQL Server中的所有表都属于名为dbo的默认架构。 查询尚未分配给任何特定模式...
  • django models 连接 sqlite 数据库 django 版本为 1.11.7 在 blog 项目下创建一个 app article :python manage.py startapp article 在 blog 项目结构下会多出一个 article 目录 在 article 下面的 models.py 文件中...
  • 摘要:Delphi源码,数据库应用,创建临时表 Delphi演示数据库的临时表应用例子,需要测试数据库支持,不过对于初学者来说,参考下代码也是挺有用的。 运行环境:Visual Studio2010
  • db2创建数据库实例

    2011-01-19 15:37:45
    CREATE DATABASE "iufo" ON '/home/db2inst1' ALIAS "iufo" USING CODESET GBK TERRITORY CN COLLATE USING System NUMSEGS 1 DFT_EXTENT_SZ 32 CATALOG TABLESPACE MANAGED BY SYSTEM USING('/home/db2inst1/...
  • 一个php无限分类的例子,包含了创建数据库及表 本分类方法的优势: 1,数据库结构简单,只有 cid parentid name 三个字段,无任何冗余字段 2,不使用递归查询,所有操作只需一条sql语句 3,所有数据在读取一次...
  • 1.创建数据库 登录MySQL服务后使用create命令创建数据库 CREATE DATABASE 数据库名称; 举例创建一个简单的数据库,RUNOOB [root@host]# mysql -u root -p Enter password:****** # 登录后进入终端 ...
  • 本篇文章给大家带来的内容是关于如何在Mysql创建一个数据库,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在Mysql中为了更加的清晰的工作,所以定制一套规范和几个常用的命令。下面我将来学习...
  • navicat 创建数据库表步骤

    万次阅读 2020-09-13 20:43:35
    create table t_student( uid int(10) not null auto_increment, uname varchar(100) not null, pwd varchar(100) not null, sex char(2) not null, age int(3), birth date, primary key(uid) ...
  • 使用create database语句创建数据库的步骤如下:1.指定一个实例标识符SID2.确保设置了必要的环境变量3.选择一个数据库管理员验证方法4.创建一个初始化参数文件5.(只用于windows平台)创建一个实例6.连接实例7.创建一个...
  • MySQL Create Database 创建数据库

    千次阅读 2021-01-18 19:13:23
    创建数据库CREATE DATABASE 语法用于创建一个数据库。语法:CREATE DATABASE db_namePHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句。关于 mysql_query() 函数更详细信息请参看《MySQL ...
  • 使用SQL语句创建数据库和数据库表

    千次阅读 2020-04-07 12:02:47
    使用SQL语句创建数据库和数据库表 内容如下: 创建数据库 创建数据库表 1.创建数据库的语句 创建数据库,需要创建数据库的数据文件和日志文件 其中一些语句含义如下: 语句 代表含义 name 逻辑文件名 ...
  • 用T-SQL语句创建数据库

    千次阅读 2020-03-04 14:44:08
    1.用T-SQL语句创建数据库 CREATE DATABASE 数据库名 --创建数据库 ON PRIMARY ( <数据文件参数>[,…n][文件组参数] ) LOG ON ( <日志文件参数>[,…n] ) 示例: 创建完成。 ...
  • 简单运用PowerDesigner创建数据库

    千次阅读 2021-04-29 09:08:45
    以下是运用PowerDesigner创建数据库的步骤,按顺序操作下去 1、打开PowerDesigner后可选择到左上角第一个(CreateModel),也可选择到左下角Do Not Show page Again(不再弹出此页面,不过打开软件后需自行创建[点击...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 564,577
精华内容 225,830
关键字:

创建数据库例子