数据库的一些命令

创建/删除数据库

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. [PHP] php作为websocket的客户端实时读取推送日志文件

    首先要使用composer来下载一个第三方扩展就可以实现php的websocket客户端,直接在当前目录生成下composer.json文件就可以了composer require textalk/w ...

  2. 007-PHP变量和函数相互转换

    <?php function write($text) //定义function write()函数 { print($text); //打印字符串 } function writeBold($ ...

  3. 配置gem5-gpu docker版

    1 安装docker:wget -qO- https://get.docker.com/ | sh,启动服务:sudo service docker start 2 把非root用户添加到docker ...

  4. mysql 存储引擎入门

  5. windows 禁用中文输入法(转)

    源博客地址:http://blog.csdn.net/xie1xiao1jun/article/details/17913967 windows 程序禁用中文输入法方法:1.添加windows头文件及 ...

  6. gerrit 版本下载

    链接:https://gerrit-releases.storage.googleapis.com 如下载gerrit-2.12.2.war https://gerrit-releases.stora ...

  7. 小程序填坑:2018最新getPhoneNumber功能详解

    本篇博客主要详解getPhoneNumber组件的功能,填补网上那些到处是漏洞的博客.加上小程序官方本身也是满满的漏洞. 惯例先上总纲: ##主要内容 1.前端页面组件书写 2.JS内组件用法 3.接 ...

  8. 059-PHP中多重for循环

    <?php $line=10; //用来控制行数 for($i=1;$i<=$line;$i++){ for($j=1;$j<=$i;$j++){ echo '*'; //输出星号 ...

  9. C++ 把数组的元素乘以2在输出

    #include<iostream> using namespace std; int main(){ ] = { , , , , }; ; ; i < ; i++) { ) { s ...

  10. HDU_4960 2014多校9 Another OCD Patient DP

    其实现在想起来是个巨简单的DP,模型就跟LCS很像,比赛的时候居然没想出来,在聪哥提醒下还卡了个地方 就是说给定一串n个数字的序列,可以连续合并,最终使得序列是回文的,题目也给定了合并数字所需的代价, ...