数据库的一些命令

创建/删除数据库

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. WinForm_UI设计

    下载

  2. window安装dlib、face_recognition

    face_recognition简介 face_recognition是Python的一个开源人脸识别库,支持Python 3.3+和Python 2.7.引用官网介绍: Recognize and ...

  3. Prime Ring Problem素数环(HDU1016)

    Prime Ring Problem 思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件.字典序可以采用扩展 ...

  4. 基于Ambari的WebUI实现服务缩容

    基于Ambari的WebUI实现服务缩容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.实现服务的扩容 1>.进入到主机的管理界面 2>.查看主机的信息概览 3&g ...

  5. P1056 组合数的和

    P1056 组合数的和 转跳点:

  6. JVM探秘:JVM的参数类型

    本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. JVM的参数类型,大致可以分为标准参数.X参数.XX参数,而XX参数又可以分为Bool ...

  7. pyinstaller打包PySide2写的GUI程序,调用ffmpeg隐藏CMD控制台解决方案

    1 问题描述 使用PySide2写了一个GUI程序,调用ffmpeg命令行工具,做简单的批量视频处理(调整帧宽度.帧高度.视频变速.降低视频码率达到限制视频大小),使用了ffmpeg. ffmpeg- ...

  8. 055-for循环中break的使用

    <?php ;;$x++){ //省略表达式2的for循环将是无限循环 echo "$x<br />"; ){ break; //使用if语句控制退出无限循环 } ...

  9. PowerDesigner创建索引

    防止以后忘记怎么设置索引,记录下来方便查翻 1:选中Table 2:找到Table对应的Indexes 3:选中一条记录,点击红框中的小手(Properties)或双击该记录,进入到详细里面 4:找到 ...

  10. 导出execl

    string filepath = Utils.GetMapPath("/upload/excel/"); filepath = filepath + fileName + &qu ...