MySQL学习2

数据库的导入导出

1.cmd命令:找到安装mysql的路径,如:F:\tool\phpstudy\PHPTutorial\MySQL\bin
2.导出:输入导出命令:
如:F:\tool\phpstudy\PHPTutorial\MySQL\bin> mysqldump -uroot -p***** security > sc.sql

注: 此处-uroot,-u后跟用户名(root)-p后跟用户密码(******)sc为目标数据库名,sc.sql为保存sql脚本的名称。自定义;在上述导出的sc.sql文件存放在F:\tool\phpstudy\PHPTutorial\MySQL\bin下。若加上-A 则为导出所有数据库
3.导入:输入导入命令

  • 方式一:F:\tool\phpstudy\PHPTutorial\MySQL\bin> mysql -uroot -p****** >>sc.sql sctarget
    此处,sc.sql为需要导入的sql脚本文件,sctarget为目标数据库,即将sc.sql导入到sctarget数据库中
    实现时卡了,放弃了。
  • 方式二:
    1)cmd进入mysql安装路径,如F:\tool\phpstudy\PHPTutorial\MySQL\bin
    2)输入mysql -uroot -p******回车
    3)输入命令use sctarget回车
    4)输入:source F:/tool/phpstudy/PHPTutorial/MySQL/bin/sc.sql;回车
    use sctarget是指:打开目标数据库sctargetsource F:/tool/phpstudy/PHPTutorial/MySQL/bin/sc.sql;是指:被导入的脚本文件dback.sql所在的路径源;
    先查看一下内容,如图所示,为空:

    导入:

    已经导入成功:

存储引擎

概念:

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

MySQL服务的默认引擎是 InnoDB

MySql中的存储引擎

1.MyISAM:这种引擎是mysql最早提供的。这种引擎又可以分为静态MyISAM、动态MyISAM和压缩MyISAM三种:

  • 静态MyISAM:如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型。因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。当数据受损时,恢复工作也比较容易做。
  • 动态MyISAM:如果数据表中出现varchar、xxxtext或xxxBLOB字段时,服务器将自动选择这种表类型。相对于静态MyISAM,这种表存储空间比较小,但由于每条记录的长度不一,所以多次修改数据后,数据表中的数据就可能离散的存储在内存中,进而导致执行效率下降。同时,内存中也可能会出现很多碎片。因此,这种类型的表要经常用optimize table 命令或优化工具来进行碎片整理。
  • 压缩MyISAM:以上说到的两种类型的表都可以用myisamchk工具压缩。这种类型的表进一步减小了占用的存储,但是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先时行解压缩。 但是,不管是何种MyISAM表,目前它都不支持事务,行级锁和外键约束的功能。
    2.MyISAM Merge引擎:这种类型是MyISAM类型的一种变种。合并表是将几个相同的MyISAM表合并为一个虚表。常应用于日志和数据仓库。
    3.InnoDB:InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能。
    4.memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存取速度非常快。因为是存在于内存中,所以这种类型常应用于临时表中。
    5.archive:这种类型只支持select 和 insert语句,而且不支持索引。常应用于日志记录和聚合分析方面。 当然MySql支持的表类型不止上面几种。

mysql复制表和复制表结构

1.结构复制:

  • 方法一:create table 新表 select * from 旧表 where 1<>1;

    查看users表的表结构:

如图所示,成功复制结构。

  • 方法二:create table新表 like 旧表;

2.整表复制: create table 新表 select * from 旧表;

内容如下:


3.得到建表语句: show create table 旧表;

4.INSERT INTO 方法复制数据到新表:

  • 复制旧表的数据到新表(假设两个表结构一样) insert into 新表 select * from 旧表;
  • 复制旧表的数据到新表(假设两个表结构不一样) insert into 新表(字段1,字段2,…….) select 字段1,字段2,…… from 旧表;

此例表结构一样的,都源于security.users


相关函数

1.可使用常见的算术操作符。
注意:就 -、 +和 *而言, 若两个参数均为正数,则其计算结果的精确度为 BIGINT (64比特),若其中一个参数为无符号整数, 而其它参数也是整数, 则结果为无符号整数。如: mysql> SELECT 3+5;
2.DIV整数除法。 类似于 FLOOR(),然而使用BIGINT 算法也是可靠的。
注意:数学函数若发生错误,所有数学函数会返回 NULL 。如除0错误:select 5/0;


3.ABS(X)返回X 的绝对值。
4.下面的函数支持使用BIGINT值。

  • ACOS(X)返回X 反余弦, 即, 余弦是X的值。若X 不在-1到 1的范围之内,则返回 NULL


  • ASIN(X)返回X 的反正弦,即,正弦为X 的值。若X 若X 不在-1到 1的范围之内,则返回 NULL 。
  • ATAN(X)返回X 的反正切,即,正切为X 的值。
  • ATAN(Y,X) , ATAN2(Y,X)返回两个变量X 及Y的反正切。 它类似于 Y 或 X的反正切计算, 除非两个参数的符号均用于确定结果所在象限。

5.CEILING(X) CEIL(X) 返回不小于X 的最小整数值。



6.三角函数: COS(X) SIN(X) TAN(X) X 在弧度中被给定。
7.CRC32(expr)计算循环冗余码校验值并返回一个 32比特无符号值,若参数为NULL。
8.DEGREES(X)返回参数 X, 该参数由弧度被转化为度。
9.EXP(X) 返回e的X乘方后的值(自然对数的底)
10.FLOOR(X) 返回不大于X的最大整数值。
11.FORMAT(X,D) 将数字X 的格式写成'#,###,###.##'格式, 即保留小数点后 D位,而第D位的保留方式为四舍五入,然后将结果以字符串的形式返回。
12.LN(X) 返回X 的自然对数,即, X 相对于基数e 的对数。这个函数同LOG(X)具有相同意义。

  • LOG(B,X) 若用一个参数调用,这个函数就会返回X 的自然对数。
  • 若用两个参数进行调用,这个函数会返回X 对于任意基数B 的对数。

13.对于查出存储一个数字需要多少个比特,LOG2()非常有效。这个函数相当于表达式 LOG(X) / LOG(2)。LOG10(X) 返回X的基数为10的对数。
14.MOD(N,M) , N % M N MOD M 模操作。返回N 被 M除后的余数。
15.PI() 返回 (pi)的值。默认的显示小数位数是7位,然而 MySQL内部会使用完全双精度值。


16.POW(X,Y) , POWER(X,Y)返回X 的Y乘方的结果值。
17.RADIANS(X) 返回由度转化为弧度的参数 X。
18.RAND() RAND(N) 返回一个随机浮点值 v ,范围在 0 到1 之间。
若要在i ≤ R ≤ j这个范围得到一个随机整数R ,需要用到表达式FLOOR(i + RAND() * (j – i + 1))
19.ROUND(X) ROUND(X,D) 返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。
20.SIGN(X)返回参数作为-1、 0或1的符号,该符号取决于X 的值为负、零或正。
21.SQRT(X) 返回非负数X 的二次方根。
22.TRUNCATE(X,D) 返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零,即所以数值都变成0) X小数点左起第D位开始后面所有低位的值。


先到这吧,感觉内容比较乱,是看到什么感觉需要的就记录下的,希望对大家也有所帮助。


你可能感兴趣的:(MySQL学习2)