当前位置: 首页 > news >正文

网站建设功郑州网络推广哪个好

网站建设功,郑州网络推广哪个好,华亭县建设局网站2017,wordpress 4.5.3mysql基本使用 数据库操作(DDL) -- 数据考操作 -- 1.查询所有数据库 SHOW DATABASES;-- 2.选择数据库 USE learn_mysql;-- 3.当前正在使用的数据库 SELECT DATABASE();-- 4.创建数据库 CREATE DATABASE IF NOT EXISTS learn_mysql;-- 5.删除数据库 DRO…

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;
-- 修改表格数据后,根据当前时间戳更新updateTime
ALTER 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'-- 修改了数据,根据当前时间戳更新updateTime
ALTER 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%' 
-- 第二个字符为c
SELECT * 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 table2
on xxx
[LEFT] JOIN table3
on xxx
WHERE 不含聚合函数的条件
GROUP BY tag1,tag2...等所有非聚合函数字段
HAVING 含聚合函数的条件ORDER BY tag1,tag2 DESC
LIMIT [偏移量],显示的记录数;  # LIMIT 显示的记录数 OFFSET 偏移量;/*筛选 分组 查看 排序FROM  -> ON -> [left/right] joinWHEREGROUP BY -> HAVINGSELECT -> distinctORDER BY  -> LIMIT 
*/

多表查询

在这里插入图片描述

多对多关系

-- 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_id
LEFT JOIN `course` ON course.id = student_course.course_idSELECT student.`name`,COUNT(*) '课程数量' FROM `student`
LEFT JOIN `student_course` ON student.id = student_course.student_id
LEFT JOIN `course` ON course.id = student_course.course_id
GROUP 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);
})

预处理语句

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

2.防止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] = resconsole.log(val);
}).catch(err => {console.log(err);
})
http://www.hkea.cn/news/920316/

相关文章:

  • 博客网站开发毕设免费大数据分析网站
  • 深圳教育平台网站建设好消息疫情要结束了
  • 国外设计文章的网站淘宝代运营靠谱吗
  • 市桥网站建设sem论坛
  • 猎头公司是做什么的可靠吗排名优化外包公司
  • 扶贫网站建设关键词查询神器
  • 沈阳酒店企业网站制作公司2023年9月疫情又开始了吗
  • 厦门专业网站建设如何快速推广一个新产品
  • 帮人做传销网站违法吗seo网站排名助手
  • 如何做优品快报下的子网站营销型网站建设目标
  • 用织梦做网站调用乱码营业推广是什么意思
  • 做走私网站北京口碑最好的it培训机构
  • 网站建设OA系统开发it培训机构哪家好
  • 网站运维可以做哪些域名查询网站入口
  • 网站开发的基本语言外贸平台自建站
  • 女生自己做网站营销方法有哪些
  • 怎么自己做网站吓别人金融网站推广圳seo公司
  • 彩票网站的客服有做吗海淀seo搜索优化多少钱
  • 河源哪有做网站网页模板设计
  • 手机网站可以做英文版本吗近三天时政热点
  • 怎么做网站游戏网络优化排名培训
  • ic外贸网站建设黑帽seo技巧
  • 实业有限公司网站怎么做百度一下了你就知道官网
  • 企业电子商务网站推广平台有哪些渠道
  • 本地用织梦做网站百度的网站网址
  • 基础展示营销型型网站新闻发稿平台有哪些
  • 做游戏赚钱的网站最新新闻热点事件2022
  • 商务网站建设哪家好推广代理公司
  • 自己做网站是否要买云主机西安百度提升优化
  • 成都注册公司哪个区好分析网站推广和优化的原因