首页 > 代码库 > Mysql学习笔记(一)
Mysql学习笔记(一)
一、测试环境搭建
1.第一次搭建环境:
1)安装依赖文件
2)获取源代码,编译
3)导入基础数据
4)修改配置文件,如数据库地址,redis地址,mq地址
5)启动web服务器
Java:tomcat、weblogic、webshare、jetty
Php:nginx、apache
2.部署、发版过程:
1)编译源代码、打包
2)修改配置文件
3)替换成最新的代码
4)重启web服务
在文件中查找以i开头的内容
cat 文件名 | grep ^ i
在文件中查找以day结尾的内容
cat aaaa |grep day$
在日志中过滤想要查看的内容
tail -f access_log|grep 关键字
二、Mysql基础知识(Mysql是开源的)
1.SQL语言分三个部分:
1)DDL语句:
CREATE、ALTER、DROP
2)DML语句:
UPDATE、INSERT、DELETE、SELECT
3)DCL语句:
是数据库控制功能
2.MySQL程序常用命令
显示所有数据库:show databases;
选定数据库:use 数据库名;
显示某数据库下所有表:show tables;
退出MySQL命令行:\q或quit
3.创建一个数据库
create database 数据库名;
create database 数据库名 charset=utf8;
charset是用来指定字符集,防止数据库中存在乱码
查看创建某数据库的语句
show create database 数据库名;
删除数据库
drop database 数据库名;
4.InnoDB存储引擎
InnoDB是MySQL数据库的一种存储引擎,是一种行级锁。
5.创建表
create table 表名(
字段名1 类型,
字段名2 类型,
......
);
如果想创建一个和某个表结构一样的表,可以使用
CREATE TABLE 新表名 LIKE 原表;
备份一个表
CREATE TABLE 新表名 AS SELECT * FROM 原表名;
6.常见的唯一性约束
PRIMARY KEY 主键约束
UNIQUE 唯一性约束
NOT NULL 非空值约束
AUTO_INCREMENT 用于整数咧默认资政
UNSIGNED 无符号整数
DEFAULT default_value 默认值约束
7.查看表结构
1) DESC 表名;
2) Show create table 表名; 可以查看建表语句
8.修改表
修改表名:
ALTER TABLE 原表名 rename 新表名;
修改字段的数据类型:
ALTER TABLE 表名 MODIFY 字段名 数据类型;
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
MODIFY 和 CHANGE 的区别:MODIFY修改表时,不需要指定新字段名;CHANGE修改表时需要指定旧字段名和新字段名。
增加字段:
ALTER TABLE 表名 ADD 属性名 数据类型[完整性约束条件] [FIRST|AFTER 属性2];
FIRST:表示在表的一个位置增加字段
AFTER 属性2:表示在指定属性后增加一个字段
删除字段:
ALTER TABLE 表名 DROP 字段名;
清空表:
TRUNCATE TABLE 表名; (删除之后不能恢复)
DELETE FROM 表名; (删除之后数据还能回滚)
删除表:(删除之后不能回滚)
DROP TABLE表名;
更改表的存储引擎:
ALTER TABLE 表名 ENGIN=存储引擎名;
9.插入数据
INSERT INTO 表名(属性1,属性2,...) VALUES (值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...);
插入多条
INSERT INTO 表名(属性1,属性2,...) VALUES (值1,值2,...),(值3,值4,...)..;
10.删除数据
DELETE FROM 表名 WHERE 条件; 如果不加条件,则把表清空。
DELETE 后,自增长的ID不会被删掉。
MySQL增加、删除、修改数据默认是自动提交的,且无法回滚。
如果执行set autocommit=0;则再次进行增删改的时候就不会自动提交,且执行rollback回将之前的操作回滚,如果想要执行的语句生效需要在执行完语句后,再执行一次commit进行提交。
11.更新数据
UPDATE 表名 SET 字段名1=值1,字段2=值2....;
UPDATE 表名 SET 字段名1=值1 WHERE 条件表达式;
UPDATE 表名 SET 字段名1=值1,字段2=值2.... LIMIT n; 修改多少行
更新多张表:
UPDATE 表1,表2 SET 表1.字段名1=值1,表2.字段名2=值2 WHERE 表1.id=表2.表1的ID
12.查询数据
SELECT * FROM 表名;
SELECT 字段1,字段2,字段3..... FROM 表名 WHERE 条件;
SELECT * FROM 表名 LIMIT n;
SELECT * FROM 表名 LIMIT m,n;
13.带IN关键字查询
IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该记录将被查询出来;如果不在 集合中,则不满足查询条件。
14.带OR的多条件查询
OR关键字可以用来联合多个条件进行查询,且只要满足多个查询条件中的一个,记录将会被查询出来。
15.带AND的多条件查询
使用AND关键字时,只有满足所有查询条件的记录才会被查询出来;如果不满足这些查询条件其中的任意一个,记录也不会被查出。
16.查询结果剃重和限制查询条数
使用DISTINCT来剃重
使用LIMIT来限制条数
17.带BETWEEN AND 的范围查询
BETWEEN AND 关键字可以判断某个字段的值是否在置顶的范围内,如果字段的值在指定的范围内,则满足查询条件。
18.带LIKE的字符模糊查询
LIKE关键字可以进行模糊查询
通配符:
%:包含0个或多个字符组成的任意字符串
_:下划线,任意一个字符
19.查询空值或非空值
IS NULL 关键字可以用来判断字段的值是否为空值(NULL)。
IS NOT NULL 可以用来判断字段的值是否非空。
20.对查询结果排序
使用ORDER BY关键字可对记录进行排序,排序方式有ASC(升序)、DESC(降序),如果不加参数,默认是升序(ASC)。
21.COUNT()函数
COUNT()用来统计记录的条数,COUNT()对NULL 值统计时,将忽略NULL值。
22.SUM()函数
SUM()是求和函数,对NULL值求和时,将忽略NULL值。
23.AVG()函数
AVG()函数是求平均值的函数,对NULL值求平均值时,将忽略NULL值。
24.MAX()函数
MAX()函数是求最大值的函数,对NULL值求平均值时,将忽略NULL值。
25.MIN()函数
MIN()函数是求最小值的函数,对NULL值求平均值时,将忽略NULL值。
26.GROUP BY 和 HAVING子句
GROUP BY关键字可以将查询结果按某个字段或多个字段进行分组,字段值相等的为一组。
HAVING子句通常与GROUP BY 子句一起使用,HAVING子句用于设置分组或聚合函数的过滤筛选条件。
Mysql学习笔记(一)