数据库的一些命令

创建/删除数据库

create database test; # 创建test数据库
drop database test; # 删除test数据库

创建数据表

DROP TABLE IF EXISTS `article`; # 如果存在article,删除原来的article数据库
CREATE TABLE `article` (
# 列名 数据类型(长度) 完整性约束条件,
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL,
`content` varchar(255) NOT NULL,
`category` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;

注意:列名、数据类型(长度)必须有; 完整性约束条件可以没有。

CREATE TABLE `hf` (
`sno` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sname` varchar(30) NOT NULL,
`sage` tinyint(3) unsigned NOT NULL,
`sgender` enum('男','女') DEFAULT '男',
`semail` varchar(30) DEFAULT NULL,
`stel` char(11) DEFAULT NULL,
PRIMARY KEY (`sno`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

数据类型介绍

# 整型: int
tinyint #(微整型 -128~~127)
int # (-2,147,483,648 ~~ 2,147,483,647) # 字符串:
varchar # 可变长度 varchar(30) 存储abc,varchar会占用3位长度
char # 固定长度 char(30) 存储abc,char会占用30位长度
# 区别:char 的执行速度比 varchar 快,所以能用char就用char # 枚举: enum (单选) set('多选') )
enum('男','女')
set('古装','喜剧','警匪','恐怖','穿越') # 日期:
date # 年-月-日
datetime # 年-月-日 时:分:秒
time # 时:分:秒)
int # 存储时间戳 # 文本:
text # 大文本

完整性约束条件介绍

unsigned # 无符号,只用在整型字段上。

tinyint unsigned # 无符号微整型 0~~255 

auto_increment # 自增长,只用在整型字段上。 

primary key # 主键。
# 特点: 唯一 、 非空 、经常和auto_increment结合使用。
# 主键和自增长配合就能确定唯一的一条数据了。 主键一般都会选择整型字段。 unique # 唯一。 该列中不能出现重复值 not null # 非空。 该列中不能有 NULL 数据。

插入数据

insert into hf(sno,sname,sage,sgender,semail,stel)
values(1,'张三',18,'男','1001@qq.com',12345678911);

查询数据

# where 查询条件
select * from hf where sno=1; # in关键字查询
select * from hf
where sage in (17,19) and sgender="男"; # 模糊查询:
# %: 代表任意长度(包括0)的任意字符
# _: 代表1位长度的任意字符
select * from hf
where stel like '1%9_3'; # order by 排序 可以对查询结果按某个字段的升降进行排序
# 升序asc(默认) 降序desc 随机排序rand()
select * from hf
order by sno desc; # limit 用来限制查询结果的起始点和长度
# 格式: limit var1, var2
# var1: 起始点。 查询结果的索引,从0开始。 0代表第一条数据
# var2: 长度
# 查询年龄最大的2名男性的信息:
select * from hf
where sgender="男"
order by sgender desc
limit 0,2; # 多表查询
# select * from 表1
# join 表2 on 链接条件(表1的某个字段=表2的某个字段)
select * from table1
join table2 on table1.sname=table2.sname
join table3 on table1.sname=table3.sname
where sgender="男"
order by sgender desc

修改数据

# 格式:
# update 表名 set 字段1=值1,字段2=值2,... where 修改条件 # 修改表中的哪一条(几条)数据的 字段1=值1...
update hf set sname="王五五"
where sno="3";

删除数据

# 格式:  delete from 表名  where 删除条件

delete from hf
where sname="张三";

在node中操作mysql

安装操作数据库的第三方包npm i mysql -S

导入包 const mysql = require('mysql')

创建数据库连接对象:

const conn = mysql.createConnection({
host: '127.0.0.1', // 要连接到哪个电脑上的数据库
user: 'root', // 登录数据库的用户名
password: 'root', // 登录数据库的密码
database: 'heima_47' // 指定当前这个数据库连接对象,要操作哪个数据库
})

使用 conn.query('要执行的Sql语句', 要提供的数据, (err, result)=>{ /*回调函数*/ }) 来执行Sql语句

查询数据

// 1.导入操作数据库的包
const mysql = require('mysql') // 2.创建数据库对象
const conn = mysql.createConnection({
host:'127.0.0.1',
user: 'root',
password: 'root',
database: 'heima47'
}) // CRUD
// -------- 查询数据 ----------
conn.query('要执行的Sql语句') const sql1 = 'select * from users'
conn.query(sql1, (err, result) => {
if(err) return console.log(err.message)
console.log(result)
})

 添加数据

// 1.导入操作数据库的包
const mysql = require('mysql') // 2.创建数据库对象
const conn = mysql.createConnection({
host:'127.0.0.1',
user: 'root',
password: 'root',
database: 'heima47'
}) // CRUD
// -------- 添加数据 ----------
const user = {username: '宝贝1', address: '美国'}
const sql2 = 'insert into users(username, address) values ("' + user.username + '","' + user.address + '")'
conn.query(sql2, (err, result) => {
if(err) return console.log(err.message)
console.log(result)
})

或者

/* const user = {username: '欧松', address: '唐山'}
const sql2 = 'insert into users set ?'
conn.query(sql2, user, (err, result) => {
if(err) return console.log(err.message)
console.log(result)
})
*/

 修改数据

// 1.导入操作数据库的包
const mysql = require('mysql') // 2.创建数据库对象
const conn = mysql.createConnection({
host:'127.0.0.1',
user: 'root',
password: 'root',
database: 'heima47'
}) // CRUD
// -------- 修改数据 ----------
// conn.query('要执行的Sql语句')
const user = {id: 13, username: '美丽', address: '济南'}
const sql3 = 'update users set ? where id=?'
conn.query(sql3, [user, user.id], (err, result) => {
if(err) return console.log(err.message)
console.log(result)
})

 删除数据

// 1.导入操作数据库的包
const mysql = require('mysql') // 2.创建数据库对象
const conn = mysql.createConnection({
host:'127.0.0.1',
user: 'root',
password: 'root',
database: 'heima47'
}) // CRUD
// -------- 删除数据 ----------
// conn.query('要执行的Sql语句')
const sql4 = 'delete from users where id=?'
conn.query(sql4, 6, (err, result) => {
if(err) return console.log(err.message)
console.log(result)
})

nodejs(11)Express 中进行数据库操作的更多相关文章

  1. android中的数据库操作(转)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  2. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  3. CI中的数据库操作以及AR连贯操作

    要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...

  4. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  5. phpcms v9 中的数据库操作函数

    1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')   返回 ...

  6. PHP-Phalcon框架中的数据库操作

    > 本文描述了PHP-Phalcon框架中数据库操作方法,主要讨论Phalcon框架的Model组件中的操作方法.更详细的Model介绍请参考:官方文档 1. 连接数据库 在Phalcon框架中 ...

  7. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  8. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

  9. PHP中对数据库操作的封装

    在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...

随机推荐

  1. mybatis-generator-plugin

    1.背景 这篇文章刚开始想着哪个分类呢?mybatis.idea或是maven呢,最后还是选择了mybatis.最初使用这个逆向工具是在eclipse上,使用的是eclispe上mbg插件执行配置ge ...

  2. 洛谷P2089 烤鸡

    标签:暴力,枚举 题目背景 猪猪 Hanke 得到了一只鸡. 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末. ...

  3. validate表单验证-单独验证

    今天编写一个表单验证程序,我来说一下今天遇到的坑:程序不是通过submit按钮提交验证的,是在自己写的一个方法中提交的,出现了表单无法验证的情况.然后我就了解了一下jquery validate的验证 ...

  4. window下Apache Jmeter基础用法

    1.下载Apache-jmeter-5.1.1.zip 2.解压到一个地方,就可以开始使用了,如果需要在CMD里快速打开,可以设置环境变量. 3.在bin里面,直接打开jmeter.bat. 可以修改 ...

  5. jmeter简单压测、下载文件

    一.jmeter做简单压测(单机) 1.添加需要压测的HTTP请求 2.添加聚合报告 3.设置压测场景 4.查看聚合报告 二.多机同时进行压测 1.在需要连接的电脑上打开jmeter  bin目录下的 ...

  6. 循环指令 LOOP

    循环程序: 如果需要重复执行若干次同样任务.用循环执行 循环指令: LOOP <跳转标号> 用累加器的低字做循环计数器 每次执行LOOP 指令的时候,累加器的低字减去1 若减去后 非零 , ...

  7. 对状态字的理解 尤其是 首次检测位“/FC”的想法

    状态字 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0               BR CC1 CC0 OV OS OR STA RLO /FC 问题1 关于首次检测位& ...

  8. CVE-2010-0249(极光)分析报告

    2019/9/10          报告doc在文件里面 1.    发现可疑流量 A.分析流量,导出字节流 B.得到网页代码,发现需要执行的代码需要解密(加密的字符串部分太长了,就省略了): C. ...

  9. category添加属性

    category添加属性 面试题 Category的实现原理,以及Category为什么只能加方法不能加属性. Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗 ...

  10. 【剑指Offer】面试题04. 二维数组中的查找

    题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例: 现 ...