database exists(怎么用create database语句创建数据库)
本文目录
- 怎么用create database语句创建数据库
- MySQL 返回: #1273 - Unknown collation: ’’
- DROP DATABASE IF EXISTS
- 数据库sql语句中为什么exists关键字 要比 in 关键字执行效率高
- Studio中怎么使用已经有的SQLite数据库
怎么用create database语句创建数据库
直接可登录数据库先,然后举例在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句CREATE DATABASE test_db,即可创建一个数据库,输入的 SQL 语句与执行结果如下。mysql》 CREATE DATABASE test_db;Query OK, 1 row affected (0.12 sec);“Query OK, 1 row affected (0.12 sec);”提示中,“Query OK”表示上面的命令执行成功,“1 row affected”表示操作只影响了数据库中一行的记录,“0.12 sec”则记录了操作执行的时间。若再次输入CREATE DATABASE test_db;语句,则系统会给出错误提示信息,如下所示:mysql》 CREATE DATABASE test_db;ERROR 1007 (HY000): Can’t create database ’test_db’; database exists提示不能创建“test_db”数据库,数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。可以加上IF NOT EXISTS从句,就可以避免类似错误,如下所示:mysql》 CREATE DATABASE IF NOT EXISTS test_db;Query OK, 1 row affected (0.12 sec)
MySQL 返回: #1273 - Unknown collation: ’’
这个应该是数据库的数据类型不一致导致的追问: 怎么说类型不一致?那种类型?我是数据库小白,请教回答: 你提到了字符集是GBK 那你上传的数据库的字符集呢?追问: 应该是gbk,要不就是gb2312,没有utf8我到出的时候,几个网站的数据都一起导出的,一个sql文件。回答: 几个网站的数据?一个库就一个SQL吧追问: 恩啊,我用phpmyadmin里面导出的,里面放着好几个站的数据,我导出的时候全选的,所以都导到一个文件里面去了。现在让分开我都分不开了,不会,全部导进去就出现这个错误。 回答: ……你这几个站的数据到底是个什么概念,几个数据库,还是就是一个数据库吗?追问: phpmyadmin知道吧,里面都可以放n个网站,我导出的时候,不是一个网站一个数据库导出的,而且全选所有网站导出的。我想应该是几个网站几个数据库,我导出就只得到一个localhost.sql文件,40M多。回答: 囧,你说几个网站有意义吗,直接说是几个数据库不就明白了麽。你检查下几个数据库的编码字符集追问: 先别囧呢,怎么检查呢?我现在还都不会分离呢,检查都不会,菜鸟一枚。嘿嘿。所有数据都在localhost.sql这个文件里面,以前数据应该不是gbk就是gb2312 回答: 你直接上phpmyadmin去看数据库结构啊追问: 大哥啊,里面全是英文,我看不懂!回答: 追问: 汗……你这个不是登陆phpmyadmin的页面吗?我知道里面有中文的,我也选择的是这个,我想知道的是怎么会出现这个问题,还有怎么解压分离数据库。 回答: 一般#1273 - Unknown collation: ’’这个错误的出现是因为字符集的问题,有可能是你的MYSQL没有安装utf8的字符集如果错误是#1273 - Unknown collation: ’gbk_unicode_ci’将phpMyAdmin目录下的config.inc.php删除掉就可以解决了追问: 我这个问题是因为选择字符集“gbk”和“gb2312”出现的,可是,当我选择“utf8”的时候是出现以下的问题:SQL 查询: CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;MySQL 返回: #1007 - Can’t create database ’test’; database exists 弄得我郁闷不已。回答: #1007 - Can’t create database ’test’; database exists 不能创建数据库’test’;数据库已存在追问: 我查过,但是不敢删了,怕删了就出错了。等着我实在找不到办法就把数据库里面的都删了,看看再倒入看看能不能行。不管咋样,谢谢你了O(∩_∩)O~ 回答: 反正保留备份就好,不怕数据丢失
DROP DATABASE IF EXISTS
一般droptableifexists是数据库里面的,后面接表名如:droptableifexistsxxx_book意思就是:如果数据库中存在xxx_book表,就把它从数据库中drop掉。备份sql中一般都有这样的语句,如果是数据库中有这个表,先drop掉,然后create表,然后再进行数据插入。
数据库sql语句中为什么exists关键字 要比 in 关键字执行效率高
exists是根据子查询有无记录返回确定条件是否成立,如果有记录返回,条件成立,如果子查询未返回记录,条件不成立,不对子查询结果进行匹配,所以速度较快;in要对子查询返回的结果用in关键字前面的值逐个进行匹配,如果匹配成功条件成立,匹配不成功条件不成立,所以速度较慢。
Studio中怎么使用已经有的SQLite数据库
可以尝试把db文件放到assets文件夹下,直接当做资源来读取。参考一下代码:public class DataBaseHelper extends SQLiteOpenHelper {private Context mycontext;//private String DB_PATH = mycontext.getApplicationContext().getPackageName()+“/databases/“;private static String DB_NAME = “(datbasename).sqlite“;//拓展名可以是.sqlite 或者是 .dbpublic SQLiteDatabase myDataBase;/*private String DB_PATH = “/data/data/“+ mycontext.getApplicationContext().getPackageName()+ “/databases/“;*/public DataBaseHelper(Context context) throws IOException {super(context,DB_NAME,null,1);this.mycontext=context;boolean dbexist = checkdatabase();//首先判断下db是不是存在 存在的话就直接使用了if (dbexist) {//System.out.println(“Database exists“);opendatabase(); //直接打开} else {System.out.println(“Database doesn’t exist“);createdatabase();//否则的话才去创建新的db}}public void createdatabase() throws IOException {boolean dbexist = checkdatabase();if(dbexist) {//System.out.println(“ Database exists.“);} else {this.getReadableDatabase();try {copydatabase();} catch(IOException e) {throw new Error(“Error copying database“);}}} private boolean checkdatabase() {//SQLiteDatabase checkdb = null;boolean checkdb = false;try {String myPath = DB_PATH + DB_NAME;File dbfile = new File(myPath);//checkdb = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE);checkdb = dbfile.exists();} catch(SQLiteException e) {System.out.println(“Database doesn’t exist“);}return checkdb;}private void copydatabase() throws IOException {//Open your local db as the input streamInputStream myinput = mycontext.getAssets().open(DB_NAME);// Path to the just created empty dbString outfilename = DB_PATH + DB_NAME;//Open the empty db as the output streamOutputStream myoutput = new FileOutputStream(“/data/data/(packagename)/databases /(datbasename).sqlite“);// transfer byte to inputfile to outputfilebyte buffer = new byte;int length;while ((length = myinput.read(buffer))》0) {myoutput.write(buffer,0,length);}//Close the streamsmyoutput.flush();myoutput.close();myinput.close();}public void opendatabase() throws SQLException {//Open the databaseString mypath = DB_PATH + DB_NAME;myDataBase = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);}public synchronized void close() {if(myDataBase != null) {myDataBase.close();}super.close();}}
更多文章:

layers of fear 2(steam恐怖游戏排行榜是怎么样的)
2025年3月25日 15:40

苹果无法验证的app怎么打开?苹果无法验证app完整性怎么解决
2025年2月27日 22:20

corners什么意思中文(cornering是什么意思及反义词)
2025年3月1日 11:00

messenger服务(messenger这个服务开以关吗)
2025年3月21日 08:20

distinct去重多个字段(请问sql高手distinct如何查询多条字段)
2025年2月14日 21:10

spring和spring boot区别(现在springboot的框架跟spring不同之处)
2025年3月27日 07:00

myeclipse是什么意思(MyEclipse是什么意思)
2025年4月1日 03:20

数据分析师要学什么(数据分析师与数据挖掘工程师,分别有什么从业要求)
2025年2月17日 17:10

性能测试流程和每个步骤的工作(作为一名小白,我需要怎么入门性能测试)
2025年3月20日 02:20

trinidad(trinidad是城市名还是国名 如果是城市名那么是哪个国家的城市)
2025年3月31日 23:30

aop ioc 面试怎么回答(面试aop与ioc原理是什么)
2025年3月31日 22:00

equivalency(英文文献上面这个词“equiv“怎么理解)
2025年4月1日 19:00