实验: 数据库安全性实验 一、实验目的 创建表和用户管理 创建表单是数据库中最基本的操作,也是使用比较频繁的操作,因此必须掌握SQL的(CREATE语句)的使用方法。而对于用户的管理操作更是一名合格的DBA所必须掌握的.本实验就要求掌握并熟悉这两项基本技能. 用户权限管理 为了保证数据库的安全性,每个DBMS都为系统针对于每一个用户设计了权限管理来保证数据安全.本实验就要求掌握对用户权限管理的的操作方法。 二、实验环境 MYSQL 三、实验前准备 (1)准备电脑,课本(数据库系统概论第五版) (2)了解创建表单和用户管理的命令 (3)了解操作用户权限的命令 四、实验内容与步骤 创建表和用户管理 (1)登录MYSQL数据库,创建三个表 ① 在数据库Tattoo中创建三个表,分别是学生表Student、课程表Course、学生选课表SC,约束以及属性如课本79页。 1. SQL语句 drop database if exists Tattoo ; create database Tatto 继续阅读 >>


刘生玺 18/12/29 11:54:02
个人配置说明:5.7.24 MySQL Community Server (GPL),环境CentOS 7 1.MYSQL 不支持语句触发(for each statement),只支持行触发(for each row,新旧数据通过关键字new和old区别) 实验: 数据库存储和触发器实验 一、实验目的 理解,实现并逐渐熟悉存储过程的使用 存储过程(Stored Procedure)是指一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。使用它的目的主要是它不用像SQL语句一样解释执行,而是相当于二进制文件直接运行即可,提高了效率. 掌握触发器的定义和使用 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。这在实际使用过程中非常实用.作为一名合格的数据库管理人员,是必须要掌握的.这节实验的目的也在于此. 二、实验环境 MYSQL 三、实验前准备 (1)准备电脑,课本(数据 继续阅读 >>


刘生玺 18/12/29 11:47:19
触发器简介 什么是触发器 触发器这个名字实际上起的非常生动了,就是指的在数据库系统中发生某一个动作(比如增删改都是可选的动作)时自动触发预先设置好的另外一个动作,包括但不限于基本的增删改,再配合IF ELSE语句可以实现很多非常强大的功能。 触发器的优点 触发器的优点在于,可以使用简单的配置来实现复杂的功能,这些功能如果想要在应用层面去实现往往需要比较多的代码量。 触发器的缺点 触发器有一个显而易见的缺点,尤其是在MySQL中,由于MySQL仅支持行触发模式,假如数据库系统中现在有一条触发器的功能是:当前表有新数据插入时,将数据同时插入另外一张表,此时,如果我们使用INSERT语句一次性向当前表中插入一千条数据(使用类似于INSERT INTO cur_table(id,name) VALUES(1,’周一‘) (2,'周二')....(1000,'周一千')的批量插入语句),由于行触发的缘故,我们设定的插入触发器将会被触发1000次,这将带来严重的性能问题! 因此,在对性能有要求的场景下不要使用 继续阅读 >>


刘付杰 18/11/26 17:03:20
1.数据复制概述 1.1数据复制定义 数据复制使一个服务上的数据与另一个服务上数据保持同步 1.2复制用途 数据分布 负载均衡 备份 高可用和故障切换 MySQL升级测试 2.数据复制工作原理 2.1复制工作流程介绍(以主从架构为例) MySQL复制原理比较简单,其核心工作示意图如下: 主库把更新操作记录在二进制日志文件中 备库上的I/O线程收到主库的更新事件后,读取新增的二进制日志并写入自己的中继日志中 备库读取中继日志,将事件在数据库上重放,更新自身数据库数据 2.2对主从复制架构的思考 看完图2.1中MySQL主从架构,读者会不会感觉如果去掉中继日志,整个复制流程会更简单?中继日志究竟在复制架构中产生了什么作用? 如果备库去掉写中继日志这个流程,那么备库每次只需要读取binlog事件数据,紧接着直接重放sql事件即可。而增加了中继日志,不仅增加了流程的复杂性,而且多了一次写文件I/O的操作消耗了系统性能 其实中继日志对备机而言就是缓存事件的buffer而已,其作用就是对备机的俩个核心 继续阅读 >>


苗帅 18/11/07 17:35:27
关于MYSQL 安装MYSQL: //安装mysql服务端: sudo apt-get install mysql-server //安装mysql客户端: sudo apt-get install mysql-client //安装mysql的C语言开发接口: sudo apt-get install libmysqlclient-dev MYSQL的基本命令: 启动mysql: service mysql start ![2018-08-15 14-13-49 的屏幕截图](/home/lala/图片/2018-08-15 14-13-49 的屏幕截图.png) ![2018-08-15 14-13-37 的屏幕截图](/home/lala/图片/2018-08-15 14-13-37 的屏幕截图.png) 登录mysql数据库: sudo mysql -uroot -p sudo:切换到root用户下 -p:输入密码 -P:默认端口号 3306 ![ 继续阅读 >>


李重乐 18/08/19 20:11:17
MYSQLC 函数名 含义 mysql_affected_rows() 返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。 mysql_close() 关闭服务器连接。 mysql_commit() 提交事务。 mysql_dump_bebug_info() 让服务器将调试信息写入日志。 mysql_errno() 返回上次调用的MySQL函数的错误编号。 mysql_error() 返回上次调用的MySQL函数的错误消息。 mysql_debug() 用给定的字符串执行DBUG_PUSH。 mysql_data_seek() 在查询结果集中查找属性行编号。 mysql_escape_string() 为了用在SQL语句中,对特殊字符进行转义处理。 mysql_fetch_field() 返回下一个表字段的类型。 mysql_fetc 继续阅读 >>


李重乐 18/08/19 20:10:13
C语言链接mysql数据库错误: 一 编译错误: eg:用gcc编译出现如下的错误: test.c:(.text+0x5e):对‘mysql_init’未定义的引用 但是在头文件中已经#include<mysql/mysql.h> 解决方法是: gcc xx.c -lmysqlclient -L/usr/lib64/mysql 二 由~mysql-config –libs –cflags~衍生的学习 出现 undefined reference to ‘xxxxx’错误,是因为源码没有什么问题,而是编译链接错误;也就是编译参数没有指定程序要用到的库文件。 比如上边连接mysql程序include 了 h 文件,但编译的时候没有指明这个库文件libmysqlclient.so 。 -l和-L 参数(gcc) -l参数是指定库文件名 如 -lxx 那么xx真正的库文件名是libxx.so。如 mysql的库文件名是 libm 继续阅读 >>


李重乐 18/08/15 10:30:07
好久不用就会忘系列 查看表结构 DESC table_name 简单的更新语句 UPDATE table_name SET field_name1=value1 ... where xxx=xxx 重命名表 RENAME TABLE old_name TO new_name 重命名数据库(这个比较鸡贼) 适合于innoDB,并且没有什么触发器之类 比较简单的表 CREATE DATABASE new_db RENAME TABLE old_db.old_table1 TO new_db.new_table1 …. DROP DATABASE old_db 作者:XiyouLinux_Kangyijie 发表于 2018/07/22 15:39:46 原文链接 https://blog.csdn.net/XiyouLinux_Kangyijie/article/details/8115521 继续阅读 >>


康艺杰 18/07/22 15:39:46
关于mysql的基础知识可以参考 mysql基础 首先,需要确保已安装mysql-server,mysql-client,mysql-devel。 一、常用类型介绍 1. MYSQL 用于定义一个mysql对象,便于后续操作确定要操作的数据库是哪一个。 MYSQL mysql; //mysql标记对应某个数据库 2. MYSQL_ROW 用于定义一个行对象,其内容含有一行的数据。 MYSQL_ROW row; //row[i]可用于输出该行第i个字段的数据 3. MYSQL_FIELD 用于定义一个存储字段信息的对象。 MYSQL_FIELD *field; //field->name存储对应字段名称 4. MYSQL_RES 用于定义一个存储数据库检索信息结果的对象。 MYSQL_RES *result; 二、常用函数介绍 其实在操作mysql数据库时,最常使用的函数有以下几个: 1. mysql_init() 用于初始化 继续阅读 >>


王良 18/07/21 15:29:35
数据库软件对大小写不敏感,需要在每条命令末尾添加‘;’ 一、库操作 1. 登录数据库 mysql -u root -p -u指定用户,-p指定使用密码登录 2. 创建数据库 create database 数据库名称; 创建一个数据库,名称为student : create database student 3. 查看已有数据库 show databases; 4. 删除数据库 drop database 数据库名称; 例如: drop database student (友情提醒,谨慎操作) 5. 选择数据库 use 数据库名称; 在确定使用某个数据库后,使用use (数据库名称)切换到目的数据库 use student 二、表操作 1. 新建表 create table 表名称 ( 字段名称 数据类型 [具体要求], ...... ); example: create tab 继续阅读 >>


王良 18/07/20 10:39:07