考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > MySQL数据程序设计 > MySQL 辅导 > 文章内容
  

计算机二级考试MySQL知识点:将数据装入数据库表

中华IT学院   【 】  [ 2017年7月4日 ]

  用文本方式将数据装入一个数据库表

  如果一条一条地输入,很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATETABLE语句中列出的列次序给出,例如:

  abccsf1977-07-07china maryf1978-12-12usatomm1970-09-02usa

  使用下面命令将文本文件“mytable.txt”装载到mytable表中:mysql>LOADDATALOCALINFILE"mytable.txt"INTOTABLEpet;

  再使用如下命令看看是否已将数据输入到数据库表中:mysql>select*frommytable;

  (e129)

  1、删除student_course数据库中的students数据表:

  rm-fstudent_course/students.*

  2、备份数据库:(将数据库test备份)

  mysqldump-uroot-ptest>c:\test.txt

  备份表格:(备份test数据库下的mytable表格)

  mysqldump-uroot-ptestmytable>c:\test.txt

  将备份数据导入到数据库:(导回test数据库)

  mysql-uroot-ptest  3、创建临时表:(建立临时表zengchao)

  createtemporarytablezengchao(namevarchar(10));

  4、创建表是先判断表是否存在

  createtableifnotexistsstudents(……);

  5、从已经有的表中复制表的结构

  createtabletable2select*fromtable1where1<>1;

  6、复制表

  createtabletable2select*fromtable1;

  7、对表重新命名

  altertabletable1renameastable2;

  8、修改列的类型

  altertabletable1modifyidint;//修改列id的类型为int

  altertabletable1changeidsidintunsigned;//修改列id的名字为sid,而且把属性修改为intunsigned

  9、创建索引

  altertabletable1addindexind_id(id);

  createindexind_idontable1(id);

  createuniqueindexind_idontable1(id);//建立唯一性索引

  10、删除索引

  dropindexidx_idontable1;

  altertabletable1dropindexind_id;

  11、联合字符或者多个列(将列id与":"和列name和"="连接)

  selectconcat(id,’:’,name,’=’)fromstudents;

  12、limit(选出10到20条)<第一个记录集的编号是0>

  select*fromstudentsorderbyidlimit9,10;

  13、MySQL不支持的功能

  事务,视图,外键和引用完整性,存储过程和触发器

  14、MySQL会使用索引的操作符号

  <,<=,>=,>,=,between,in,不带%或者_开头的like

  15、使用索引的缺点

  1)减慢增删改数据的速度;

  2)占用磁盘空间;

  3)增加查询优化器的负担;

  当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;

  16、分析索引效率

  方法:在一般的SQL语句前加上explain;

  分析结果的含义:

  1)table:表名;

  2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;

  3)possible_keys:查询可以利用的索引名;

  4)key:实际使用的索引;

  5)key_len:索引中被使用部分的长度(字节);

  6)ref:显示列名字或者"const"(不明白什么意思);

  7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;

  8)extra:MySQL的建议;

  17、使用较短的定长列

  1)尽可能使用较短的数据类型;

  2)尽可能使用定长数据类型;

  a)用char代替varchar,固定长度的数据处理比变长的快些;

  b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;

  c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;

  d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;

  18、使用notnull和enum

  尽量将列定义为notnull,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;

  如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

  19、使用optimizetable

  对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimizetable来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。optimizetable可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;

  20、使用procedureanalyse()

  可以使用procedureanalyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedureanalyse()就可以了;例如:

首页 1 2 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved