本篇内容主要讲解“MySQL数据库的概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql数据库的概念介绍”吧!1.数据库概念数据库(Database)是按照数据结构来组织、存储和管理
本篇内容主要讲解“MySQL数据库的概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql数据库的概念介绍”吧!
关系型数据库有: oracle
、mysql
、postgresql
、SQL Server
、DB2
等;
非关系型数据库有:NoSql
、MongoDB
、Cloudant
、Redis
、elasticsearch
、HBase
等;
优点:
容易理解,二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解 易于维护,都是使用表结构,格式一致;
使用方便,通用的sql语言使得操作关系型数据库非常方便;
缺点:
读写性能比较差,尤其是海量数据的高效率读写;
固定的表结构,灵活度不高;
每一步都要进行加锁的操作,增加数据库负担;
不擅长对简单查询需要快速返回结果的处理;
优点:
格式灵活,存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型;
无需经过sql层的解析,读写性能很高;
基于键值对,数据没有耦合性,容易扩展;
缺点:
不提供sql支持,学习和使用成本较高;
无事务处理;
数据结构相对复杂,复杂查询方面稍欠;
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL;
整数:tinyint
、smallint
、mediumint
、int
、bigint
;
浮点数:float
、double
、real
、decimal
;
日期和时间:date
、time
、datetime
、timestamp
、year
;
字符串:char
、varchar
;
文本类型:tinytext
、text
、mediumtext
、longtext
;
二进制:tinyblob
、blob
、mediumblob
、longblob
;
对数据类型的修饰符:unsigned
、not null
、default
;
DDL:数据库定义语言,负责数据库定义,包括CREATE
、ALTER
、DROP
;
# 创建库create database Student;# 如果没有Student这个库则创建它,character set指定字符集为utf8, 排序规则为utf8_bincreate datebase if not exists Student character set utf8 collate utf8_bin# 删除库drop database Student;# 修改库alter database Student character set = utf8mb4alter 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:数据库操作语言, 负责数据集对象操作,包括INSERT
、DELETE
、UPDATE
、SELECT
;
# 给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:数据库控制语言, 负责权限访问控,包括GRANT
、REVOKE
;
# 先创建用户,再授权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
结尾表示以以竖行显示
查询表上的所有的数据;
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数据库的概念介绍”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: MySQL数据库的概念介绍
本文链接: https://lsjlt.com/news/229265.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0