自学mysql数据库的回顾(1/2)


这部分知识很重要,不论是java也好,其他编程语言也罢,都需要数据库的学习,所以对这块mysql数据库的知识进行一个回顾…

MYSQL数据库简介

mysql是一款开放源码的数据库管理系统,高效又强大。

1、DB、DBMS、sql三者之间的关系?
DB:全称DataBase,翻译过来就是数据库。
DBMS:全称DataBase Management System,翻译过来就是数据库管理系统。mysql就是DBMS。
sql:全称Structured Query Language,翻译过来就是结构化查询语言,是一种专门为关系数据库管理系统操作的语言。
所以,sql是DBMS的语言,DBMS去操作DB。
2、数据库管理系统管理数据库,那么组成数据库的基本单元是表。表中列通常叫做字段,行通常叫做数据。
3、字段有什么属性?
字段名、数据、约束(例如非空约束、唯一约束、主键、外键等)
4、SQL语句的分类:
(1)DQL:代表数据库数据查询语言,是重要占比程度最大的那一块,关键字select。
(2)DML:代表数据库数据操作语言,操作包括增删改,关键字:insert into、delete、update set。
(3)DDL:代表数据定义语言,对表结构的增删改,关键字:
create、drop、alter。
(4)TCL:代表事务控制语言,对事务的上交、回滚。关键字:commit、rollback。
(5)DCL:代表数据控制语言,控制数据操作的权限。关键字:grant(授权)、revoke(撤销权限)等。
注:增删改查有一个术语叫做:CRUD。Create(增)Retrieve(检索)Update(修改)Delete(删除)

MYSQL基本语句

mysql基本语句有哪些?
1、mysql -u -root -p数据库管理员密码(安装时定义好的密码)
登录到mysql数据库
2、show databases;
查看数据库管理系统有哪些数据库,基本的数据库有4个
3、create database 数据库名;
在数据库管理系统中创建数据库
4、drop database if exists 数据库名;
删除数据库管理系统中的数据库,如果这个数据库存在的话。也可删除if exists
5、use 数据库名;
将数据库设置为当前数据库
6、source 数据库脚本目录\脚本名.sql;
导入数据库脚本的数据到当前数据库中
7、mysqldump 数据库名> 数据库脚本路径\脚本名.sql -uroot -p数据库管理员密码
将当前数据库中的数据导出到数据库脚本中
8、show tables;
查看当前数据库中的表
9、desc 表名;
查看表的结构(字段)
10、exit
退出数据库管理系统

MYSQL之DQL

全称Data Query Language,翻译过来就是数据查询语言。

DQL包括什么语句?
1、select 字段 from 表名;
查看表中某一字段的数据,字段可以添加多个,中间用逗号隔开。如果想查看表中的全部字段,可以使用*代表全部字段。
注:其中的字段可以进行基本的运算,例如乘除加减,但是所有的null进行基本运算都会成为null,如果想要将null输出为0,就可以用ifnull(字段,0)来处理。
2、select 字段 from 表名 where 数据条件;
查看表中某一字段的条件数据,where后面接条件语句。
mysql的条件语句都有哪些?
(1)>大于
(2)<小于
(3)=等于
(4)<>不等于
(5)between and在两者之间
(6)in()包含于
(7)and并且,and优先级大于or,能用括号用括号括起来
(8)or或者
(9)like模糊查询,其中%代表任意多个字符,_代表一个字符
注:在使用字符串的时候要用单引号括起。
3、as 字符串
用于表名或者字段名后,临时重命名
4、select 字段 from 表名 group by 字段名 having 条件;
查询表中某个字段的分组数据,having代表筛选进一步的条件
注:select后面不建议加于分组无关的字段(除了本字段名和分组函数),因为就算不报错,那些无关的字段也毫无意义(数据不匹配)。
5、select 字段 from 表名 order by sal/desc;
按照从小到大/从大到小查询表中某个字段的数据
6、select 分组函数(字段) from 表名;
查询表中某个字段处理过的数据,由多行处理成一行
分组函数有哪些?
(1)max()字段的最大数据
(2)min()字段的最小数据
(3)avg()字段的平均值
(4)count()字段数据的计数
(5)sum()字段数据的总和
注:分组函数会自动忽略null。
注:分组函数不能直接使用在where语句后面。因为分组函数是先分组再分组函数,而分组是在where后面执行。
7、select distinct 字段 from 表名;
查询表中字段的查重数据

总结DQL常用语法的书写顺序和执行顺序:
select 5
分组函数(字段名) as 临时名,字段名
from 1

where 2
条件
group by 3
字段名
having 4
条件
order by 6
顺序

MYSQL之DML

DML全称Data Manipulation Language,翻译过来就是数据操作语言,就是数据的增删改。

增删改表中数据的语法:
1、增加数据语法:
insert into 表名(字符名,字符名…) values(value,value);
2、删除数据语法:
delete from 表名 where 条件;
注意:如果不加条件默认删除表中所有数据,这种删除可恢复,删除大数据比较慢。
如果想要删除快,就用truncate table 表名,但是不可恢复。
3、改数据的语法:
update 表名 set字段名1=value,字段名2=value where 条件;
注意:如果不加条件默认修改表中所有数据
4、数据的复制:
insert into 表名 select 字段 from 表名;

MYSQL之DDL

DDL全称Data Definition Language,翻译过来就是数据定义语言,就是表中结构的增删改。

比增删改表结构的语法:
1、增加字段的语法:
create table(字段名 数据类型,字段类型 数据类型…);
字段的常用数据类型有哪些?
(1)int整数型
(2)bigint长整型
(3)float浮点型
(4)char定长字符串(固定长度,不可变)
(5)varchar可变字符串
(6)date日期类型
(7)BLOB二进制大对象(媒体和图片)
(8)CLOB字符串大对象(超长文本)
注:后面可跟约束。约束有哪些?
(1)default设置数据创建时的默认值
(2)not null非空约束
(3)unique唯一约束,要求字段中的数据不能重复
联合唯一约束:unique(字段名1,字段名2)又称为表级约束。
两个合起来要求数据不一致。
(4)主键约束:primary key。
什么是主键?
主键是记录这行数据在这张表中唯一的标识。
注:要求主键不能重复,不可以为空,不建议与业务挂钩,每个表只能定义一个主键,不建议使用复合主键,主键支持自增。
(5)外键约束:forign key
什么是外键?
子表中的字段如果和父表有关联,那么可以在子表中的那个字段添加外键约束字段中的数据和父表中的字段数据是包含关系,不能够随便设置或修改子表的字段数据。
语法:foreign key(子表中的字段) references 父表名(父表中的字段);
注:两个字段类型要一致,有的引擎不支持外键,外键可以是主键,可以为null,必须是唯一的。
2、删除表:
drop table 表名;
3、表的复制:
create table as select 字段 from 表名;
4、表的修改:
alter table 表名

MYSQL之存储引擎

常见的有:
(1)MylSAM存储引擎:存储表结构定义frm、存储表中数据MYD、存储表上索引MYI,不支持事务。优点:可被压缩,检索效率高。
(2)InnoDB存储引擎:支持事务,不能被压缩,安全,重量级
(3)MEMORY存储引擎:不支持事务。数据容量丢失。检索速度最快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值