首页 > 代码库 > Mysql学习笔记(一)

Mysql学习笔记(一)

一、测试环境搭建

1.第一次搭建环境:

1)安装依赖文件

2)获取源代码,编译

3)导入基础数据

4)修改配置文件,如数据库地址,redis地址,mq地址

5)启动web服务器

Java:tomcatweblogicwebsharejetty

Php:nginxapache

 

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语句:

CREATEALTERDROP

 

2)DML语句:

UPDATEINSERTDELETESELECT

 

3)DCL语句:

是数据库控制功能

 

2.MySQL程序常用命令

显示所有数据库:show databases;

选定数据库:use 数据库名;

显示某数据库下所有表:show tables;

退出MySQL命令行:\qquit

 

3.创建一个数据库

create database 数据库名;

create database 数据库名 charset=utf8;

                                    charset是用来指定字符集,防止数据库中存在乱码

查看创建某数据库的语句

show create database 数据库名;

 

删除数据库

drop database 数据库名;

 

4.InnoDB存储引擎

InnoDBMySQL数据库的一种存储引擎,是一种行级锁。

 

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.1ID

 

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学习笔记(一)