mysql的卸载
mysql修改密码
mysql免密
mysql目录(rpm安装)
MySQL的字符集与排序规则/校对规则
操作命令
service mysql start 启动服务
service mysql stop 停止服务
service mysql status 查看状态
service mysql restart 重启服务
数据库操作
show databases; 显示所有数据库
use databaseName; 选择数据库
drop database; 删除数据库
create database; 创建数据库
表操作
show tables 显示表
ALTER TABLE 旧表名 RENAME 新表名 修改表名
ALTER TABLE 表名 MODIFY 字段名 数据类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 修改字段名
ALTER TABLE 表名 add 新字段名 数据类型 FIRST/AFTER 字段名
(FIRST 添加到第一个字段,AFTER 添加到对应字段之后) 添加字段
ALTER TABLE 表名 DROP 表名 删除字段
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名
创建表
约束
主键约束
数据唯一,并且不能为空
数据库的单个数据表中只能有一个主键
指定的约束的两种方式
- 定语列时定义
字段名 数据类型 PRIMARY KEY
- 定义完所有列时定义
多字段联合主键
PRIMARY KEY (KEY1,KEY2,KEY3)
外键约束
一个表可以多个外键
一个表的外键可以为空值,如果不为空值必须等于关联表对应主键的值
对应另外一张表的主键
主表从表
主表:关联表中,相关联字段主键在的表
从表:关联表中,相关联字段外键在的表
语法
CONSTRAINT NAMES FREIGN KEY(name) REFERENCES dept(id)
非空约束
字段名 数据类型 not null
默认约束
字段名 数据类型 DEFAULT 默认值
唯一约束
该列唯一,可以为空
字段名 数据类型 UNIQUE
设置表自动增加 (AUTO_INCREMENT)
初始值为1,自动加1
一个表只能有一个字段使用,并且该名字为主键的一部分
查看表结构
DESCRIBE 表名
SHOW CREATE TABLE 表名
数据类型
整形
浮点数类型和定点数类型
日期和时间类型
year
time
data
datatime
timestamp
文本字符串类型
char 和 varchar
text
enum
set
二进制字符串类型
mysql函数
字符串函数
计算字符串的个数
CHAR_LENGTH
select CHAR_LENGTH(name) as nameLength from user;
合并字符串函数
CONCAT(str,str1,...);
SELECT CONCAT("123",'name') as val;
其中一个值为null时,返回null,其中一个值为二进制时,返回二进制字符串
CONCAT_WS(x,str,str1,...)
SELECT CONCAT_WS("|","str1","23");
第一个参数为分隔符,分隔符为null,结果为null,
自动分隔符后面的null值
替换字符串长度
大小写转换
转为小写:LOWER(str) LCASE(str)
转为大写:UPPER(str) UCASE(str)
获取指定长度的字符串的函数
LEFT(s,n) 获取s字符串左边第n个字符
RIGHT(s,n) 获取s字符串右边第n个字符
填充字符串的函数
LPAD(s1,len,s2)
返回字符串s1,其左边由字符串s2填补到len字符长度
RPAD(s1,len,s2)
返回字符串s1,其右边由字符串s2填补到len字符长度
删除空格的函数
LTRIM(s)返回字符串s,字符串左侧的空格字符被删掉
RTRIM(s)返回字符串s,字符串右侧的空格字符被删掉
TRIM(s) 删除字符串s两侧的字符串
删除字符串指定的函数
TRIM(s1 FROM s)
删除字符串s两端所有的字符串s1,未指定删除空格
空格函数
SPACE(n)
替换函数
REPLACE(s,s1,s2) 使用字符串s2替换s字符串中的所有s1字符串
比较字符串大小
STRCMP(s1,s2) 相同 0 ,s1<s2 返回-1 ,其他返回1
获取子串函数
min(s,n,len) 与SUBSTRING(s,n,len)作用相同
匹配子串刚开始的位置
字符串反转
REVERSE(s)
指定位置的字符串的函数
返回指定字符串位置的函数
返回子串位置的函数
时间函数
日期和时间函数
CURDATE()/RRENT_DATE() 获取当前日期 CURTIME()/CURRENT_TIME() 获取当前的时间 +0 以数值返回
获取当前日期和时间的函数
CURRENT_TIMESTAMP() LOCALTIME() NOW() SYSDATE()
UNIX时间戳函数
返回UTC日期的函数和返回的UTC时间的函数
获取月份的函数
MONTH(date) 返回指定日期中的月份
MONTHNAME(data) 返回日期data对应月份的英文
将日期和时间格式化的函数
DATE_FORMAT(data,format)
条件判断函数
IF(expr,v1,v2)
IFNULL(v1,v2)
case函数
查询
格式化查询 查询语句后面加/G
where条件
in 和 not in
in (str1,str2)
BETWEEN AND 和 NOT BETWEEN AND 的范围查询
判断是否空值
is null 和 not is null
查询结果不重复
SELECT DISTINCT 字段名 FROM 表名;
排序
ORDER BY ASC (默认,升序) ORDER BY DESC (降序)
单列排序和多列排序
分组查询
GROUP_CONCAT() 用了显示分组的选项
WITH ROLLUP 在所有查询出来的分组后面加一条数据,计算查询出来的记录总和;
多字段分组
LIMIT
LIMIT 第几行开始,行数
聚合函数
连接
内连接查询
INNER JOIN :返回查询结果集合中,仅是符合查询条件和连接条件的行
外连接查询
LEFT JOIN 左连接 如果右表没有相关联的字段,均为空值 RIGHT JOIN 右连接 如果左表没有相关联的字段,均为空值
子查询
子查询:一个查询语句嵌套另外一个语句内部的查询
ANY 和 SOME
ALL
EXISTS
in关键字的子查询
合并结果查询
正则表达式查询
REGEXP