
MySQL
文章平均质量分 92
关于MySQL数据库管理系统的学习
GG_Bond21
关注回关,大家多多关照
展开
-
MySQL基础
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内、有组织的、可共享的、统一管理的大量数据的集合为了解决上述问题,于是专家们设计出了更利于管理数据的数据库客户端 && 服务器数据库管理系统分为服务器和客户端,以MySQL为例,使用MySQL时会先通过 mysql命令 连接MySQL服务器mysql命令就是MySQL客户端,而MySQL服务器可以通过 ps命令 进行查看查看到的mysqld就是MySQL服务器,使用mysql命令实际就是在连接mysqld服务。原创 2023-06-07 02:06:10 · 728 阅读 · 7 评论 -
MySQL库的操作
创建数据库若创建数据库时未指明数据库的编码格式或校验规则,则默认使用MySQL配置文件中对应的编码格式或校验规则采用默认的编码格式和校验规则创建数据库创建数据库时不指定数据库的编码格式和校验规则即采用默认若没有对MySQL的配置文件进行过修改,则默认的编码格式是utf8,默认校验规则是utf8_general_ci指定utf8编码格式创建数据库创建数据库时通过charset指明数据库的编码格式即可。原创 2023-06-08 00:36:32 · 1281 阅读 · 4 评论 -
MySQL表的操作
本博客中主要讲解表的DDL操作,即对表的结构进行控制。原创 2023-06-09 02:07:00 · 495 阅读 · 6 评论 -
MySQL数据类型
MySQL本身是不支持bool类型的,当把一个数据设置成bool类型时,数据库会自动将其转换成tinyint(1)的数据类型,其实这个就是变相的bool类型,因为tinyint(1)只有1和0两种取值,可以分别对应bool类型的true和false。原创 2023-06-10 09:00:00 · 1294 阅读 · 4 评论 -
MySQL表的约束
再创建一个学生表作为从表,表中包含学生的id、姓名和学生所在班级对应的id,并将学生表中的班级id列设置成外键,关联班级表中的班级id列。但若插入学生表的记录对应的班级id是3或不指定,相当于插入学生表的这条记录对应的班级并不存在,此时将会插入失败,这就是外键约束。主键约束就是,插入表中的记录的主键字段不能重复,若插入记录的主键与表中已有记录的主键重复,此时就会因为主键冲突而插入失败。向学生表中插入记录时,若插入的记录对应的班级id是班级表中存在的,或者插入的班级id为null,那么此时是允许进行插入的。原创 2023-06-11 22:45:15 · 3541 阅读 · 2 评论 -
MySQL表CRUD
在select的column列表中添加表达式查询,查询的表达式为语文、数学和英语成绩之和,为了方便观察可以将表达式对应的列指定别名为"总分",在where子句中指明筛选条件为三科成绩之和小于200。通过插入查询语句将去重查询后的结果插入到临时表中,由于临时表和测试表的结构相同,并且select进行的是全列查询,因此在插入时不用在表名后指明column列表。在where子句中指明筛选条件为QQ号为NULL,在select的column列表中指明要查询的列为姓名和QQ号,可查询QQ号未知的同学。原创 2023-06-14 16:44:04 · 1177 阅读 · 4 评论 -
MySQL内置函数
在显示评论信息时,若只想显示评论的日期而不显示具体时间,可在查询sendtime字段时,通过date函数截取sendtime的日期部分进行显示。对于多字节字符而言,不同编码中一个字符所占的字节个数不同,如utf8中一个字符占3个字节,而gbk中一个字符占2个字节。用于对一个数进行向上取整,向上取整本质是向正无穷方向取整,因此负数向上取整后得到的是第一个大于等于该数的整数。在显示评论信息时,若要查询2分钟内发布的评论信息,实际就是筛选出评论时间加上2分钟后大于当前时间的评论。原创 2023-07-01 02:04:28 · 587 阅读 · 2 评论 -
MySQL复合查询
显示信息中包含部门的平均工资,需同时使用员工表和上述的查询结果进行多表查询,这时可将上述查询作为子查询放在from子句中,然后对员工表和临时表取笛卡尔积,在where子句中指明筛选条件为员工的部门号等于临时表中的部门号,并且员工的工资大于临时表中的平均工资。将上述查询作为子查询,在查询员工表时在where子句中使用in关键字,判断员工的工作岗位是子查询得到的若干岗位中的一个,若是则符合筛选条件,由于要求筛选出来的员工不包含10号部门的,因此还需要在where子句中指明筛选条件为部门号不等于10。原创 2023-07-02 22:58:12 · 1006 阅读 · 2 评论 -
MySQL内外连接
若在连接学生表和成绩表时将学生表放在左侧,那么就可以使用左外连接,这时若左侧表中的某条记录没有找到匹配的右侧表中的记录,就会直接显示左侧表中的记录信息,而其对应的右侧表中的列信息将用NULL值进行填充。要显示SMITH的名字和其所在部门的名称,使用复合查询即:取员工表和部门表的笛卡尔积,在where子句中指明筛选条件为员工的部门号等于部门的部门号,筛选出每个员工匹配的部门信息,并指明员工姓名为SMITH,筛选出SMITH的信息和其所在部门的信息。显示SMITH的名字和部门名称。给出一张员工表和一张部门表。原创 2023-07-05 18:13:47 · 724 阅读 · 1 评论 -
MySQL索引特性
而MySQL的Buffer Pool和磁盘实际并不是直接交互的,所谓的MySQL与磁盘交互的基本单位是16KB,指的是MySQL的Buffer Pool与内核缓冲区之间是以16KB为单位进行交互的。数据库文件就是保存在磁盘中的一个个扇区中的,因此找到一个文件本质,即在磁盘上找到保存该文件的所有扇区。若两次IO是在同一时刻发出的,但其请求的扇区地址相差很大,那也只能称为随机访问,因为连续访问中的连续指的是访问的扇区地址的连续,而不是访问时间的连续,由于连续访问不需要过多的定位,因此效率较高。原创 2023-07-08 18:51:35 · 369 阅读 · 4 评论 -
MySQL事务管理
隔离级别越严格,安全性越高,但数据库的并发性能也就越低,在选择隔离级别时需在两者之间找一个平衡点表中只写出了各种隔离级别下进行读操作时是否需要加锁,因为无论哪种隔离级别,只要需进行写操作就一定要加锁。原创 2023-07-11 16:15:34 · 2518 阅读 · 4 评论 -
MySQL视图特性
下面用员工表和部门表作为测试表,员工表中的ename代表的是员工的姓名,deptno代表的是员工所在部门的部门号。部门表中的dname代表的是部门名,deptno代表的是部门的部门号。根本原因就是因为视图和基表使用的是同一份数据,将视图中CLARK所在部门的部门名改为HR后,部门表中10号部门的部门名也变成HR了。当要查询每个员工及其对应的部门名称时,需使用员工表和部门表进行多表查询,并筛选出员工的部门号等于部门的部门号的记录。通过查询员工表,可以看到员工CLARK所在部门的部门号为10。原创 2023-07-11 17:00:47 · 369 阅读 · 1 评论 -
MySQL用户管理
此时该用户查看数据库时,就能查看到test数据库了(创建用户后默认只能看到information_schema数据库,该数据库中保存的是MySQL服务器所维护的所有其他数据库的信息)MySQL中可以存在同名的用户,只要同名用户对应的登录主机不同即可,因为user表中的主键是复合主键,由user列和host列共同承担。但该用户目前只能查看表中的信息,而不能对表中的数据进行修改,因为只授予了该用户select权限。删除用户时若不指明待用户的登录地址,则默认删除的是登录地址为%的用户。原创 2023-07-12 18:06:51 · 640 阅读 · 1 评论 -
使用C语言连接MySQL
要使用C语言连接MySQL,需使用MySQL官网提供的库上传到云服务器下载完毕后将其上传到云服务器即可。下面将下载的库文件解压后存放在一个名为makeuse的目录中进入解压后的目录中,可以看到有一个include子目录和一个lib子目录include目录下存放的是一批头文件bin目录下存放的是动静态库。原创 2023-07-13 10:16:21 · 5371 阅读 · 3 评论