我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql与msql2数据驱动

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql与msql2数据驱动

mysql基本使用

数据库操作(DDL)

-- 数据考操作-- 1.查询所有数据库SHOW DATABASES;-- 2.选择数据库USE learn_mysql;-- 3.当前正在使用的数据库SELECT DATABASE();-- 4.创建数据库CREATE DATABASE IF NOT EXISTS learn_mysql;-- 5.删除数据库DROP DATABASE IF EXISTS test_database;-- 6.修改数据库ALTER DATABASE test_database CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;

表结构操作(DDL)

-- 表操作-- 1.查询所有表SHOW TABLES;-- 2.查看表结构DESC `user`;-- 3.创建表CREATE TABLE IF NOT EXISTS `user` (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10) UNIQUE NOT NULL,age INT DEFAULT 1);-- 4.删除表DROP TABLE IF EXISTS `user`;-- 5.修改表-- 5.1修改表名ALTER TABLE `t_user` RENAME TO `user`;-- 5.2增加表字段ALTER TABLE `user` ADD createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP;-- ALTER TABLE `user` ADD updateTime TIMESTAMP;-- 修改表格数据后,根据当前时间戳更新updateTimeALTER TABLE `user` ADD updateTime TIMESTAMP DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP-- 5.3修改表字段名及类型ALTER TABLE `user` CHANGE createTime createAt DATETIME;-- 5.4只修改表字段类型ALTER TABLE `user` MODIFY id BIGINT AUTO_INCREMENT;-- 5.5删除字段ALTER TABLE `user` DROP createAt;

表数据操作(DML)

-- 1.向表增加数据INSERT INTO `user` ( `name`, `age`) VALUES ('cjc', 100);INSERT INTO `user` ( `name`, `age`) VALUES ('ccc', 999);INSERT INTO `user` ( `name`, `age`) VALUES ('aaa', 111);-- 2.删除数据-- 删除所有数据DELETE FROM `user`DELETE FROM `user` WHERE `name` = 'aaa' -- 3.修改数据UPDATE `user` SET `name` = 'CJC',`age` = 10000 WHERE `name` = 'cjc'-- 修改数据时,手动加上时间的更新UPDATE `user` SET `name` = 'CCC',`age` = 99999,`updateTime` = CURRENT_TIMESTAMP WHERE `name` = 'ccc'-- 修改了数据,根据当前时间戳更新updateTimeALTER TABLE `user` ADD `updateTime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

表数据查询(DQL)

-- 1.条件查询SELECT * FROM `user`-- %任意字符0个或多个 _任意字符1个SELECT `name` AS `user_name` FROM `user` WHERE `name` LIKE 'C%' -- 第二个字符为cSELECT * FROM `user` WHERE `name` LIKE '_c%' -- 2.分页查询-- 偏移1条数据后,查询前20条数据SELECT * FROM `user` LIMIT 20 OFFSET 1

查询语句执行顺序

SELECT tagname as "tag1",tagname2 as "tag2",[聚合函数]...FROM table1[LEFT] JOIN table2on xxx[LEFT] JOIN table3on xxxWHERE 不含聚合函数的条件GROUP BY tag1,tag2...等所有非聚合函数字段HAVING 含聚合函数的条件ORDER BY tag1,tag2 DESCLIMIT [偏移量],显示的记录数;  # LIMIT 显示的记录数 OFFSET 偏移量;

多表查询

在这里插入图片描述

多对多关系

-- 1.创建表-- 学生表CREATE TABLE IF NOT EXISTS `student` (id INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(10) UNIQUE NOT NULL);-- 课程表CREATE TABLE IF NOT EXISTS `course` (id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(20) UNIQUE NOT NULL);-- 关系表-- 多对多,一个学生能选择多门课程,一门课程被多个学生选择CREATE TABLE IF NOT EXISTS `student_course` (id INT PRIMARY KEY AUTO_INCREMENT,-- 也可以使用联合主键-- student_course_pk PRIMARY KEY(userId,hobbyId),-- 外键约束,更新/删除时,相关联的表也同步更新/删除student_id INT NOT NULL,course_id INT NOT NULL,FOREIGN KEY (student_id) REFERENCES student(id) ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (course_id) REFERENCES course(id) ON UPDATE CASCADE ON DELETE CASCADE, -- 记录创建时间及更新时间createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updateTime TIMESTAMP DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP);-- 2.插入数据INSERT INTO `student` ( `name`) VALUES ('a');INSERT INTO `student` ( `name`) VALUES ('b');INSERT INTO `student` ( `name`) VALUES ('c');INSERT INTO `student` ( `name`) VALUES ('d');INSERT INTO `course` ( `course_name`) VALUES ('计算机网络');INSERT INTO `course` ( `course_name`) VALUES ('数据结构');INSERT INTO `course` ( `course_name`) VALUES ('操作系统');INSERT INTO `course` ( `course_name`) VALUES ('计算机组成原理');INSERT INTO `course` ( `course_name`) VALUES ('没人选的课程');INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (1,1);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (2,1);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (2,2);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (3,1);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (3,2);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (3,3);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (4,1);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (4,2);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (4,3);INSERT INTO `student_course` ( `student_id`,`course_id`) VALUES (4,4);-- 3.多表查询-- 所有学生的选课情况SELECT student.`name`,course.course_name FROM `student`LEFT JOIN `student_course` ON student.id = student_course.student_idLEFT JOIN `course` ON course.id = student_course.course_idSELECT student.`name`,COUNT(*) '课程数量' FROM `student`LEFT JOIN `student_course` ON student.id = student_course.student_idLEFT JOIN `course` ON course.id = student_course.course_idGROUP BY student.`name`

将查询结果转化为JSON

在这里插入图片描述
将查询到的课程信息转化为json格式:

-- 使用聚合函数JSON_OBJECT([key, val[, key, val] ...])

在这里插入图片描述

将查询结果转化为数组

-- 使用聚合函数JSON_ARRAYAGG(col_or_expr)

在这里插入图片描述

mysql2数据库驱动

基本使用

const mysql = require('mysql2')// 1.创建一个连接const connect = mysql.createConnection({  host: 'localhost',  port: 13306,  user: 'root',  password: 'root',  database: 'learn_mysql'})// 2.定义sql语句const statement = 'SELECT * FROM `student`'// 3.执行sql语句connect.query(statement, (err, val, fields) => {  if (err) {    console.log(err);    return  }  // 打印查询结果  console.log(val);})

预处理语句

提高性能
将语句模块发送给mysql编译、优化、转换,然后存储它但不执行。之后传入实参时,真正执行。多次执行,也只编译一次。

防止sql注入

const mysql = require('mysql2')// 1.创建连接池const connectionPool = mysql.createPool({  host: 'localhost',  port: 13306,  user: 'root',  password: 'root',  database: 'koa-apis',  connectionLimit: 5})// 2.测试是否连接成功connectionPool.getConnection((err, connection) => {  if (err) {    console.log('数据库连接失败', err);    return  }  connection.connect(err => {    if (err) {      console.log('和数据库交互成功', err);    } else {      console.log('和数据库交互成功');    }  })})// 3.定义预处理语句// const statement = 'SELECT * FROM `student` WHERE id > 2 AND name LIKE "%c%"'const statement = 'SELECT * FROM `student` WHERE id > ? AND name LIKE ?'// 4.执行sql语句// 使用promise语法const connection = connectionPool.promise()connection.execute(statement, [2, '%c%']).then(res => {  const [val, fields] = res  console.log(val);}).catch(err => {  console.log(err);})

来源地址:https://blog.csdn.net/qq_43551056/article/details/132571075

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql与msql2数据驱动

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python与大数据:数据驱动的决策利器

Python凭借其强大的数据处理能力,在数据分析和机器学习领域受到了广泛的应用。这些工具和库使开发人员能够轻松地导入、清洁和分析大型数据集,并建立预测模型来指导决策。
Python与大数据:数据驱动的决策利器
2024-02-06

TestNG数据驱动简介

TestNG数据驱动testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本。@DataProvider注解简介:@DataProvider标记专门为测试方法提供参数的方法。这类
TestNG数据驱动简介
2021-10-13

PythonUnittestddt数据驱动的实现

本文主要介绍了PythonUnittestddt数据驱动的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-27

mysql与java开发相关驱动说明

mysql5.X和mysql8.X的驱动类、jdbc连接地址、引用Jar包等都是不一样的。下面对照表以mysql5.7/8.0.11为例:类型驱动程序(JAR)maven配置驱动类(jdbc.driver)jbdc连接地址(jdbc.url)备注mysql5.
mysql与java开发相关驱动说明
2020-02-15

Python数据分析:数据驱动的未来

Python在数据分析领域发挥着至关重要的作用,其强大的库和工具使复杂的分析过程变得容易。本文介绍Python数据分析的优点,并通过代码演示其强大功能。
Python数据分析:数据驱动的未来
2024-02-17

ODBC驱动与Oracle数据库版本兼容性检查

在使用ODBC驱动连接Oracle数据库时,需要确保ODBC驱动与Oracle数据库版本兼容。以下是一些兼容性检查的建议:确认ODBC驱动的版本是否支持连接到您使用的Oracle数据库版本。一般来说,ODBC驱动的官方文档会列出支持的数据库
ODBC驱动与Oracle数据库版本兼容性检查
2024-07-15

Vue如何实现数据驱动

这篇文章主要介绍“Vue如何实现数据驱动”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何实现数据驱动”文章能帮助大家解决问题。一、前言之前实现了为每个对象扩展一个$set方法,用于新增属性使
2023-07-04

Python+Unittest参数化之parameterized数据驱动

在使用Python进行单元测试时,可以使用unittest库来编写和运行测试用例。在单元测试过程中,可能需要多次运行相同的测试代码,只是输入参数有所不同。为了避免重复编写相似的测试用例,可以使用参数化(parameterized)来实现数据
2023-10-12

Python数据分析:数据驱动成功之路

数据分析是信息时代的关键技能,而 Python 已成为数据分析领域不可或缺的工具。Python 提供了广泛的库和工具,使数据探索、建模和可视化变得容易,为数据驱动决策和成功铺平了道路。
Python数据分析:数据驱动成功之路
2024-02-17

idea如何添加数据库驱动

要添加数据库驱动,你可以按照以下步骤进行操作:1. 下载数据库驱动:首先,你需要从数据库供应商的官方网站或其他可靠来源下载数据库驱动程序。确保选择与你正在使用的数据库版本和编程语言兼容的驱动程序。2. 导入驱动程序:将下载的驱动程序文件(通
2023-09-01

Python数据分析:数据驱动创新的基石

Python数据分析为企业提供了一种利用海量数据做出明智决策并推动创新的方式。通过利用强大的库、可视化工具和机器学习算法,企业可以揭示隐藏的模式、识别趋势并预测未来结果。
Python数据分析:数据驱动创新的基石
2024-02-17

编程热搜

目录