MySQL学习笔记
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Fromwheregroup byhavingselectorder bylimit;
模糊查询:使用like关键字,下划线‘_’代表一个字符,百分号%代表任意字符。
字段控制查询:
--去除重复记录,命令:select distinct字段名from表名;
--把查询字段的结果进行运算生成新的字段,必须都是数据型,例如:SELECT * , IFNULL(age ,0) + IFNULL(score,0) FROM student;
--Having后Fra Baidu bibliotek可以使用聚合函数;
--Where后面不能使用聚合函数;
Limit,指定从哪一行开始,总共查询几行(行数从0开始计数)。
格式:select * from表名limit参数1,参数2;,
例如,limit 0,3,表示从第1行开始查询,一共查3条数据。
条件查询运算符及关键字有:
运算符:=(等于)、!=(不等于)、<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)
--Group by +聚合函数,对分组之后的数据做计算。
--Group by + having,用来分组查询后指定一些条件来输出查询结果。Having的作用于where一样,但having只能用在group by后面。
Having与where的区别:
--Having是指分组后对数据进行过滤;
--Where是在分组前对数据进行过滤;
7.MySQL数据库:
A.系统数据库(安装完成之后默认自带4个):
a.Information_schema:存储数据库对象信息,如用户表信息,列信息,里面的内容不能动。
b.Performance_schema:存储数据库服务器性能参数信息,里面的内容不能动。
c.Mysql:存储数据库用户权限信息。
d.Sys:通过这个库可以快速的了解系统的元数据信息,以视图的形式把Information_schema和Performance_schema结合起来,让用户更容易理解相关的数据。
Lock对数据库的特定部分进行锁定,
e.TCL:事务控制语言,常用语句有:
Commit提交事务处理,
Rollback事务处理回滚,
Savepoint设置保存点,
17.结果集指的是查询结果显示的表格。
18.常用数据类型:
Double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数;
B.用户数据库,用户自己创建的数据库。
8.常用命令:
a.创建数据库:Create database数据库名;
b.删除数据库:drop database数据库名;
c.查看数据库:show databases;
d.使用数据库:use数据库名;
e.查看数据库表:show tables;
9.常用的图形化管理工具:Navicat,要先安装好数据库才能安装Navicat,否则会报错。
10.MySQL的端口号:3306
11.目前通用的字符集编码是:utf-8
12.数据库对象:存储、管理和使用数据的不用结构形式,如:表,视图,存储过程,函数,触发器,事件等。
13.数据库:存储数据库对象的容器。
14.存储引擎:MySQL中的数据都使用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制,索引技巧,锁定水平,并且最终提供不同的功能和能力,这种存储技术就叫做存储引擎,存储引擎分为以下几种:
a.MYISAM:不支持事务,也不支持外键,访问速度快,对事务完整性没有要求或者以select、insert为主的应用基本都可以使用这个引擎。MySQL5.5及以前的版本默认的存储引擎就是MYISAM。
b.INNODB:支持事务,提供了具有提交、回滚、崩溃恢复能力的事务安全。但是处理效率没有MYISAM高。MySQL5.5之后的版本默认的存储引擎为INNODB。
Delete删除数据库中的数据,命令:delete from表名where条件;
c.DQL:数据查询语言,用来查询数据,常用的语句有:
Select选择(查询)数据,
Select语句的书写顺序:
Selectfromwheregroup byhavingorder bylimit;
Select语句的执行顺序:
Min():计算制定列的最小值;
Sum():计算制定列的和;
AVG():计算制定列的平均值;
分组查询,在使用分组查询时,select后面直接跟的字段一般都要在group by后面出现。
--Group by只显示每个组的第一条记录,但与distinct去重复不一样。
--Group by + group_concat(),可以显示每个分组里面包含的记录的集合。
19.在MySQL中,字符串类型和日期类型都要用单引号括起来,比如:’mysql’,’2020-01-01’
20.在命令提示行窗口里面用select语句,可以在语句结尾处加上\G ;,来改变显示的效果(按每条记录来显示)。
21.Ctrl键加/,可以对一行进行注释。
第三部分,数据完整性
22.数据完整性,是指保证用户输入的数据是正确的,分为:
--对查询结果取别名,用as关键字。
查询结果排序:使用关键字order by,ASC升序(默认),DESC降序。
聚合函数:
Count():统计制定列不为NULL的记录行数;与NULL值的字段进行计算时,结果都为NULL,可以使用IFNULL(字段名,0),把NULL字段设置为0再参加计算。
Max():计算制定列的最大值;
数据类型约束,数值型,字符型,日期型
非空约束(not null)
默认值约束(default)
d.引用完整性,表与表之间的对应关系,通过外键来实现,创建外键的条件:
--两个表的主键和外键的数据类型要一致;
--两个表必须都是innodb类型。
第四部分,多表查询
23.表之间的关系:一对一,一对多(添加外键实现,不需要创建中间表),多对多(需要创建中间表,通过中间与其他表之间创建外键来实现)。
alter table表名add列名数据类型;添加列
Alter table表名drop列名;删除列
Alter table表名modify列名数据类型;修改列的数据类型
Alter table表名change原列名新列名数据类型;修改列名
alter table add constraint在已有的表上增加约束,
d.SQL Server:全面,效率高,界面好,操作容易,但是不跨平台,适用于中小型企业领域,微软公司产品,收费!
3.数据库类型:关系型数据库(Oracle、DB2、MySQL、SQL Server),非关系型数据库NOsql(MongoDB、Redis、HBase)。
4.RDBMS(关系型数据库)专业术语:数据库,表,列,行,主键,外键,索引。
5.修改MySQL数据库的密码:
方法一:命令提示符中,在数据库”MySQL”下执行:alter user‘root’@’localhost’identidied by‘新密码’;
方法二:在命令提示符下执行:mysqladmin -u root–p‘新密码’;回车后输入’旧密码’。
6.语句结束要用分号;。
a.实体完整性:表中的一行就是一个实体,标识每一行数据不重复,属于行级约束,类型有:
主键约束(primary key),每个表中要有一个主键,数据唯一,并且不能为NULL。添加方式:
--Create table表名(字段1数据类型primary key,字段2数据类型);
--create table表名(字段1数据类型,字段2数据类型,primary key(要设置主键的字段名));
自动增长列(auto_increment),制定列的数据自动增长,即使数据删除了,还是会从删除的序号继续往下增长。添加方式:
Create table表名(字段1数据类型primary key auto_increment,字段2数据类型unique);
b.域完整性,限制单元格的数据正确,域代表单元格。分为:
--create table表名(字段1数据类型,字段2数据类型,primary key(主键1,主键2));---联合主键
--Alter table表名add constraint primary key(主键);
唯一约束(unique),指定列的数据不能重复,但可以为空值。添加方式:
Create table表名(字段1数据类型,字段2数据类型Unique);
MySQL学习笔记
第一部分,数据库介绍
第二部分,SQL语言
第三部分,数据完整性
第四部分,多表查询
第五部分,子查询
第六部分,事务
第七部分,视图
第八部分,自定义函数和存储过程
第九部分,索引
第一部分,数据库介绍
1.DBMS:数据库管理系统,一个管理数据库的软件,通常所说的数据库(Oracle、DB2、MySQL、SQL Server)都是指的数据库管理系统。
Show create table查看创建表的信息,命令:show create table表名;
create index创建数据库表的索引,
drop table删除数据库表,
drop index删除数据库表的索引,
truncate删除表中的所有行,
alter table更改表结构(如增加、修改、删除列),命令:
Char:固定长度字符串类型;
Varchar:可变长度字符串类型;
Text:字符串类型,用于存储大文本;
Blob:二进制类型,可用于存储二进制文件,如声音、视频、图片;
Date:日期类型,格式为:yyyy-mm-dd
Time:时间类型,格式为:hh:mm:ss
Datetime:日期时间型,格式为:yyyy-mm-dd hh:mm:ss
Create database创建数据库,命令:Create database数据库名character set utf8;
create table创建数据库表,命令:create table表名(列名1数据类型,列名2数据类型);
rename table原表名to新表名;修改表的名字
Desc查看表的字段信息,命令:dese表名;
b.DML:数据操作语言(针对表里面的数据),用来操作数据库表中的记录,常用的语句有:
Insert添加数据到数据库中,命令:insert into表名(列1,列2,列3,列4) values (值1,值2,值3,值4);
Update修改数据表中的数据,命令:update表名set列名=新数据where列名=值;
2.常见数据库:
a.Oracle:运行稳定,可移植性高,功能齐全,性能超群,适用于大型企业领域,甲骨文公司的产品,收费!
b.DB2:速度快,可靠性好,适用于海量数据,恢复性极强,适用于大中型企业领域,IBM公司的产品,收费!
c.MySQL,开源,体积小,速度快,适用于中小型企业领域,甲骨文公司产品,免费!
关键字有:
Between….and;值在什么范围内。
In(集合);值包含在集合中。
Is null;值为空,is not null;值不为空。
And;与
Or;或
Not;非
d.DCL:数据控制语言,用来定义访问权限和安全级别,常用的语句有:
Grant将权限或角色授予用户,
Revoke从用户或数据库角色中回收权限,
格式:select * from表1UNION ALLselect * from表2;
连接查询,通过主外键一致可以解决笛卡尔积的问题。
--99查询法,例子:select * from A,B where A.id=B.id;
c.MEMORY:使用内存来存储数据,访问非常快,但是不安全,一旦服务器关闭数据就会丢失。
15.文件.frm存储表定义,.myd(mydata)存储数据,.MYI(myindex)存储索引。(在data文件夹下)
第二部分,SQL语言
16.Sql分类:
a.DDL:数据定义语言(跟表结构相关的操作,与表里面的数据无关),用来定义数据库对象,常用的语句有:
24.拆分表可以避免大量冗余数据的出现。
25.多表查询
合并结果集,指的是把两个select语句的查询结果合并到一起,被合并的两个结果列数和列的数据类型必须相同,合并方式有:
--Union,合并时去除重复记录(一行);
格式:select * from表1UNIONselect * from表2;
--Union all,合并时不会移除重复记录(一行);
模糊查询:使用like关键字,下划线‘_’代表一个字符,百分号%代表任意字符。
字段控制查询:
--去除重复记录,命令:select distinct字段名from表名;
--把查询字段的结果进行运算生成新的字段,必须都是数据型,例如:SELECT * , IFNULL(age ,0) + IFNULL(score,0) FROM student;
--Having后Fra Baidu bibliotek可以使用聚合函数;
--Where后面不能使用聚合函数;
Limit,指定从哪一行开始,总共查询几行(行数从0开始计数)。
格式:select * from表名limit参数1,参数2;,
例如,limit 0,3,表示从第1行开始查询,一共查3条数据。
条件查询运算符及关键字有:
运算符:=(等于)、!=(不等于)、<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)
--Group by +聚合函数,对分组之后的数据做计算。
--Group by + having,用来分组查询后指定一些条件来输出查询结果。Having的作用于where一样,但having只能用在group by后面。
Having与where的区别:
--Having是指分组后对数据进行过滤;
--Where是在分组前对数据进行过滤;
7.MySQL数据库:
A.系统数据库(安装完成之后默认自带4个):
a.Information_schema:存储数据库对象信息,如用户表信息,列信息,里面的内容不能动。
b.Performance_schema:存储数据库服务器性能参数信息,里面的内容不能动。
c.Mysql:存储数据库用户权限信息。
d.Sys:通过这个库可以快速的了解系统的元数据信息,以视图的形式把Information_schema和Performance_schema结合起来,让用户更容易理解相关的数据。
Lock对数据库的特定部分进行锁定,
e.TCL:事务控制语言,常用语句有:
Commit提交事务处理,
Rollback事务处理回滚,
Savepoint设置保存点,
17.结果集指的是查询结果显示的表格。
18.常用数据类型:
Double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数;
B.用户数据库,用户自己创建的数据库。
8.常用命令:
a.创建数据库:Create database数据库名;
b.删除数据库:drop database数据库名;
c.查看数据库:show databases;
d.使用数据库:use数据库名;
e.查看数据库表:show tables;
9.常用的图形化管理工具:Navicat,要先安装好数据库才能安装Navicat,否则会报错。
10.MySQL的端口号:3306
11.目前通用的字符集编码是:utf-8
12.数据库对象:存储、管理和使用数据的不用结构形式,如:表,视图,存储过程,函数,触发器,事件等。
13.数据库:存储数据库对象的容器。
14.存储引擎:MySQL中的数据都使用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制,索引技巧,锁定水平,并且最终提供不同的功能和能力,这种存储技术就叫做存储引擎,存储引擎分为以下几种:
a.MYISAM:不支持事务,也不支持外键,访问速度快,对事务完整性没有要求或者以select、insert为主的应用基本都可以使用这个引擎。MySQL5.5及以前的版本默认的存储引擎就是MYISAM。
b.INNODB:支持事务,提供了具有提交、回滚、崩溃恢复能力的事务安全。但是处理效率没有MYISAM高。MySQL5.5之后的版本默认的存储引擎为INNODB。
Delete删除数据库中的数据,命令:delete from表名where条件;
c.DQL:数据查询语言,用来查询数据,常用的语句有:
Select选择(查询)数据,
Select语句的书写顺序:
Selectfromwheregroup byhavingorder bylimit;
Select语句的执行顺序:
Min():计算制定列的最小值;
Sum():计算制定列的和;
AVG():计算制定列的平均值;
分组查询,在使用分组查询时,select后面直接跟的字段一般都要在group by后面出现。
--Group by只显示每个组的第一条记录,但与distinct去重复不一样。
--Group by + group_concat(),可以显示每个分组里面包含的记录的集合。
19.在MySQL中,字符串类型和日期类型都要用单引号括起来,比如:’mysql’,’2020-01-01’
20.在命令提示行窗口里面用select语句,可以在语句结尾处加上\G ;,来改变显示的效果(按每条记录来显示)。
21.Ctrl键加/,可以对一行进行注释。
第三部分,数据完整性
22.数据完整性,是指保证用户输入的数据是正确的,分为:
--对查询结果取别名,用as关键字。
查询结果排序:使用关键字order by,ASC升序(默认),DESC降序。
聚合函数:
Count():统计制定列不为NULL的记录行数;与NULL值的字段进行计算时,结果都为NULL,可以使用IFNULL(字段名,0),把NULL字段设置为0再参加计算。
Max():计算制定列的最大值;
数据类型约束,数值型,字符型,日期型
非空约束(not null)
默认值约束(default)
d.引用完整性,表与表之间的对应关系,通过外键来实现,创建外键的条件:
--两个表的主键和外键的数据类型要一致;
--两个表必须都是innodb类型。
第四部分,多表查询
23.表之间的关系:一对一,一对多(添加外键实现,不需要创建中间表),多对多(需要创建中间表,通过中间与其他表之间创建外键来实现)。
alter table表名add列名数据类型;添加列
Alter table表名drop列名;删除列
Alter table表名modify列名数据类型;修改列的数据类型
Alter table表名change原列名新列名数据类型;修改列名
alter table add constraint在已有的表上增加约束,
d.SQL Server:全面,效率高,界面好,操作容易,但是不跨平台,适用于中小型企业领域,微软公司产品,收费!
3.数据库类型:关系型数据库(Oracle、DB2、MySQL、SQL Server),非关系型数据库NOsql(MongoDB、Redis、HBase)。
4.RDBMS(关系型数据库)专业术语:数据库,表,列,行,主键,外键,索引。
5.修改MySQL数据库的密码:
方法一:命令提示符中,在数据库”MySQL”下执行:alter user‘root’@’localhost’identidied by‘新密码’;
方法二:在命令提示符下执行:mysqladmin -u root–p‘新密码’;回车后输入’旧密码’。
6.语句结束要用分号;。
a.实体完整性:表中的一行就是一个实体,标识每一行数据不重复,属于行级约束,类型有:
主键约束(primary key),每个表中要有一个主键,数据唯一,并且不能为NULL。添加方式:
--Create table表名(字段1数据类型primary key,字段2数据类型);
--create table表名(字段1数据类型,字段2数据类型,primary key(要设置主键的字段名));
自动增长列(auto_increment),制定列的数据自动增长,即使数据删除了,还是会从删除的序号继续往下增长。添加方式:
Create table表名(字段1数据类型primary key auto_increment,字段2数据类型unique);
b.域完整性,限制单元格的数据正确,域代表单元格。分为:
--create table表名(字段1数据类型,字段2数据类型,primary key(主键1,主键2));---联合主键
--Alter table表名add constraint primary key(主键);
唯一约束(unique),指定列的数据不能重复,但可以为空值。添加方式:
Create table表名(字段1数据类型,字段2数据类型Unique);
MySQL学习笔记
第一部分,数据库介绍
第二部分,SQL语言
第三部分,数据完整性
第四部分,多表查询
第五部分,子查询
第六部分,事务
第七部分,视图
第八部分,自定义函数和存储过程
第九部分,索引
第一部分,数据库介绍
1.DBMS:数据库管理系统,一个管理数据库的软件,通常所说的数据库(Oracle、DB2、MySQL、SQL Server)都是指的数据库管理系统。
Show create table查看创建表的信息,命令:show create table表名;
create index创建数据库表的索引,
drop table删除数据库表,
drop index删除数据库表的索引,
truncate删除表中的所有行,
alter table更改表结构(如增加、修改、删除列),命令:
Char:固定长度字符串类型;
Varchar:可变长度字符串类型;
Text:字符串类型,用于存储大文本;
Blob:二进制类型,可用于存储二进制文件,如声音、视频、图片;
Date:日期类型,格式为:yyyy-mm-dd
Time:时间类型,格式为:hh:mm:ss
Datetime:日期时间型,格式为:yyyy-mm-dd hh:mm:ss
Create database创建数据库,命令:Create database数据库名character set utf8;
create table创建数据库表,命令:create table表名(列名1数据类型,列名2数据类型);
rename table原表名to新表名;修改表的名字
Desc查看表的字段信息,命令:dese表名;
b.DML:数据操作语言(针对表里面的数据),用来操作数据库表中的记录,常用的语句有:
Insert添加数据到数据库中,命令:insert into表名(列1,列2,列3,列4) values (值1,值2,值3,值4);
Update修改数据表中的数据,命令:update表名set列名=新数据where列名=值;
2.常见数据库:
a.Oracle:运行稳定,可移植性高,功能齐全,性能超群,适用于大型企业领域,甲骨文公司的产品,收费!
b.DB2:速度快,可靠性好,适用于海量数据,恢复性极强,适用于大中型企业领域,IBM公司的产品,收费!
c.MySQL,开源,体积小,速度快,适用于中小型企业领域,甲骨文公司产品,免费!
关键字有:
Between….and;值在什么范围内。
In(集合);值包含在集合中。
Is null;值为空,is not null;值不为空。
And;与
Or;或
Not;非
d.DCL:数据控制语言,用来定义访问权限和安全级别,常用的语句有:
Grant将权限或角色授予用户,
Revoke从用户或数据库角色中回收权限,
格式:select * from表1UNION ALLselect * from表2;
连接查询,通过主外键一致可以解决笛卡尔积的问题。
--99查询法,例子:select * from A,B where A.id=B.id;
c.MEMORY:使用内存来存储数据,访问非常快,但是不安全,一旦服务器关闭数据就会丢失。
15.文件.frm存储表定义,.myd(mydata)存储数据,.MYI(myindex)存储索引。(在data文件夹下)
第二部分,SQL语言
16.Sql分类:
a.DDL:数据定义语言(跟表结构相关的操作,与表里面的数据无关),用来定义数据库对象,常用的语句有:
24.拆分表可以避免大量冗余数据的出现。
25.多表查询
合并结果集,指的是把两个select语句的查询结果合并到一起,被合并的两个结果列数和列的数据类型必须相同,合并方式有:
--Union,合并时去除重复记录(一行);
格式:select * from表1UNIONselect * from表2;
--Union all,合并时不会移除重复记录(一行);