48、什么是非标准字符串类型?

以下是非标准字符串类型:

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

49、什么是通用 SQL 函数?

CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合

并为一个字段。

FORMAT(X, D)- 格式化数字 X 到 D 有效数字。

CURRDATE(), CURRTIME()- 返回当前日期或时间。

NOW() - 将当前日期和时间作为一个值返回。

MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 从日期值中提取给定数据。

HOUR(),MINUTE(),SECOND() - 从时间值中提取给定数据。

DATEDIFF(A,B) - 确定两个日期之间的差异,通常用于计算年龄

SUBTIMES(A,B) - 确定两次之间的差异。

FROMDAYS(INT) - 将整数天数转换为日期值。

50、解释访问控制列表

ACL(访问控制列表)是与对象关联的权限列表。这个列表是 Mysql 服务器安全模型的基

础,它有助于排除用户无法连接的问题。

Mysql 将 ACL(也称为授权表)缓存在内存中。当用户尝试认证或运行命令时,Mysql 会按

照预定的顺序检查 ACL 的认证信息和权限。

51、MYSQL 支持事务吗?

-在缺省模式下,MYSQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交,所

以在缺省情况下,mysql 是不支持事务的。

但是如果你的 MYSQL 表类型是使用 InnoDB Tables 或 BDB tables 的话,你的 MYSQL 就可以

使用事务处理,使用 SET AUTOCOMMIT=0 就可以使 MYSQL 允许在非 autocommit 模式,在非

autocommit 模式下,你必须使用 COMMIT 来提交你的更改,或者用 ROLLBACK 来回滚你的

更改。

示例如下:

START TRANSACTION;

SELECT @A:=SUM(salary) FROM table1 WHERE type=1;

UPDATE table2 SET summmary=@A WHERE type=1;

COMMIT;

52、mysql 里记录货币用什么字段类型好

NUMERIC 和 DECIMAL 类型被 Mysql 实现为同样的类型,这在 SQL92 标准允许。他们被用于

保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些

类型之一时,精度和规模的能被(并且通常是)指定;点击这里有一套最全阿里面试题总结。

例如:

salary DECIMAL(9,2)

在这个例子中,9(precision)代表将被用于存储值的总的小数位数,而 2(scale)代表将被用于

存储小数点后的位数。

因此,在这种情况下,能被存储在 salary 列中的值的范围是从-9999999.99 到 9999999.99。

在 ANSI/ISO SQL92 中,句法 DECIMAL(p)等价于 DECIMAL(p,0)。

同样,句法 DECIMAL 等价于 DECIMAL(p,0),这里实现被允许决定值 p。Mysql 当前不支持

DECIMAL/NUMERIC 数据类型的这些变种形式的任一种。

这一般说来不是一个严重的问题,因为这些类型的主要益处得自于明显地控制精度和规模

的能力。

-DECIMAL 和 NUMERIC 值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小

数精度。

一个字符用于值的每一位、小数点(如果 scale>0)和“

-”符号(对于负值)。如果 scale 是 0,

DECIMAL 和 NUMERIC 值不包含小数点或小数部分。

DECIMAL 和 NUMERIC 值得最大的范围与 DOUBLE 一样,但是对于一个给定的 DECIMAL 或

NUMERIC 列,实际的范围可由制由给定列的 precision 或 scale 限制。

当这样的列赋给了小数点后面的位超过指定 scale 所允许的位的值,该值根据 scale 四舍五入。

当一个 DECIMAL 或 NUMERIC 列被赋给了其大小超过指定(或缺省的)precision 和 scale 隐含

的范围的值,Mysql 存储表示那个范围的相应的端点值。

我希望本文可以帮助你提升技术水平。那些,感觉学的好难,甚至会令你沮丧的人,别担

心,我认为,如果你愿意试一试本文介绍的几点,会向前迈进,克服这种感觉。这些要点

也许对你不适用,但你会明确一个重要的道理:接受自己觉得受困这个事实是摆脱这个困

境的第一步。

53、MYSQL 数据表在什么情况下容易损坏?

服务器突然断电导致数据文件损坏。

强制关机,没有先关闭 mysql 服务等。

54、mysql 有关权限的表都有哪几个?

Mysql 服务器通过权限表来控制用户对数据库的访问,权限表存放在 mysql 数据库里,由

mysql_install_db 脚本初始化。这些权限表分别 user,db,table_priv,columns_priv 和

host。

55、Mysql 中有哪几种锁?

MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量

最低

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高