【译】构建迁移-up,down,change方法-Phinx教程(2)

【译】构建迁移-up,down,change方法-Phinx教程(2)

技术应用 2年前 (2015-08-26) 浏览: 732 评论: 0

本文由极客人原创翻译自:http://phinx.readthedocs.org,不周之处,敬请指正;系列文章请访问王柏元的博客Phinx标签页或者用极客搜搜索:Phinx 获取所有文章目录 为转换数据库:对数据进行还原或修改,Phinx 是通过一系列的Migrations文件来实现的。每个Migrations文件其实是一个PHP类,构陷一个migration的方法最好是通过Phinx 提供的API,当然,运行原生的SQL语句也是可以的。 新建Phinx Migration 创建一个新的Phinx Migration迁移。我们要在项目文件夹下运行Phinx的 create命令:运行上述命令完毕后,在migrations文件夹(这个文件夹就是你安装phinx时的那个migrations文件夹) 会生成一个文件名为YYYYMMDDHHMMSS_my_new_migration.php的PHP文件,在前14个字符其实当前时间的时间戳。Phinx自动创建一个框架迁移文件有两个空的和一个被注释掉的方法: AbstractMigration类 所有Phinx Migration迁移类都继承于 AbstractMigration类,它提供了必要的支持来创建数据库迁移。数据库迁移可以创建新表,插入行,添加索引和修改列。 up()方法 当你对数据库进行向上迁移(即对数据库进行新的修改时),并且phinx检测到构建的migrations 之前没有被运行时,up()方法会被phinx自动运行。在up()方法中你需要根据你的意图自己写代码来修改数据库。  Down()方法 当你对数据库进行向下迁移(即对数据库的操作进行还原修改),phinx检测到构建的migrations 之前没有被运行时,Down()的方法会被Phinx自动运行。你应该使用down()方法来扭转/撤销数据库的修改。 Change()的方法 Phinx 0.2.0引入了一个新功能,叫做可逆迁移。你只需要定义可逆迁移的 up()方法的逻辑那么Phinx就可以为你自动找出如何向下迁移。定义一个可逆迁移必须取消 change方法的注释、补全里面的方法定义。例如:当执行这个迁移时,Phinx将创建 user_logins表,同时自动实现如何删除表。需要注意的是,当迁移文件中存在change方法时,Phinx会自动忽略了 up()和 down()方法。如果您还需要使用这些方法,建议您创建一个单独的migration文件。 注意: 在创建或更新表内 change()方法必须使用桌子上 create()和 update()方法。Phinx不能自动确定 save()调用创建一个新表或修改一个现有的一个。Phinx的可逆迁移只能反向实现以下的操作: 新建表 重命名表 添加列属性 重命名列属性 添加索引 添加外键 如果一个操作不能逆转,在向下迁移的时候,Phinx就会抛出 IrreversibleMigrationException异常。

java实现webservice+MySQl

java实现webservice+MySQl

算法语言 计算机技术 软件开发 2年前 (2015-06-26) 浏览: 1914 评论: 0

关于webservice 由于之前写过JAVA和PHP的JSON以及JMI的网络服务,这次在使用webservice完成管理待办事项自然就联想到它们。JAVA和PHP JSON、JMI、webservice三者共同之处是可以提供服务器的资源共享。 Web Service具有跨平台性,可以在不同设备、不同编程语言中进行调用,所以它的应用范围应该要比RMI更广 基于MySQl数据库查询的webservice实现管理待办事项列表 运行截图 添加用户: 添加事项: 查询事项: 删除事项: 清空事项: 服务器端代码是怎么实现的 下面介绍一下是怎样实现上述功能的服务端代码:。 我的服务端主要有四个类: 数据库连接及方法接口TodoListInterDbFace、数据库连接及方法实现类TodolistDb及方法实现类以及webservice接口TodoListServerInterface、Webservice实现类TodoListServer。   下面是示意图: 客户端代码是怎么实现的 wsimport -keep http://127.0.0.1:8002/webservice/TodoList?wsdl解析WSDL后: 创建TodoListClient类main方法为:   对于菜单的实现原理请参考我的博客文章:http://wangbaiyuan.cn/java-rmi-6-making-the-command-line-navigation-menu.html

SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义

SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义

算法语言 计算机技术 2年前 (2015-06-12) 浏览: 232 评论: 0

下面的代码是本次实验使用数据库实现RMI会议管理的关键,里面的主要是实现数据库连接和实现相关的查询的方法,这些方法在之前文章的接口代码已经声明,不过没有实质内容。RmiDataBase类继承了meetinginterface接口。 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单 RmiDataBase.java     自定义的异常处理类:BYException.java      

SSD8_Ex3【JAVA_RMI】(4)会议数据库建表

SSD8_Ex3【JAVA_RMI】(4)会议数据库建表

技术应用 算法语言 2年前 (2015-06-11) 浏览: 198 评论: 0

为了更好管理会议和更好更有效率执行删除、添加、查询等操作,本次SSD8_Ex3【JAVA_RMI】,极客人结合数据库系统知识,决定采用数据库来管理会议。因为这次练习的各个题目都是典型的数据库题,虽然它被放在了网络与分布式计算课程上。 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单   会议数据库rmimeeting建表 数据库名:rmimeeting 建表三项:users(用户),meeting(会议),meetingrecord(会议记录) rmimeetingER图 建表语句  

用Navicat制作ER图及与SQL互相转化

用Navicat制作ER图及与SQL互相转化

技术应用 2年前 (2015-05-21) 浏览: 8016 评论: 0

Navicat极客人在数据库学习过程中用过的个人认为最优秀的一款数据库连接、设计、编辑查询软件。它不仅是极客人用过的数据库软件中界面最美观的一款,也是功能最强大、操作最简单的一款,Navicat分别有for MySQL、for MariaDB、for SQL Server、for SQLite、for Oracle 和 for PostgreSQL等多个单一数据库版本,同时也有Navicat Premium这个综合版本,Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库,支持大部分在现今数据库管理系统中使用的功能,包括存储过程、事件、触发器、函数、视图等,同时可以在这款软件中为数据库添加用户、设置权限。 极客人使用Navicat除了以上常见功能外,还会使用navicat进行数据库数据备份、同步,将王柏元的博客上虚拟机数据库的数据备份、同步到本地,或者用navicat进行网站搬家。本人主要介绍怎样用Navicat制作ER图及与SQL互相转化:将数据库表导出成ER图和将ER图导出为SQL语句(这个功能也是极客人无意发现的,刚刚学习,欢迎共同交流!)。 一、用Navicat制作ER图   分别打开navicat的“模型”——“新建模型”   二、将ER图导出为SQL语句 如图 打开工具——导出SQL 这样只要设计出ER图,所有的建表语句,包括主键、外键关系,Navicat将自动为我们生成。 三、将现成的数据库转换为ER图 选中已连接的数据库中 数据表——右键,选择“逆向数据库到模型”,即可根据现成的数据库生成ER图模型。  

SSD7_EX2【SQL】

SSD7_EX2【SQL】

算法语言 3年前 (2015-04-30) 浏览: 616 评论: 0

这是SSD7练习的EX2,预计极客人将会写一个系列,更新频率会和NWPU数据库系统实验课2013级进度同步。点击标签或在本站搜索“SSD7”即可获取已更新的SSD7答案。上一练习:SSD7_EX1【关系型数据库】 运行给定的SQL脚本来创建一个图书馆的数据库。注意,Book表中的每一行指的是一本书的副本。 因此, 如果一个数据库有三本"DBMS", 那么Book表中将会有三行,一行一个副本。 编写SQL语句来完成下列操作。(注意:对于每个操作,你必须用一条SQL语句来表达你的查询。 但是在一个语句中可以含有子查询): 英语原文:Run the SQL script given to you to create a Library database. Note that each row in the Book table denotes a book copy. Thus, if the library carries three copies of the title "DBMS", there will be three rows in the Book table, one for each copy. Write the SQL statements to do the following against the database (Note: You must express your query in a single SQL statement for each of the following. However, that statement could have sub-queries.):   作业还是自己做的好,以下是我做的结果,作交流学习之用,不要盲目抄袭,东西学会了才是自己的!如果答案有纰漏,欢迎指正,水平有限,仅供参考: 1. 列出"Churchill"写的所有的书的书名,以及它们的出版日期。   2. 检索出名为"John" 或 "Susan" 的会员借出的所有书的书名。   3. 列出那些已借了"Iliad"和"Odyssey"这两本书的所有会员的姓名和ID。   4. 列出那些已借了"Collins"写的所有的书的所有会员的姓名和ID。假设,一名会员或许已经借了多本同样的书。   5. 找出那些借了一本姓"Tanenbaum"的作者写的书的所有会员的电话号码   6. 找出那些借了至少三本书的成员,并列出它们的姓名,ID 以及他们借出的书的数量。 按借出书的数量将序排列找到的结果。   7. 列出没有借任何书的会员   8. 以字母序列出那些匹兹堡居民(电话号码以"412"开头)并且没有并且没有"Pitt Roads"这本书的会员的名。  

SSD7_EX1【关系型数据库】

SSD7_EX1【关系型数据库】

算法语言 3年前 (2015-04-28) 浏览: 211 评论: 0

第一部分(PART1): 1.按照以下要求标识出每个关系的关键字(主键、备用键、外键)。对于此练习,选择关键字的时候可以忽略性能因素。  1)标识出每个关系的主键,如果没有主键,做适当的论述证明你的答案。  2)标识出每个关系的备用键,如果没有备用键,做适当的论述证明你的答案。  3)标识出每个关系的外键和完整性约束,并做适当的论述证明你的答案。 2.列出每个关系的属性名,和每个属性的域(数据类型和格式),并做适当的论述证明你的答案。 在每一个HTML表格中,列出至少四行正确的数据(可自己假设,要求合理、符合实际即可),将你的答案书写在一个名为BookPublisher.html的HTML页面中提交: BookPublisher.html: Books Primary Author<varchar(20)> Title<varchar(50)> ISBN(Primary Key)<char(12)> PublisherID(FOREIGN Key)<int> Edition<varchar(10)> Date of Publication<date> Price<float(4, 2)> Book Description<varchar(200)> 赵静 数学建模与数学实验 9787040400038 1 第4版 2000.11 22.00 指导数学建模与数学实验 许建平 英汉互译实践与技巧 9787302146728 2 第4版 2012.8 38.00 本书是为非英语专业的大学生及研究生编写的英汉互译教程。 庄茁 基于ABAQUS的有限元分析和应用 9787302188162 2 第2版 2006.5 69.00 《基于ABAQUS的有限元分析和应用》是基于ABAQUS软件6.7版本进行有限元分析与应用的入门指南和工程分析与科学研究教程 王正林 精通MATLAB 9787121187315 3 第3版 2013.1 69.00 紧密结合实例,对MATLAB的使用进行了全面且详尽的阐述,并通过大量的实例讲述如何实现MATLAB的基本操作和实际使用。 路遥 平凡的世界(套装共3册) 9787530212004 4 第1版 2012.3 26.60 《平凡的世界(套装共3册)》是一部现实主义小说,也是小说化的家族史。 books论述: 上面是Books表的数据,并在列名表明了数据类型及长度和主外键: 1.Primary Author <varchar(20)>:可变字符串,最长20 完整性约束:PrimaryAuthor VARCHAR(20) NOT NULL DEFAULT "未知作者", 2.Title <varchar(50)>:可变字符串,最长50 Title VARCHAR(50) NOT NULL DEFAULT "默认标题", 3.ISBN <char(12)>(Primary Key):主键,因为ISBN对于每本书是唯一的,满足主键是唯一且不为空的条件,用以标识唯一一本书。 ISBN CHAR(13) NOT NULL DEFAULT "0000000000000" PRIMARY KEY, 4.PublisherID<int>(FOREIGN Key):int类型、外键, PublisherID INT(4) NOT NULL DEFAULT 0 , FOREIGN KEY (PublisherID) REFERENCES publisher(PublisherID) 因为Books和Publishers表拥有相同的属性PublisherID,并且PublisherID是Publishers表的主键,使用其作为外键,两个表就可以建立联系 ; 5.Edition<varchar(10)>:可变字符串,最长10 Edition VARCHAR(10) NOT NULL DEFAULT 0 , 6.Date of Publication <date>:日期类型 DateofPublication DATE NOT NULL DEFAULT '1970-01-01' , 7.Price<float(4, 2)>:float类型,小数点两位 Price float(4, 2) NOT NULL DEFAULT 0 , 8.Book Description<varchar(200)>:可变字符串,最长200 BookDescription varchar(200) NOT NULL DEFAULT '描述为空' , 主键(PK): ISBN,因为ISBN对于每本书是唯一的,满足主键是唯一且不为空的条件,用以标识唯一一本书。 外键(FK): PublisherID为Books和Publishers表拥有相同的属性PublisherID,并且PublisherID是Publishers表的主键,使用其作为外键,两个表就可以建立联系 ; 备用键(AK):没有备用键,除主键ISBN外其他列都无法唯一标识一本书,存在相同标题、出版社、价格、出版时间等的书籍。 Publishers PublisherID (Primary Key)<int> Name<varchar(50)> Address<varchar(100)> 04 高等教育出版社 北京市西城区德胜门外大街4号 302 清华大学出版社 北京市海淀区清华大学出版社 5053 电子工业出版社 北京市丰台区万寿路南口金家村288号华信大厦 5302 北京十月文艺出版社 北京市海淀区十月文艺出版社 1.PublisherID <int>(Primary Key):主键,因为PublisherID可以唯一标识出版社; 2.Name<varchar(50)>:可变字符串,最长50; 3.Address <varchar(100)>:可变字符串,最长100。 主键(PK):PublisherID,因为PublisherID可以唯一标识出版社; 外键(FK):显然没有; 备用键(AK):Name,出版社名可以唯一标识出版社。 第二部分(part-2) 按照要求书写SQL语句,将你的答案书写在一个名为createDB.Sql的文件中提交。 1)使用CREATE TABLE关键字创建两个关系,要求标识出每个关系的主键和备用键。 2)使用INSERT关键字向每个关系中插入四行数据(第一你部分列出的数据)。 3)书写SQL语句查询出某两个作者…… 4)书写SQL语句查询出某本书的出版社名字。 文件createDB.Sql:  文件Rel-ops.txt:

MySQL数据库的数据类型

MySQL数据库的数据类型

算法语言 3年前 (2015-04-28) 浏览: 93 评论: 0

数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则。Mysql的常用数据类型主要有: 一、串数据类型 最常用的数据类型,有两种基本的串类型:分别为定长串和不定长串。定长串结束长度固定的字符,其长度是创建表是指定的,不允许多于指定的字符数据,它们分配的存储空间与指定的一样多,CHAR属于定长串类型。变长串存储长度可变的文本,有些变长数据类型具有最大的定长,而有些则是完全变长的,不管哪种只有指定的数据得到保存(不会添加额外的空格保存),TEXT属于变长串类型。变长数据类型灵活,定长数据类型高效,Mysql处理定长数据类型比变长列快很多,Mysql不允许对变长列(或一个列的可变部分)进行索引,这会极大影响性能。具体类型描述如下表: 数据类型 说明 CHAR 1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1) VARCHAR 可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串 TINYTEXT 同TEXT,最大长度为255字节 MEDUIMTEXT 同TEXT,最大长度为16K TEXT 最大长度为64K的变长文本 LONGTEXT 同Text,最大长度为4GB(纯文本,一般不会到4G) ENUM 接受最多64K个串组成的预定义集合的某个串 SET 接受最多64K个串组成的预定义集合的零个或多个串 注意:不管任何形式的串数据类型,串值都必须在引号内(通常单引号更好);如果数值是计算中使用的数值,则应存储在数值数据类型列中,如果作为字符串使用(如电话号码、邮政编码)则应保存在串数据类型列中。 二、数值数据类型: 存储数值,每种类型具有不同的存储范围,支持取值范围越大,所需存储空间越多。所有数值类型(除BIT和Boolean外)都可以有符号或无符号,有符号数据列可存储正或负的数值,默认情况为有符号。 类型说明 存储需求 取值范围 tinyint[(m)] 1字节 有符号值:-128 到127(- 2^7 到2^7 – 1)无符号值:0到255(0 到2^8 – 1) smallint[(m)] 2字节 有符号值:-32768 到32767(- 2^15 到2^15 – 1)无符号值:0到65535(0 到21 6 – 1) mediumint[(m)] 3字节 有符号值:-8388608 到8388607(- 2^23 到2^23 – 1 )无符号值:0到16777215(0 到2^24 – 1) int[(m)] 4字节 有符号值:-2147683648 到2147683647(- 2^31 到2^31- 1)无符号值:0到4294967295(0 到2^32 – 1) bigint[(m)] 8字节 有符号值:-9223372036854775808 到9223373036854775807(- 2^63到2^63-1)无符号值:0到18446744073709551615(0到2^64 – 1) float[(m, d)] 4字节 最小非零值:±1.175494351e – 38 double[(m, d)] 8字节 最小非零值:±2.2250738585072014e – 308 decimal (m, d) m字节(mysql < 3.23),m+2字节(mysql > 3.23 ) 可变;其值的范围依赖于m 和d mysql提供了5种整型: tinyint、smallint、mediumint、int和bigint(字节数1、2、3、4、8),这些类型在可表示的取值范围上是不同的。整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。 mysql 提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。 在选择了某种数值类型时,应该考虑所要表示的值的范围,只需选择能覆盖要取值的范围的最小类型即可。选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。对于整型值,如果数据取值范围较小,如人员年龄或兄弟姐妹数,则tinyint最合适。mediumint能够表示数百万的值并且可用于更多类型的值,但存储代价较大。bigint在全部整型中取值范围最大,而且需要的存储空间是表示范围次大的整型int类型的两倍,因此只在确实需要时才用。对于浮点值,double占用float的两倍空间。除非特别需要高精度或范围极大的值,一般应使用只用一半存储代价的float型来表示数据。 在定义整型列时,可以指定可选的显示尺寸m。如果这样,m应该是一个1 到255的整数。它表示用来显示列中值的字符数。例如,mediumint(4)指定了一个具有4个字符显示宽度的mediumint列。如果定义了一个没有明确宽度的整数列,将会自动分配给它一个缺省的宽度。缺省值为每种类型的"最长"值的长度。如果某个特定值的可打印表示需要不止m个字符,则显示完全的值;不会将值截断以适合m个字符。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。 对每种浮点类型,可指定一个最大的显示尺寸m 和小数位数d。m 的值应该取1 到255。d的值可为0 到3 0,但是不应大于m – 2(如果熟悉odbc 术语,就会知道m 和d 对应于odbc 概念的"精度"和"小数点位数")。m和d对float和double 都是可选的,但对于decimal是必须的。在选项m 和d时,如果省略了它们,则使用缺省值。 三、日期和时间数据类型: MySQl中有多种表示日期和时间的数据类型。其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践。具体如下表: 数据类型 存储字节数 取值范围 DATE 4 1000-01-01——9999-12-31 TIME 3 -838:59:59——838:59:59 DATETIME 8 1000-01-01 00:00:00——9999-12-31 23:59:59 TIMESTAMP 4 19700101080001——20380119111407 YEAR 1 1901——2155 当插入值超出有效取值范围时,系统会报错,并将零值插入到数据库中。 1.MySQL是以YYYY-MM-DD格式来显示DATE类型的值,插入数据时,数据可以保持这种格式。另外,MySQL还支持一些不严格的语法格式,分隔符"-"可以用"@"、"."等符号来替代。 在插入数据时,也可以使用"YY-MM-DD"格式,YY转化成对应的年份的规则与YEAR类型类似。如果我们想插入当前系统的时间,则可以插入CURRENT_DATE或者NOW()。 2.TIME类型表示为"时:分:秒",尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩发了,而且支持负值。对TIME类型赋值,标准格式是'HH:MM:SS',但不一定非要是这种格式。 如果插入的是'D HH:MM:SS'格式,则类似插入了'(D*24+HH):MM:SS'。比如插入'2 23:50:50',相当于插入了'71:50:50'。如果插入的是'HH:MM'或'SS'格式,则效果是其他未被表示位的值赋为零值。比如插入'30',相当于插入了'00:00:30';如果插入'11:25',相当于插入了'11:25:00'。在MySQl中,对于'HHMMSS'格式,系统能够自动转化为标准格式。如果我们想插入当前系统的时间,则可以插入CURRENT_TIME或者NOW()。 3.DATETIME类型准格式为"YYYY-MM-DD HH:MM:SS",具体赋值方法与上面的方法相似。 4.TIMESTAMP的取值范围比较小,没有DATETIME的取值范围大,因此输入值时一定要保证在TIMESTAMP的范围之内。它的插入也与插入其他日期和时间数据类型类似。那么TIMESTAMP类型如何插入当前时间?第一,可以使用CURRENT_TIMESTAMP;第二,输入NULL,系统自动输入当前的TIMESTAMP;第三,无任何输入,系统自动输入当前的TIMESTAMP。 另外有很特殊的一点:TIMESTAMP的数值是与时区相关。 5.给YEAR类型复制可以有三种方法: 第一种是直接插入4位字符串或者4位数字; 第二种是插入2位字符串,这种情况下如果插入'00'~'69',则相当于插入2000~2069;如果插入'70'~'99',则相当于插入1970~1999。第二种情况下插入的如果是'0',则与插入'00'效果相同,都是表示2000年; 第三种是插入2位数字,它与第二种(插入两位字符串)不同之处仅在于:如果插入的是一位数字0,则表示的是0000,而不是2000年。所以在给YEAR类型赋值时,一定要分清0和'0',虽然两者相差个引号,但实际效果确实相差了2000年。 四、枚举和集合类型 枚举(ENUM)类型:最多可以定义65535种不同的字符串从中做出选择,只能并且必须选择其中一种,占用存储空间是一个或两个字节,由枚举值的数目决定; 集合(SET)类型:最多可以有64个成员,可以选择其中的零个到不限定的多个,占用存储空间是一个到八个字节,由集合可能的成员数目决定。 举个例子来说,在sql server(WINDOWS平台上强大的数据库平台)中,你可以节约到用一个BIT类型来表示性别(男/女),但MySQL(和PHP搭配之最佳组合)没有BIT,用TINTINT吗?不,可以用ENUM(’帅哥’,’美眉’),只有两种选择,所以只需一个字节——跟TINYINT一样大,但却可以直接用字符串’帅哥’和’美眉’来存取。 五、二进制数据类型: 二进制类型可存储任何数据,如文字、图像、多媒体等。具体类型描述如下: 数据类型 说明 TITYBLOB 最大长度为255字节 BLOB 最大长度为64KB MEDIUMBLOB 最大长度为16MB LONGBLOB 最大长度为4GB

MySql数据库创建、删除与显示版本

MySql数据库创建、删除与显示版本

软件开发 3年前 (2015-04-08) 浏览: 132 评论: 0

4.1 创建数据库 注意:创建数据库之前要先连接Mysql服务器命令:create database <数据库名> 例1:建立一个名为xhkdb的数据库    mysql> create database xhkdb; 例2:创建数据库并分配用户 ①CREATE DATABASE 数据库名;②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。 4.2 显示数据库 命令:show databases (注意:最后有个s)mysql> show databases;注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明: 1、修改MYSQL的配置文件: my.ini里面修改default-character-set=gbk 2、代码运行时修改:    ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk   ②PHP代码:header("Content-Type:text/html;charset=gb2312");   ③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。 4.3 删除数据库 命令:drop database <数据库名> 例如:删除名为 xhkdb的数据库 mysql> drop database xhkdb; 例子1:删除一个已经确定存在的数据库    mysql> drop database drop_database;   Query OK, 0 rows affected (0.00 sec) 例子2:删除一个不确定存在的数据库    mysql> drop database drop_database;   ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist      //发生错误,不能删除'drop_database'数据库,该数据库不存在。   mysql> drop database if exists drop_database;   Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在   mysql> create database drop_database;   Query OK, 1 row affected (0.00 sec)   mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误   Query OK, 0 rows affected (0.00 sec) 4.4 连接数据库 命令: use <数据库名>例如:如果xhkdb数据库存在,尝试存取它:   mysql> use xhkdb;屏幕提示:Database changeduse 语句可以通告MySQL把db_name数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句:   mysql> USE db1;   mysql> SELECT COUNT(*) FROM mytable;   # selects from db1.mytable   mysql> USE db2;   mysql> SELECT COUNT(*) FROM mytable;   # selects from db2.mytable使用USE语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下面的例子可以从db1数据库访问作者表,并从db2数据库访问编辑表:   mysql> USE db1;   mysql> SELECT author_name,editor_name FROM author,db2.editor       ->        WHERE author.editor_id = db2.editor.editor_id;USE语句被设立出来,用于与Sybase相兼容。有些网友问到,连接以后怎么退出。其实,不用退出来,use 数据库后,使用show databases就能查询所有数据库,如果想跳到其他数据库,用   use 其他数据库名字就可以了。 4.5 当前选择的数据库 命令:mysql> select database();MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能? 1.显示MYSQL的版本 mysql> select version(); +-----------------------+ | version()             |

mySQL数据库连接、修改密码、新建用户操作命令

mySQL数据库连接、修改密码、新建用户操作命令

软件开发 3年前 (2015-04-08) 浏览: 95 评论: 0

1、连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:    mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)3、退出MYSQL命令: exit (回车) 2、修改密码 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、给root加个密码ab12。 首先在DOS下进入目录mysql\bin,然后键入以下命令    mysqladmin -u root -password ab12注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、再将root的密码改为djg345。     mysqladmin -u root -p ab12 password djg345 3、增加新用户 注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” 1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:     grant select,insert,update,delete on *.* to [[email protected]”%][email protected]”%[/email]” Identified by “abc”;但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。 2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机), 这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。    grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “abc”;如果你不想test2有密码,可以再打一个命令将密码消掉。    grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “”;

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册