Mysql 基础脑图笔记
MySQL 数据库简介Windows下安装MySQL配置初始化文件(win)初始化 MySQL(win)
Linux 下安装 MySQL步骤MySQL 配置文件(linux)
与 MySQL 建立连接MySQL 创建数据库MySQL 操作数据库MySQL 的数据类型MySQL 设计数据表ALTER 命令修改表修改表字段数据类型新增表字段删除表字段修改表字段名称修改表字段默认值
删除数据表INSERT 插入数据向数据表插入一条数据向数据表插入多条数据
SQL 简介聚合函数GROUP BY HAVING 举例条件判断函数CASE条件判断举例系统函数MySQL 中使用正则表达式MySQL 存储引擎
MySQL 数据库简介
Windows下安装MySQL
配置初始化文件(win)
[mysqld
]
port
=3306
basedir
=G:\WWW\mysql
datadir
=G:\WWW\mysql\data
max_connections
=200
max_connect_errors
=10
character-set-server
=utf8
default-storage-engine
=INNODB
default_authentication_plugin
=mysql_native_password
[mysql
]
default-character-set
=utf8
[client
]
port
=3306
default-character-set
=utf8
初始化 MySQL(win)
cd /d G:\WWW\mysql\bin
mysqld --initialize --console
mysqld
install
net start mysql
net stop mysql
mysqld remove
Linux 下安装 MySQL
步骤
MySQL 配置文件(linux)
[mysqld
]
port
=3306
basedir
=/usr/local/mysql
datadir
=/usr/local/mysql/data
max_connections
=200
max_connect_errors
=10
character-set-server
=utf8
default-storage-engine
=INNODB
default_authentication_plugin
=mysql_native_password
[mysql
]
default-character-set
=utf8
[client
]
port
=3306
default-character-set
=utf8
与 MySQL 建立连接
MySQL 创建数据库
MySQL 操作数据库
MySQL 的数据类型
MySQL 设计数据表
ALTER 命令修改表
修改表字段数据类型
ALTER TABLE `new_student
`
MODIFY COLUMN `name
`
char(50)
CHARACTER SET utf8
COLLATE utf8_general_ci
NOT NULL
DEFAULT '无名'
AFTER `id
`;
新增表字段
ALTER TABLE `new_student
`
ADD COLUMN `sex
`
tinyint(2) UNSIGNED
NOT NULL
DEFAULT 1
COMMENT '性别 : 1:男 2:女'
AFTER `id_number
`;
删除表字段
ALTER TABLE `new_student
`
DROP COLUMN `sex
`;
修改表字段名称
ALTER TABLE `new_student
`
CHANGE
COLUMN `name
` `new_name
`
char(50)
CHARACTER SET utf8
COLLATE utf8_general_ci
NOT NULL
DEFAULT '无名'
AFTER `id
`;
修改表字段默认值
ALTER TABLE `new_student
`
MODIFY COLUMN `new_name
`
char(50) CHARACTER SET utf8
COLLATE utf8_general_ci
NOT NULL
DEFAULT '小花'
AFTER `id
`;
删除数据表
DROP TABLE new_student
;
需要删除数据表一定要谨慎,删除数据表之前最好做备份
INSERT 插入数据
向数据表插入一条数据
INSERT INTO teacher
(name
, age
, id_number
)
VALUES ('秦小贤', 18, '42011720200604088X');
向数据表插入多条数据
INSERT INTO teacher
(name
, age
, id_number
)
VALUES
('王小花', 19, '42011720200604077X'),
('张晓丽', 18, '42011720200604099X'),
('刘美丽', 20, '42011720200604020X'),
('吴帅', 21, '42011720200604022X'),
('张平', 22, '42011720200604033X')
SQL 简介
聚合函数
GROUP BY HAVING 举例
SELECT a
.course_id
, c
.course_name
, AVG(age
)
FROM student_course a
INNER JOIN student b
ON a
.student_id
= b
.id
INNER JOIN course c
ON a
.course_id
= c
.id
GROUP BY a
.course_id
, c
.course_name
HAVING AVG(age
) >= 20;
条件判断函数
CASE条件判断举例
SELECT *
, CASE name
WHEN 'Tom' THEN '汤姆'
WHEN 'Jack' THEN '杰克'
WHEN 'Mary' THEN '玛丽'
WHEN 'Timo' THEN '提莫'
WHEN 'Bob' THEN '鲍勃'
WHEN 'Judy' THEN '朱蒂'
ELSE '未定义'
END AS "chinese_name"
FROM teacher
;
系统函数
函数名说明
CONCAT(str0,str1)将两个字段的值拼接在一起CONCAT_WS(“拼接符”,str0,str1)将两个字段的值使用指定拼接符拼接在一起GROUP_CONCAT(expr)将指定分组的字段内容拼接在一起UPPER(str)将字符串包含的英文字符小写转化成大写lOWER(str)将字符串包含的英文字符大写转化成小写INITCAP(str)将字符串的首字母变成大写LENGTH(str)获取字符串的长度SUBSTR(str FROM pos FOR len)截取字符串,其中 pos 表示其实位置,len 表示结束位置TRIM(str)去除字符串两边空格INSTR(str,substr)查找指定字符在字符串的中的位置,其中 substr 表示需要查找的字符,例如 ‘Tom’ 中 ‘T’ 的位置为 1,‘m’ 的位置为 3LPAD(str,len,padstr)左填充,其中 len,表示字符串总长度,padstr 表示填充的字符RPAD(str,len,padstr)右填充,其中 len,表示字符串总长度,padstr 表示填充的字符LEFT(str,len)取一个字符串的前多少位RIGHT(str,len)取一个字串的后多少位CEIL(X)向上取整FLOOR(X)向下取整MOD(N,M)取余,例如 MOD(age,5),将字段 age 除以 5,除不尽的取余数POWER(X,Y)幂运算,例如 MOD(age,2),获取字段 age 值的 2 次方的值NOW()获取当前日期和时间CURDATE()获取当前日期,不包含时间CURTIME()获取当前时间,不包含日期YEAR(now())获取当前的年份HOUR(NOW())获取当前时间的小时数MINUTE(now())获取当前时间的分钟数SECOND(NOW())获取当前时间的秒数MONTHNAME(now())获取当前日期的英文月份MONTH(NOW())获取当前日期的数字月份DATE_ADD(date,INTERVAL expr unit)查询日期的变化,例如 DATE_ADD(‘2020-03-03’,INTERVAL 10 day) 表示 2020-03-03 十天之后的日期DATEDIFF(expr1,expr2)日期差,例如 DATEDIFF(‘2019-12-29’,‘2019-12-01’) 表示 2019-12-29 距离 2019-12-01 的天数DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘2019-12-29’,’%m/%d/%y’) ,其中 %m 表示前面对应的月份,%d 表示前面对应的日期的天数,%y 表示前面对应的年份STR_TO_DATE(str,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘12-29-2019’,’%m/%d/%y’)DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘2019/12/29’,’%m/%d/%y’)MD5(str)对字符串进行 MD5 转换UNIX_TIMESTAMP()将指定日期转化为时间戳COUNT()获取查询结果集条数AVG(expr)获取指定列平均值SUM(expr)获取指定字段值的总和MIN(expr)获取指定字段值的最小值MAX(expr)获取指定字段值的最大值
MySQL 中使用正则表达式
示例
SELECT * FROM student
WHERE name
REGEXP '^王';
手机号正则
^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{
8}$
域名网址正则表达式
^(?
=^.{
3,255}$
)(http
(s
)?:\
/\
/)?
(www\
.)?
[a
-zA
-Z0
-9][-a
-zA
-Z0
-9]{
0,62}
(\
.[a
-zA
-Z0
-9][-a
-zA
-Z0
-9]{
0,62}
)+(:\d
+)*(\
/\w
+\
.\w
+)*$
日期+时间正则表达式
^[1-9]\d{
3}
-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s
+(20|21|22|23|[0-1]\d
):
[0-5]\d:
[0-5]\d$
MySQL 存储引擎
查看所有存储引擎开启状态
SHOW ENGINES
;