之前写过MySQL在各平台的安装过程,本文主要描述了客户端对于数据库的操作。
MySQL客户端功能及SQL简介
连接数据库
连接服务端参数简介
-u 指定用户-p 指定密码-S 指定Sock文件-h 指定主机名称-P 指定端口-e 不交互,执行sql语句< 导入数据source 导入数据
示例:
#-----使用Sock连接mysql -uroot -p -S /tmp/mysql.sock#-----使用TCP/IP连接mysql -uroot -p -h 10.0.0.1 -P3306#-----使用默认Sock连接,并且查看数据库mysql -uroot -proot -e "show databases;"#############返回结果############################mysql: [Warning] Using a password on the command line interface can be insecure.+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+#############返回结果#############################-----将创建数据库语句写入到文件中echo "create database db01 charset utf8;" > /root/db01.sql#-----非交互式执行sql语句文件mysql -uroot -proot
常用内置命令
help 打印mysql帮助\c 终止当前语句执行\q 退出\G 格式化查询结果source 恢复备份文件source /root/db01.sql;
SQL基础应用
SQL介绍
结构化的查询语言,是关系型数据库通用的命令,遵循SQL92的标准(SQL_MODE)。
SQL种类
DDL 数据定义语言DCL 数据控制语言DML 数据操作语言DQL 数据查询语言SQL引入数据库的逻辑结构
库
库名字库属性:字符集和校对规则表
表名表属性:存储引擎类型,字符集,排序规则列名列属性:数据类型、约束、其他属性数据行字符集
相当于MySQL的密码本(编码表)
默认字符集为latin1,推荐使用utf8mb4
utf8字符集占三个字节
utf8mb4字符集占四个字节,虽然占用的空间多,但是支持的字符种类更完全,MySQL8.0l默认使用utf8mb4字符集,支持emoji
#查看字符集show charset;
排序规则:collation
对于英文字符串大小写的敏感
校对规则跟着字符集,如果不设置,则使用默认设置的字符集与排序规则
utf8mb4generalci 大小写不敏感
utf8mb4_bin 大小写敏感(存拼音、日文)
#查看排序规则show collation;
数据库常用数据类型
数字
数据库常用数据类型
数据库常用数据类型
整数
tinyint 极小的整数数据类型(0-255)
int 常规整数数据类型(-2^32-2^32-1)
浮点
略
字符串
char(100) 定长的字符串类型,不管存储的字符串长度多长,都立即分配100个字符长度的存储空间,未填满的空间,以空格填充,char可以存储255个字符
varchar(100) 变长的字符串类型,每次存储前,都要先判断一下长度,按需要分配磁盘空间,会单独申请一个字符长度的空间存储字符长度(字符长度小于255,如果超过255以上的字符串长度,会占用两个存储空间),varchar最多可以存储65535个字符
如何选择这两种存储类型呢?
少于255个字符串长度,定长的列值,选择char多于255个字符长度,变长的列值,选择varchar悬念,以上数据类型可能会影响到索引的性能
enum 枚举数据类型
address enum('sz','sh','bj'....)
编号 1 2 3
将编号与地址关联起来,在程序中选择编号,提升性能
时间
时间
时间
date YYYY-MM-DDTIME hh:mm:ss[.uuuuu]datetime YYYY-MM-DD hh:mm:ss[.uuuuu]
范围从 1000-01-01 00:00:00.0000000 至 9999-12-31 23:59:59.99999
timestamp YYYY-MM-DD hh:mm:ss[.uuuuu]
范围从 1970-01-01 00:00:00.0000000 至 2038-01-19 03:14:07.99999
以后会使用datetime这种格式,它的时间范围更大
timestamp会自动跟着时区变化,datetime不会