MySQl

DataType常见的数据类型:

int整数

varchar(len)字符串

tinyint(1)布尔值

字符串的特殊标识

PK(primary key)---主键、唯一标识

NN(not null)       ---值不允许为空

UQ(Unique)       ---值唯一

AI(Auto Increment)---值自动增长

SQL语句

1、SQl是结构化查询语言,专门用来访问和处理数理库的编程语言。能够让我们以编程的形式,操作数据库里面的数据

2、三个关键点:

SQL是一门数据库编程语言

使用SQL语言编写出来的代码,叫做SQL语句

SQL语言只能在关系型数据库中使用(例如MySQL、Oracle、SQl Server)。非关系数据库(例如Mongodb)不支持SQL语言

SQL的SELECT语句

SELECT语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。

 SQL语句中的关键字对大小写不敏感。SELECT等效于select,FROM等效于from

注意:在执行语句的时候,需要选择默认的数据库,双击选择指定的数据库即可

-- 选中整个表
select * form 表名
-- 选中列
select 列,列 form 表名

SQL的INSERT INTO语句

INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下:

新的数据记得加上引号,否则会报错

insert into users (列名,列名) values('数据','数据')

SQL的UPDATE语句

Update语句用于修改表中的数据。语法格式如下

 多个被更行的列之间,使用英文的逗号进行分隔

where后面跟着的是更新的条件

注意:初学者经常忘记提供更新的where条件,这样会导致整张表的数据都被更新。

update users set 列名 where 列名=字段

SQL的DELETE语句

DELETE语句用于删除表中的行

 记得提供where条件

delete from users where id=4

WHERE 子句

WHERE子句用于限定选择的标准。在SELECT、UPDATE、DELETE语句中,皆可使用WHERE子句来限定选择的标准

 在WHERE子句中使用的运算符

注意:在某些版本的SQL中,操作<>可以写为!=

 可以通过WHERE子句来限定SELECT的查询条件

-- 查询 id 为 1 的所有用户
select * from users where id=1

-- 查询 id 大于 2 的所有用户
select * from users where id>2

--查询 username 不等于 admin 的所有用户
select * from users where username<>'zs'

SQL的AND和OR运算符

AND和OR可在WHERE子语句中把两个或多个条件结合起来

AND表示必须同时满足多个条件,相当于javaScript中的&&运算符,例如if(a!==10 && a !==20)

OR表示只要满足任意一个条件即可,相当于 Javascript中的||运算符,例如if(a!==10||a!==20)

-- and
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户

select * from users where status=0 and id<3
-- or
-- 使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户

select * from users where status=1 or username='zs'

SQL 的 ORDER BY 子句

ORDER BY 语句用于根据指定的列对结果集进行排序

ORDER BY 语句默认按照升序对记录进行排序,ASC关键字代表升序排序

如果您希望按照降序对记录进行排序,可以使用DESC关键字

ORDER BY 子句 - 升序排序

users 表中的数据,按照 status 字段进行升序排序

-- 下面这两条 SQL 语句是等价的,
-- 因为 order by 默认进行升序排序
-- 其中,ASC 关键字代表升序排序
​
-- select * from users order by status
select * from users order by status asc

ORDER BY 子句 – 降序排序

对 users 表中的数据,按照 id 字段进行降序排序

-- desc 代表降序排序
​
select * from users order by status desc

OREDER BY 子句多重排序

对user表中的数据,先按照status字段进行降序排序,在按照username的字母顺序,进行升序排序

select * from users order by status desc,username asc

SQL的COUNT(*)函数

COUNT(*)函数用于返回查询结果的总数据条数

 

select count(*) from users
-- 查询 users 表中 status 为 0 的总数据条数

select count(*) from users wheres status=0

使用 AS 为列设置别名

如果希望给查询出来的列名称设置别名,可以使用 AS 关键字

-- 将列名从 count(*) 修改为 total
​
select count(*) as total from users where status=0
-- 将列名 username 改为 uname, password 改为 upwd
​
select username as uname, password as upwd from users

标记删除

使用DELETE语句,会把真正的数据从表中删除掉

为了保险期间,推荐使用标记删除的形式,来模拟删除的动作

· 标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除

当用户执行了删除的动作时,我们并没有执行DELETE语句把数据删除掉,而是执行了UPDATE语句,将这条数据对应的status字段标记为删除即可

// 1. 导入 mysql 模块
var mysql  = require('mysql')
// 2. 建立与 mysql 数据库的连接
var db = mysql.createPool({
  host: '127.0.0.1',  // 数据库的 ip 地址
  user: 'root', // 登录数据库的账号
  password: 'toor', // 登录数据库的密码
  database: 'my_db_01' // 指定要操作哪个数据库
})

// 3. 要执行的 sql 语句
const sqlstr = 'update users set status=1 where id=?'

// 2. 调用 db.query() 执行 SQL 语句的同时,为占位符指定具体的值
db.query(sqlstr, 1 ,(err, results) => {
  // 删除失败
  if (err) return console.log(err.message)

  // 删除成功
  if (results.affectedRows === 1) { console.log('删除数据成功') }
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值