MySQL数据库的概念介绍

本篇内容主要讲解“MySQL数据库的概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的概念介绍”吧!

创新互联服务项目包括伊美网站建设、伊美网站制作、伊美网页制作以及伊美网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,伊美网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到伊美省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1.数据库概念
  • 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库;

  • 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据;

2.常用的数据库分类
  • 关系型数据库有OracleMySQLPostgreSQLSQL ServerDB2等;

  • 非关系型数据库有NOSQLMongoDBCloudantredisElasticsearchHBase等;

MySQL数据库的概念介绍

3.关系型数据库的优缺点

优点:

  • 容易理解,二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解 易于维护,都是使用表结构,格式一致;

  • 使用方便,通用的SQL语言使得操作关系型数据库非常方便;

缺点:

  • 读写性能比较差,尤其是海量数据的高效率读写;

  • 固定的表结构,灵活度不高;

  • 每一步都要进行加锁的操作,增加数据库负担;

  • 不擅长对简单查询需要快速返回结果的处理;

4.非关系型数据库的优缺点

优点:

  • 格式灵活,存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型;

  • 无需经过sql层的解析,读写性能很高;

  • 基于键值对,数据没有耦合性,容易扩展;

缺点:

  • 不提供sql支持,学习和使用成本较高;

  • 无事务处理;

  • 数据结构相对复杂,复杂查询方面稍欠;

5.MySQL数据库的概念
  • MySQL是一种关系型数据库管理软件;

  • 也是Web世界中使用最广泛的数据库服务器

  • MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB;

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL;

6.MySQL数据类型
  • 整数:tinyintsmallintmediumintintbigint

  • 浮点数:floatdoublerealdecimal

  • 日期和时间:datetimedatetimetimestampyear

  • 字符串:charvarchar

  • 文本类型:tinytexttextmediumtextlongtext

  • 二进制:tinyblobblobmediumbloblongblob

  • 对数据类型的修饰符:unsignednot nulldefault

7.SQL语句分类
  • DDL:数据库定义语言,负责数据库定义,包括CREATEALTERDROP

# 创建库
create database Student;
# 如果没有Student这个库则创建它,character set指定字符集为utf8, 排序规则为utf8_bin
create datebase if not exists Student character set utf8 collate utf8_bin
# 删除库
drop database Student;
# 修改库
alter database Student character set = utf8mb4
alter database Student collate = utf8mb4_general_ci
# 创建表
create table students (id int not null primary key auto_increment, name varchar(250) not null, class varchar(250) not null) engine=InnoDB default charset=utf8;
# 查看表结构
desc students;
# 修改表
alter table students add gender enum('f','m');
alter table students drop gender;
alter table students change name username varchar(100) after id;
alter table students modify username varchar(100) first;
# 删除表
drop table students;
  • DML:数据库操作语言, 负责数据集对象操作,包括INSERTDELETEUPDATESELECT

# 给students表增加数据
insert into students (class,username) values ('一年级', 'Luky'), ('二年级', 'Tom'), ('三年级', 'Mark');
# 修改students表中id = 1 的字段class的值为“初一”
update students set class = '初一' where id = 1;
# 删除class为一年级的字段
delete from students where class = '一年级';
  • DCL:数据库控制语言, 负责权限访问控,包括GRANTREVOKE

# 先创建用户,再授权
create user Mark@'172.16.19.%' identified by '123456';
grant all on *.* to Mark@'172.16.19.%';
flush privileges;
# 创建用户的同时给用户授权
grant all on *.* to Mark@'172.16.19.%' identified by '123456';
flush privileges;
# 给用户授予某些权限
show grants for Mark@'172.16.19.%';
# 撤销授权
revoke select ON *.* from Mark@'172.16.19.%';
flush privileges;
# 查看用户的权限
show grants for Mark@'172.16.19.%';
# 删除用户
delete from mysql.user where user = "Mark";
flush privileges;
# 删除用户
drop user 'Mark'@'192.168.%.%';
# 修改密码
(1)set password for 'Mark'@'192.168.%.%' = password('123456');
(2)使用update命令,直接修改 mysql.user 用户表,修改之后flush priveleges;
  • TCL:事务控制语言,负责ACID事务处理,包括commit(提交)rollback(回滚)

# SQL删除记录语句
sql = "DELETE FROM Student WHERE AGE > %s" % (30)
try:
    cursor.execute(sql)
    # 向数据库提交
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()
  • SQL语句不区分大小写,句尾使用分号表示一条语句结束, \G 结尾表示以以竖行显示

8.SELECT 语句

MySQL数据库的概念介绍

  • 查询表上的所有的数据;

select * from Student
  • 查询部分数据;

select id,name from Student;
  • as给字段取别名,可以给一个字段取,也可以给多个字段取;

select id as num,name from Student;
select id as num,name as username from Student;
  • where子句用于指明过滤条件,可以使用的算数运算符有:+, -, * ,/ ,= ,!= ,<=, >=,连接词有:and , or

select * from Student where id >= 1;
select * from Student where id <= 5 and id >1;
select * from Student where id <3 or id >10;
select * from Student where id between 1 and 5;    # between 较小的数 and 较大的数
  • like语句用于模糊匹配,%表示任意长度的字符,_表示任意单个字符

select * from Student where class like 'Ma%';
select * from Student where class like 'Ma_k';
  • 可以使用null对值进行判断

select * from Student where id is not null;
select * from Student where id is null;
  • group by 子句可以根据指定的查询条件将查询结构进行分组,用于做聚合运算,可以使用的聚合函数:avg()max()min()count()sum()

select age,gender from students group by gender; 
select avg(age),gender from students group by gender; 
select min(age), gender from students group by gender;
select max(age), gender from students group by gender;
select count(id), gender from students group by gender;
  • 使用order by语句排序,默认是asc,表示升序排列,desc是降序;

select * from Student order by id desc;
  • having子句用于将分组之后的结果再次过滤;

select avg(age) as 'average_age', gender from students group by gender having average_age > 50;
  • limit 子句用于对查询的结果进行输出行数的限制 ;

# 选前5行
select id,name from students order by id desc limit 5; 
# 前4个不选,从第5行开始选2行
select id,name from students order by id limit 4, 2;
  • 子句的书写顺序:where -> group by -> having -> order by -> limit

select *,avg(score) as '各班平均成绩' from students where id > 1 group by class having avg(score) > 55 order by score desc limit 3 ;

到此,相信大家对“MySQL数据库的概念介绍”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文章名称:MySQL数据库的概念介绍
文章分享:/article18/pgdggp.html

成都网站建设公司_创新互联,为您提供网站营销企业网站制作服务器托管小程序开发关键词优化微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发