09 SQL
SQL
SQL是Structured Query Language的缩写,是操作关系型数据库的编程语言。
这里的配置以MySQL为例。
安装
在https://dev.mysql.com/downloads/file/?id=476233下载安装包并解压。
与maven类似,配置环境变量(系统变量+path变量)。配置后命令行输入 mysql ,提示无法连接数据库则配置成功。
接下来进行数据库初始化,以管理员身份执行 mysqld --initialize-insecure ,完成后执行 mysqld -install,注册MySQL服务。
注册成功后可以用 net start mysql 启动MySQL服务。使用 net stop mysql 可以终止服务。然后使用 mysqladmin -u root password xxx (xxx为密码)修改密码。
配置成功后,用 mysql -uroot -pxxx 登录。这条命令中,还有两个可选参数,分别为数据库服务器IP地址 -h 和端口号 -P 。MySQL的默认端口号为3306。输入 exit 可以退出MySQL。使用 mysql -uroot -p 登录时,会提示输入密码,终端上会出现星号而不是密码内容,相对而言更安全。
数据类型
SQL中的整数有tinyint、smallint、mediumint、int和bigint五种类型,浮点数有float和double,还有精度更高的decimal。 float(5, 2) 表示整个数字长度5,小数部分2,另外两种浮点数同理。
字符串有char和varchar两种,用 char(10) 或 varchar(10) 来指定长度或最大长度。char为固定长度,性能更优,浪费空间更大,varchar反之。此外,还有不同长度的二进制数据(blob)和文本数据(text)。
日期类型中,date、time、year分别表示日期(年月日)、时间和年份。datatime混合日期和时间值,范围从1000年至9999年。timestamp同样混合日期和时间(时间戳),但时间范围较小,只从1970年到2038年。和字符串一样,日期类型使用时也要包裹在引号中。
选择数据类型时,要在满足业务需求的前提下选择占用磁盘空间尽量小的数据类型。
条件
在SQL中有 以下几种比较运算符和逻辑运算符。
| 比较运算符名称 | 功能 |
|---|---|
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| = | 等于 |
| <> 或 != | 不等于 |
| between ... and ... | 在 ... 和 ...之间 |
| in(...) | 在列表中 |
| like 占位符 | 模糊匹配(_匹配单个字符,%匹配任意字符) |
| is null | 为空 |
| is not null | 非空 |
在 between ... and ... 中,包括边界值。模糊匹配中,用引号包括内容,且可以包括具体字符。
| 逻辑运算符名称 | 功能 |
|---|---|
| and 或 && | 与 |
| or 或 || | 或 |
| not 或 ! | 非 |
通过这些运算符和值可以组成条件。