MySQL数据库使用(一)

发布时间:2025-08-31 21:09:57 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:1.数据库概念 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库; 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据; 2.常用的数据库分类 关系型数据库有

1.数据库概念

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

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

2.常用的数据库分类

关系型数据库有: Oracle、MySQL、PostgreSQL、SQL Server、DB2等;

非关系型数据库有:NoSql、MongoDB、Cloudant、Redis、Elasticsearch、HBase等;

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

优点:

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

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

缺点:

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

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

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

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

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

优点:

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

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

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

缺点:

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

无事务处理;

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

5.MySQL数据库的概念

MySQL是一种关系型数据库管理软件;

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

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

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

6.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;

7.SQL语句分类 DDL:数据库定义语言,负责数据库定义,包括CREATE、ALTER、DROP; # 创建库create database Student;# 如果没有Student这个库则创建它,character set指定字符集为utf8, 排序规则为utf8_bincreate datebase ifnot 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 intnotnull primary key auto_increment, name varchar(250)notnull,class varchar(250)notnull) engine=InnoDBdefault 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 setclass=初一where id =1;# 删除class为一年级的字段deletefrom students whereclass=一年级; DCL:数据库控制语言, 负责权限访问控,包括GRANT、REVOKE; # 先创建用户,再授权create user Mark@172.16.19.% identified by123456;grant all on *.* to Mark@172.16.19.%;flush privileges;# 创建用户的同时给用户授权grant all on *.* to Mark@172.16.19.% identified by123456;flush privileges;# 给用户授予某些权限show grants forMark@172.16.19.%;# 撤销授权revoke select ON *.*fromMark@172.16.19.%;flush privileges;# 查看用户的权限show grants forMark@172.16.19.%;# 删除用户deletefrom mysql.user where user ="Mark";flush privileges;# 删除用户drop user Mark@192.168.%.%;# 修改密码1set password forMark@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 语句

查询表上的所有的数据; select*fromStudent 查询部分数据; select id,name fromStudent; as给字段取别名,可以给一个字段取,也可以给多个字段取; select id as num,name fromStudent;select id as num,name as username fromStudent; where子句用于指明过滤条件,可以使用的算数运算符有:+, -, * ,/ ,= ,!= ,<=, >=,连接词有:and , or; select*fromStudentwhere id >=1;select*fromStudentwhere id <=5and id >1;select*fromStudentwhere id <3or id >10;select*fromStudentwhere id between 1and5;# between 较小的数 and 较大的数 like语句用于模糊匹配,%表示任意长度的字符,_表示任意单个字符 select*fromStudentwhereclass like Ma%;select*fromStudentwhereclass like Ma_k; 可以使用null对值进行判断 select*fromStudentwhere id isnotnull;select*fromStudentwhere id isnull; group by 子句可以根据指定的查询条件将查询结构进行分组,用于做聚合运算,可以使用的聚合函数:avg(), max(),min() , count(),sum(); select age,gender from students groupby gender;select avg(age),gender from students groupby gender;select min(age), gender from students groupby gender;select max(age), gender from students groupby gender;select count(id), gender from students groupby gender; 使用order by语句排序,默认是asc,表示升序排列,desc是降序; select*fromStudent order by id desc; having子句用于将分组之后的结果再次过滤; select avg(age)asaverage_age, gender from students groupby 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 >1groupbyclass having avg(score)>55 order by score desc limit 3;

参考:https://www.9xkd.com/user/plan-view.html?id=4200717020

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!