连接MySQL服务器:
连接MySQL服务器 | 退出MySQL服务器 |
mysql -u用户名 -p密码 -h服务器主机名或ip地址(可省略默认本机) -P端口(默认3306) | quit或exit或\q |
数据库备份与恢复:
语法 | 描述 | |
备份数据库 | 指定库:mysqldump -u用户名 -p 数据库的名字 > 备份文件的位置 | 在cmd窗口中(未登录的状态下)对数据库进行备份 |
所有库:mysqldump -u用户名 -p --all-database > 备份文件的位置 | ||
恢复数据库 | create database 数据库的名字 charset utf8; mysql -u用户名 -p 数据库的名字 < 已备份文件位置 | 在cmd窗口中(已登录的状态下),先创建一个库 在cmd窗口中(未登录的状态下)恢复到创建的库中 |
source sql文件的位置 create database 数据库的名字 charset utf8; use 数据库的名字; source 已备份文件位置 | 在cmd窗口中(已登录的状态下),可以通过source执行指定位置的SQL文件在cmd窗口中(已登录的状态下),先创建数据库,进入数据库再通过source执行指定位置下的sql文件 |
注释:
注释 | 描述 |
# | #此处为注释内容,不会执行 |
/**/ | /*此处为注释内容,不会执行*/ |
--空格 | -- 此处为注释内容,不会执行(--和注释之间有空格) |
\c | 可以取消sql语句执行:select * from emp;\c |
SQL语句:
SQL语意 | SQL语法 |
数据库 | database |
表 | table |
进入 | use |
查看(库,表) | show |
查询(当前库,表数据) | select |
创建(库,表) | create |
编码格式 | charset |
查看表结构 | desc(describe) |
删除(库,表,列) | drop |
修改(表) | alter |
新增(列) | add |
修改(列) | modify |
插入(数据) | insert into |
修改(数据) | update |
删除(数据) | delete |
主键 | primary key |
自增 | auto_increment |
唯一 | unique |
来自 | from |
设置 | set |
值 | value |
判断 | if |
非 | not |
存在 | exists |
空 | null |
去重 | distinct |
条件(分组之前) | where |
条件(分组之后) | having |
并且 | and |
或 | or |
别名 | as |
(范围)里 | in |
在 | on |
是 | is |
添加 | add |
之间 | between |
分组 | group |
排序 | order |
通过 | by |
降序 | desc(descend) |
升序 | asc(默认) |
分页 | limit (页码-1)*每页显示记录数, 每页显示记录数 |
外键 | foreign key |
参考 | references |
约束 | constraint |
在...级联 | on...cascade |
连接 | join |
内 | inner |
左 | left |
右 | right |
联合 | union |
字段约束:
约束 | 语法 | 描述 |
主键约束 | primary key | 唯一且不能为空,作为一个唯一标识 |
非空约束 | not null | 不能为空,但可以重复 |
唯一约束 | unique | 必须是唯一的(即不能重复),但可以为空。 |
外键约束 | foreign key(当前表列名) references 表名(列名) | 外键其实就是用于通知数据库两张表数据之间对应关系的这样一个列。维护两张表中数据之间的关系 |
数据类型:
数值类型 | 字节 | java |
tinyint | 1 | byte |
smallint | 2 | short |
int | 4 | int |
bigint | 8 | long |
float | 4(单精度) | float |
double | 8(双精度) | double |
字符串类型 | 字符 | 描述 |
char(n) | 255 | 定长(剩余空间空格代替)效率最高 |
varchar(n) | 65535 | 变长(剩余空间留给别人) |
text | 65535 | 长文本(超过255个字符时使用) |
日期类型 | 描述 |
date | 年月日 |
time | 时分秒 |
datetime | 年月日时分秒(范围1000-9999) |
timestamp | 时间戳(毫秒值,最大2038年,自动更新成系统当前时间) |
操作符:
操作符 | 描述 |
= | 等于 |
<>或!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
between | 在某个范围 |
like | 搜索某种模式 |
通配符:
通配符 | 描述 |
% | 表示0或多个任意的字符 |
_ | 表示一个任意的字符 |
多行函数:
常用函数 | 作用 |
count( 列名 | * ) | 统计结果集中指定列的记录的行数 |
max( 列名 ) | 统计结果集中某一列值中的最大值 |
min( 列名 ) | 统计结果集中某一列值中的最小值 |
sum( 列名 ) | 统计结果集中某一列所有值的和 |
avg( 列名 ) | 统计结果集中某一列值的平均值 |
其他函数 | 作用 |
curdate() | 获取当前日期,格式是:年月日 |
curtime() | 获取当前时间,格式是:时分秒 |
sysdate()/now() | 获取当前日期+时间,格式是:年月日 时分秒 |
year(date) | 返回date中的年份 |
month(date) | 返回date中的月份 |
day(date) | 返回date中的天数 |
hour(date) | 返回date中的小时 |
minute(date) | 返回date中的分钟 |
second(date) | 返回date中的秒 |
CONCAT(s1,s2..) | 将s1,s2 等多个字符串合并为一个字符串 |
CONCAT_WS(x,s1,s2..) | 同CONCAT(s1,s2,..)函数,但是每个字符串之间要加上x,x是分隔符 |