如何在mysql中创建mysql数据库服务器
第一步:创建数据库。
在MySQL命令行中,输入命令CREATEDATABASE;。把命令中的替换为你的数据库的名称。其中不能包含空格。
例如,要创建包含所有美国各州的数据库,可以输入CREATEDATABASEus_states;
注意:命令不必以大写字母输入。
注意:所有MySQL命令必须以";"结束。如果忘记了输入分号,可以在下一行中输入";"让前一命令得到处理。
第二步:
显示可用数据库列表。
输入命令SHOWDATABASES;列出所有已保存的数据库。除了你所创建的数据库外,你还将看到一个mysql数据库和一个test数据库。当前你可以忽略它们。
第三步:
选择你的数据库。
创建数据库后,你需要在对其进行编辑前先选中它。输入命令USEus_states;。你将看到信息Databasechanged,则你可以确认当前的活跃数据库是us_states。
第四步:
创建数据表。
数据表用于保存数据库中的信息。要创建数据表,你需要在初始命令中输入数据表的所有格式化信息。上海网站建设海淘科技提示输入以下命令创建数据表:CREATETABLEstates(idINTNOTNULLPRIMARYKEYAUTO_INCREMENT,stateCHAR(25),populationINT(9));。这将创建名为"states"且包括以下三个域的数据表:id,state和population。
INT命令将使得id域只能保存数字(整数)。
NOTNULL命令保证id域不能为空。
PRIMARYKEY则指定id域作为数据表的键域。作为键域的域不能包含重复的数据。
AUTO_INCREMENT命令将自动分配递增的值到id域,尤其是将自动分配数字到对应域中。
CHAR(字符)和INT(整数)命令指定相关域中可存储的数据类型。命令旁的数字则指定对应域中可以包括多少字符或多大的整数。
第五步:在数据表中创建记录。
我们现在已经创建了数据表,可以开始输入你的数据了。使用以下命令输入你的第一条记录:INSERTINTOstates(id,state,population)VALUES(NULL,‘Alabama’,‘4822023’);
该命令将让数据库把所输入的信息保存到数据表对应的三个域中。
因为id域受到命令NOTNULL的限制,输入NULL作为它的值的话,由于AUTO_INCREMENT命令的作用,将会自动强制其值递增1。
第六步:
创建更多记录。
你可以通过一条命令创建多条记录。要输入下三条记录,可以使用以下命令:INSERTINTOstates(id,state,population)VALUES(NULL,‘Alaska’,‘731449’),(NULL,‘Arizona’,‘6553255’),(NULL,‘Arkansas’,‘2949131’);。这将创建如下数据表:{|border="1"style="margin:1emauto1emauto;"|+你的MySQL数据库!域!!id!!state!!population|-!记录:|1||Alabama||4822023|-!|2||Alaska||731449|-!|3||Arizona||6553255|-!|4||Arkansas||2949131|}
对新数据库运行查询语句。现在我们已经创建了基本的数据库,你可以输入查询语句获取特定的查询结果。首先输入命令:SELECTFROMus_states;。该命令将返回整个数据库,因为命令中使用了"",表示"全部"。
要进行高级查询:输入以下命令:SELECTstate,populationFROMus_statesORDERBYpopulation;。该命令将返回按照人口排序而非字母排序的包括州和人口数两列的一个数据表。其中id域将不会被现实,因为命令中只要求查询state和population记录。
要按照人口逆向排序列出州记录,输入以下命令SELECTstate,populationFROMus_statesORDERBYpopulationDESC;。其中的DESC命令将按照递减顺序对记录进行排列,即按照数值由高到低而非由低到高排列。
第七步:
以下为常用的数据类型:(要获得相关信息的完整列表,查看mysql文档http://devmysqlcom/doc/)
CHAR(length)-固定长度字符串
VARCHAR(length)-最大长度为length的可变长度字符串
TEXT-最大长度为64KB的文本大小的可变长度字符串。
INT(length)-最大为length位数字的32位整数(对于负数,'-'也被算作一位'数字'。)
DECIMAL(length,dec)-对多总共可现实length位字符的十进制小数。其中dec域指定最多可允许的小数位。
DATE-日期值(年,月,日)
TIME-时间值(时,分,秒)
ENUM("value1","value2",)-枚举值列表。
这种架构一般用在以下三类场景
1 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。
2 用来聚合前端多个 Server 的分片数据。
同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。
3 汇总并合并多个 Server 的数据
第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?
0条评论