Fuction
FuctionMySQL中实现了许多内置函数,为DQL提供了更丰富的功能,能更高效的处理查询出的记录。以下列举部分函数及用法
字符串函数
ASCII(s)返回字符串s的第一个字符的ASCII码 12SELECT ASCII(CustomerName) AS NumCodeOfFirstCharFROM Customers;
CHAR_LENGTH(s)返回字符串 s 的字符数 1SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString;
数字函数
ABS(x)返回x的绝对值 1SELECT ABS(-1);
TAN(x)求x正切值,单位是弧度 1SELECT TAN(-1);
日期函数
CURRENT_DATE()返回当前日期 1SELECT CURRENT_DATE();
DAY(d)返回日期d的日部分 1SELECT DAY(d);
其他函数
CURRENT_DATE()返回当前日期 1SELECT CURRENT_DATE();
CAST(x AS type)转换数据类型 1SELECT CAST("2017-08-29" ...
View
View视图的概念
视图是由数据库中的一个表或多个表导出的虚拟表,其内容由查询定义,作用是方便用户对数据的操作。数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
视图依赖的数据发生改变时,视图也跟着改变。视图本身发生改变也会影响到原数据。
MySQL中视图的本质其实一组DQL语句,即数据库中只存放视图的定义,而不会单独为视图开辟额外的空间存放数据的拷贝。
视图的作用
简化操作视图需要达到的目的就是所见即所需。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
增加数据安全性通过视图,用户只能查询和修改指定的数据。指定数据之外的信息,用户根本接触不到。这样可以防止敏感信息被未授权的用户查看,增强机密信息的安全性。
提高表的逻辑独立性视图可以屏蔽原有表结构变化带来的影响。例如原有表增加列和删除未被引用的列,对视图不会造成影响。同样,如果修改表中的某些列,可以使用修改视图来解决这些列带来的影响。
视图的操作
创建/修改视图
12345-- 加上OR REPLAC ...
User Rights Management
User Rights ManagementMySQL的用户权限管理即通过划分用户,为不同用户在dbms中提供不同的权力。MySQL服务器通过权限表来控制用户对数据库的操作,权限表存放在mysql数据库中,由mysql_install_db脚本初始化。存储账户权限信息表(在dbms中一个名为mysql的数据库中存储)主要有:user、db、tables_priv、columns_priv、procs_priv、proxies_priv这六张表(5.6之前还有host表,现在已经把host内容整合进user表)
有哪些权限MySQL中的用户权限包括连接权限和操作权限两大部分。
连接权限连接权限用于设置用户是否有权登录到dbms中,权限信息(字段)包括host(从哪来)、user(用户名)及password(密码),保存于user表中。
操作权限mysql对用户的操作权限信息保存在名为mysql的数据库的如下六个表中:user、db、tables_priv、columns_priv、proce_priv、proxies_priv。每一个表都记录的每个用户的各类操作权限(如查询、修改、删除等 ...
Engine
Engine数据库存储引擎,又称数据表处理器,它是数据库底层软件的组织。数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。
MySql中的存储引擎和其他关系数据库有所不同的是,MySQL本身实际上只是一个SQL接口,它的内部包含了多种数据引擎,常见的包括:
InnoDB:由Innobase Oy公司开发的一款支持事务的数据库引擎,2006年被Oracle收购;
MyISAM:MySQL早期集成的默认数据库引擎,不支持事务。
MySQL内部包含了共九种数据引擎,详细信息见下图。MySQL接口和数据库引擎的关系就好比某某浏览器和浏览器引擎的关系。对用户而言,切换浏览器引擎不影响浏览器界面,切换MySQL引擎不影响自己写的应用程序使用MySQL的接口。
InnoDBInnoDB是MySQL的默认引擎,也是目前最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期事务(大部分情况能正常提交,很少被回滚)。同时,InnoDB的性能和崩溃自动恢复特性使得它在非事务型储存的 ...
MySQL Datatype
MySQL Datatypemysql 数据类型反应在列(字段上),不同记录在同一字段上的分量数据类型相同。mysql支持多种数据类型,大致分为三类:数值、日期/时间、字符串(字符)。选取类型的准则是在满足数据需求的情况下尽量选择范围小的数据类型。
数值类型mysql 支持所有标准 SQL 数值数据类型,这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC等),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION等)。BIT数据类型保存位字段值。所有数值类型详细信息见下图。
注意
bit类型会以二进制形式显示数值。
decimal中的M和D分别代表记录数值的总位数和小数位数,一般需求非常高精度数据或有很大数时使用decimal类型
字符类型下图展示了 mysql 字符数据类型的详细信息。
注意
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数
char 定长,记录分量存储时自动补齐空格至指定长度个字符,即为记录分配定长空间
varchr 不定长,不补齐空格,分配空间按实际 ...