经典问题解决方案
命令行乱码
数据库默认编码为utf8,而windows默认编码为GBK
mysql> set names gbk; Query OK, 0 rows affected (0.00 sec)
退出当前错误语句
- 语句打错以后在语句后打 \c 可以快速退出本语句
破解数据库密码
关掉mysqld服务进程
通过
mysqld --skip-grant-tables
开启mysqldmysql -uroot
无密码登录服务器修改权限表
use mysql; update user set Password=password('123456') where User='root'; flush privileges;
重启mysql服务
MySQL的数据类型
整数
- TINYINT
- INT
- BIGINT
浮点型
- DOUBLE
定点型
- DECIMAL
- 在MySQL内部以字符串形式存放,比浮点数更精确
日期时间类型
- date : YYYY-MM-DD
- time : HH:MM:SS
- datetime : YYYY-MM-DD HH:MM:SS
- year : YYYY
- timestamp : 时间戳
字符串型
- char:定长字符串
- Varchar:变长字符串
特殊的NULL值
- 所有类型的值都可以是null,包括int、float等数据类型
- 空字符串"" 不等于null,0也不等于null,false也不等于null
- 任何运算符、判断符碰到null都得null
- null的判断只能用is null,is not null
- null影响查询速度,一般避免使值为null
MySQL的运算符
算数运算符
- “+”,“-”,“*”,“/”,“%”
比较运算符
- “=”,“>=”,“<=”,“!=”(不等于,<>),“<=>”(安全的等于)
逻辑运算符
- “&&”,“||”,“!”
- AND,OR,NOT(非),XOR(异或)
范围和集合
- between...and..
- in(集合)
模糊查询
- like
- _ 匹配单个字符
- % 匹配任意个字符