mysql

129 阅读5分钟

mysql的卸载

blog.csdn.net/qq_37831937…

mysql修改密码

c.biancheng.net/view/7152.h…

mysql免密

www.cnblogs.com/weifeng1463…

mysql目录(rpm安装)

image.png

MySQL的字符集与排序规则/校对规则

blog.51cto.com/u_15346415/…

操作命令

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 外键约束名

创建表

image.png

约束

主键约束

数据唯一,并且不能为空

数据库的单个数据表中只能有一个主键

指定的约束的两种方式

  • 定语列时定义
字段名 数据类型 PRIMARY KEY
  • 定义完所有列时定义

多字段联合主键

PRIMARY KEY (KEY1,KEY2,KEY3)

外键约束

一个表可以多个外键

一个表的外键可以为空值,如果不为空值必须等于关联表对应主键的值

对应另外一张表的主键

主表从表

主表:关联表中,相关联字段主键在的表

从表:关联表中,相关联字段外键在的表

语法

image.png

CONSTRAINT NAMES FREIGN KEY(name) REFERENCES dept(id)

非空约束

字段名 数据类型 not null

默认约束

字段名 数据类型 DEFAULT 默认值

唯一约束

该列唯一,可以为空

字段名 数据类型 UNIQUE

设置表自动增加 (AUTO_INCREMENT)

初始值为1,自动加1

一个表只能有一个字段使用,并且该名字为主键的一部分

查看表结构

DESCRIBE 表名

image.png

SHOW CREATE TABLE 表名

数据类型

整形

image.png

image.png

浮点数类型和定点数类型

image.png

日期和时间类型

image.png

year

image.png

time

image.png

data

image.png

datatime

image.png

timestamp

image.png

image.png

image.png

文本字符串类型

image.png

char 和 varchar

image.png

image.png

text

image.png

enum

image.png

set

image.png

二进制字符串类型

image.png

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

替换字符串长度

image.png

大小写转换

转为小写: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

获取子串函数

image.png

min(s,n,len) 与SUBSTRING(s,n,len)作用相同

匹配子串刚开始的位置

image.png

字符串反转

REVERSE(s)

指定位置的字符串的函数

image.png

返回指定字符串位置的函数

image.png

返回子串位置的函数

image.png

时间函数

日期和时间函数

CURDATE()/RRENT_DATE() 获取当前日期 CURTIME()/CURRENT_TIME() 获取当前的时间 +0 以数值返回

获取当前日期和时间的函数

CURRENT_TIMESTAMP() LOCALTIME() NOW() SYSDATE()

UNIX时间戳函数

image.png

image.png

返回UTC日期的函数和返回的UTC时间的函数

image.png

image.png

获取月份的函数

MONTH(date) 返回指定日期中的月份

MONTHNAME(data) 返回日期data对应月份的英文

将日期和时间格式化的函数

DATE_FORMAT(data,format)

image.png

image.png

条件判断函数

IF(expr,v1,v2)

image.png

IFNULL(v1,v2)

image.png

case函数

image.png

image.png

查询

格式化查询 查询语句后面加/G

where条件

image.png

in 和 not in

in (str1,str2)

BETWEEN AND 和 NOT BETWEEN AND 的范围查询

image.png

判断是否空值

is null 和 not is null

查询结果不重复

SELECT DISTINCT 字段名 FROM 表名;

排序

ORDER BY ASC (默认,升序) ORDER BY DESC (降序)

单列排序和多列排序

分组查询

image.png GROUP_CONCAT() 用了显示分组的选项

image.png

WITH ROLLUP 在所有查询出来的分组后面加一条数据,计算查询出来的记录总和;

多字段分组

image.png

image.png

LIMIT

LIMIT 第几行开始,行数

聚合函数

image.png

连接

内连接查询

INNER JOIN :返回查询结果集合中,仅是符合查询条件和连接条件的行

外连接查询

LEFT JOIN 左连接 如果右表没有相关联的字段,均为空值 RIGHT JOIN 右连接 如果左表没有相关联的字段,均为空值

子查询

子查询:一个查询语句嵌套另外一个语句内部的查询

ANY 和 SOME

image.png

ALL

image.png

EXISTS

image.png

image.png

in关键字的子查询

image.png

合并结果查询

image.png

image.png

正则表达式查询

REGEXP

image.png