数据库的一些命令

创建/删除数据库

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. 016、MySQL取本年第一季度开始日期

    #取第1季度开始日期 SELECT date_add( dy, INTERVAL ( ) MONTH ) dy FROM ( ) dy ) x ; 效果如下: 不忘初心,如果您认为这篇文章有价值,认同 ...

  2. 12.redis的AOF持久化深入讲解各种操作和相关实验

    1.AOF持久化的配置 2.AOF持久化的数据恢复实验3.AOF rewrite4.AOF破损文件的修复5.AOF和RDB同时工作 ---------------------------------- ...

  3. 图片与byte相互转换

    一.图片转byte public byte[] ImageToByte() { string imagefile = @"http://192.168.0.212/pass/T-1.jpg& ...

  4. leeetcode1171 Remove Zero Sum Consecutive Nodes from Linked List

    """ Given the head of a linked list, we repeatedly delete consecutive sequences of no ...

  5. DataFoundation比赛总结

    2018.3.20号左右,因为研究生的数据挖掘课程的老师要求我们集体参加一个比赛 ,所以在比赛参与时间.比赛难度和比赛类型的几种条件下,我们选择了2018平安产险数据建模大赛-驾驶行为预测驾驶风险比赛 ...

  6. java基础源码 (6)--ArrayListt类

    原作出处:https://www.cnblogs.com/leesf456/p/5308358.html 简介: 1.ArrayList是一个数组队列,相当于动态数组.与java中的数组相比,它的容量 ...

  7. Golang的标识符命名规则

    Golang的标识符命名规则 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关键字 1>.Go语言有25个关键字 Go语言的25个关键字如下所示: break,defau ...

  8. 指令——cd

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 命令:#cd (change director ...

  9. JavaScript获取当前日期前后7天的日期

    function fun_date(aa){ var date1 = new Date(), time1=date1.getFullYear()+"-"+(date1.getMon ...

  10. 禁止ViewPager的左右滑动

    参考 思路:重写android.support.v4.view.ViewPager中的ViewPager 写一个NoScrollViewPager继承ViewPager   然后用NoScrollVi ...