前言
在日常各种工作中,图形化工具为我们提供了很大的便利,MySQL数据库有很多图形化工具,其中MySQL Workbench是MySQL公司开发的集成图形化工具,这个是一个免费的工具可以从MySQL官网下载,里面集成了数据建模、MySQL操作工具箱、数据迁移工具等。
创建数据库
不得不说这个工具的智能和完美,我安装好后打开它已经列出了本地数据库连接列表:
进去之后有一行菜单可以方便我们创建数据库,表,视图等。
我们先来创建一个数据库,名字为’mydb'
在使用MySQL的时候我们会遇到一个问题就是如何去选择合适的数据类型和字符集,选择合适的数据类型可以提供效率和节省空间,选择合适的字符集可以解决一些编码问题。
都是用来存储字符串的,但是它们的检索方式不同,char属于固定长度的字符类型,而varchar属于可变长度的字符类型。
值 | char(4) | 存储长度 | varchar(4) | 存储长度 |
---|---|---|---|---|
'' | ‘ ’ | 4个字节 | '' | 1个字节 |
‘ab’ | ‘ab ’ | 4个字节 | ‘ab’ | 2个字节 |
‘abc’ | ‘abc ’ | 4个字节 | ‘abc’ | 3个字节 |
‘abcd’ | ‘abcd’ | 4个字节 | ‘abcd’ | 4个字节 |
由于char是固定长度的,所以它的处理速度比varchar快的多,但是浪费存储空间,所以对于那些长度变化不大并对查询速度有要求的数据可以考虑使用char类型来存储。
另外,随着MySQL版本的不断升级,varchar数据类型的性能也在不断改进并提高,所以实际使用中varchar被使用的更多。
和大多数数据库不同的是MySQL有一个存储引擎的概念,针对不同的存储场景和需求可以选择最优的存储引擎。用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。
MySQL5.7支持的存储引擎包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
在MySQL5.5之前系统默认使用的是MyISAM引擎,在MySQL5.5之后改为了InnoDB, 查看当前默认存储引擎:
|
|
这一篇我们来看看MySQL中提供的内建函数,这些函数可以帮助我们编写简单快捷的SQL语句。
函数 | 功能 |
---|---|
CONCAT(S1, S2, …Sn) | 连接S1,S2,…Sn为一个字符串 |
INSERT(str, x, y, instr) | 将字符串str从第x位置开始,y个字符长度的子串替换为字符串instr |
LOWER(str) | 将字符串str中所有字符变为小写 |
UPPER(str) | 将字符串str中所有字符变为大写 |
LEFT(str, x) | 返回字符串str最左边的x个字符 |
RIGHT(str, x) | 返回字符串str最右边的x个字符 |
LPAD(str, n, pad) | 用字符串pad对str最左边进行填充,直到长度为n个字符长度 |
RPAD(str, n, pad) | 用字符串pad对str最右边进行填充,直到长度为n个字符长度 |
LTRIM(str) | 去掉字符串str左侧的空格 |
RTRIM(str) | 去掉字符串str行尾的空格 |
REPEAT(str, x) | 返回str重复x次的结果 |
REPLACE(str, a, b) | 用字符串b替换字符串str中所有出现的字符串a |
STRCMP(s1, s2) | 比较字符串s1和s2 |
TRIM(str) | 去掉字符串行尾和行头的空格 |
SUBSTRING(str, x, y) | 返回从字符串str的x位置起y个字符串长度的子串 |
上一篇对MySQL的基础有了一个初步认识,接下来我们看一下MySQL中的运算符,这些运算符可以用来连接表达式,这一篇多为SQL语句。
算数运算符包括加、减、乘、除和模运算。
运算符 | 作用 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/,DIV | 除法,返回商 |
%,MOD | 除法,返回余数 |
|
|
值得注意的是如果除数是0则是非法的,返回结果为NULL.
最近想做一个小项目,具有三端(Android,Web,后端),所以复习一下数据库相关知识,就以这一篇博文为开端复习整理一下数据库相关知识点。本文开始之前我使用的是Mac OS安装的MySQL 5.7版本,你也可以在你的Windows或者Linux系统上安装MySQL社区版,建议使用Linux环境。
好了,我们开始!
|
|
|
|