MySql 安装使用(mac)

首先安装两个软件:

数据储存:

MySQL :: Download MySQL Community Server

可视化工具:

MySQL :: Download MySQL Workbench

按照步骤安装即可

使用

1.输入设置的密码:

 

2.设置库的名字:

 3.创建数据表:

 

 

4.默认值: 

 

 

 DataTypes数据类型:

  • int 整数
  • varchar(len)字符串
  • tinyint(1)布尔值

字符串的特殊标识:

  • PK(Primary Key)主键 唯一标识
  • NN (Not Null) 值不允许为空
  • UQ (Unique) 值唯一
  • AI (auto increment) 值自动增长

5.向表中写入数据:

 

 SQL语句

作用:增删改查 。。。

  • 查询数据(select)
  • 插入数据 (insert into)
  • 更新数据 (update)
  • 删除数据 (delete)
-- 这是注释

-- 从from 指定的「表中」,查询出「所有的数据」* 表示所有

select * from 表名称

-- 从from 指定的「表中」,查询出指定列名称字段

select 列名称 from 表名称

查询:

select * from users

select id from users

 增加:

insert into users (username,password) values ('tony','123456')

修改:

-- 语法解读
-- 1. 用 update 指定要更新那个表中的数据
-- 2. 用 set 指定列对应的新值
-- 3. 用 where 指定更新的条件

upadte 表名称 set 列名称 = 新值 where 列名称 = 某值

 将id = 3 的password更改为‘111111’

update users set password='111111' where id=3

-- 若干项

update users set password='111111',status='1' where id=3

删除(删除 id =3)

-- 语法解析
-- 从指定的表中, 根据where 条件,删除对应的数据行

delete from 表名称 where 列名称 = 值
delete from users where id=3

 

SQl的where子句

where 子句用于限定选择标准,在select,update,delete语句中,皆可以使用where 限定选择范围

-- 查询语句中的 where 条件
select 列表名 from 表名称 where 列 运算符 值
-- 查询 status 为1的所有用户
select * from users where status=1
-- 查询 ID 大于 2 的所有用户
select * from users where id>2
-- 查询username 不等于 admin 的所有用户
select * from users where username<>'admin'


-- 更新语句中的 where 条件
update 表名称 set 列 = 新值 where 列 运算符 值
update users set password='111111' where id=3

-- 删除语句中的 where 条件 
delete from 表名称 where 列 运算符 值
delete from users where id=3

SQL的and 和 or 运算符

语法:

and 和 or 可以在where 子语句中,把两个或多个条件结合起来

and 表示必须同时满足多个条件 相当于js中的 &&

or 表示只要满足一个条件即可 相当于 js中的 ||

--使用and 来显示所有status 为零 和id 小于三的用户
select * from users where status=0 and id<3

-- 使用 or 运算符 显示所有 status=1 或者username ='zhangsan'的用户
select * from users where status=1 or username='zhangsan'

SQL的 order by 子句

语法:

order by 语句用于根据指定的列对结果集进行排列

order by 默认是按照升序

如果希望降序排列,可以使用 desc 关键字

order by 升序

-- select * from users order by status asc
-- asc 默认升序 ,可以不写
select * from users order by status

--降序排列
select * from users order by status desc
-- 对users 表中的数据 先按照status 进行降序排序,再按照 username 字母的顺序进行升序排序
select * from users order by status desc,username asc

SQL的 count(*)函数

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

使用 as 为 列设置别名

select count(*) as total from users where status=0

在项目中操作SQL

安装:

npm install mysql  or  yarn add mysql

配置 mysql :

//导入sql模块
const mysql = require('mysql')
const db =mysql.createPool({
  host:'127.0.0.1',       //数据库的 ip 地址
  user:'root',            //登陆数据库账号
  password:'admin123',    //密码
  database:'my_login'     //指定操作哪一个数据库
})

 


// 检测数据库 模块能否正常工作
db.query('select 1',(err,results)=>{
  if(err) return console.log(err);
  console.log(results);
})

查询 :

//查询users 表中的所有数据
db.query('select * from users',(err,results)=>{
  if(err) return console.log(err);
  console.log(results);
})

插入:

//增加数据
db.query('insert into users (username,password) values ("xitougao","1234567")',(err,results)=>{
  if(err) return console.log(err);
  console.log(results);
})
//要插入表中的对象
const user ={username:'kel',password:'123456789'}
//待执行的sql 语句,其中 英文 问号表示 占位符
const mysqlstr = 'insert into users (username,password) values (?,?)'
db.query(mysqlstr,[user.username,user.password],(err,results)=>{
      if(err) return console.log(err);
      if(results.affectedRows===1){
        console.log('插入成功');
      }
})

插入数据的便携方式:

//插入数据的便携方式
// 执行sql 语句其中 英文的问好表示占位符
const mysqlstr = 'insert into users set ?'
db.query(mysqlstr,user,(err,results)=>{
  if(err) console.log(err.message);
  if(results.affectedRows===1){
    console.log('插入成功');
  }
})

更新数据:

//更新数据
// 要更新的数据对象
const userss = {id:7,username:'lisisi',password:'1233333'}
// 要执行的sql 语句
const sqlstr = 'update users set username=?,password=? where id=?'
// 依次写入占位符的值
db.query(sqlstr,[userss.username,userss.password,userss.id],(err,results)=>{
  if(err) return console.log(err.message);
  if(results.affectedRows===1){
    console.log('更新成功');
  }
})

更新的便携方式 

// 更新数据的便携方式
const userss = {id:7,username:'辈子',password:'00000'}
const sqlstr = 'update users set ? where id=?'
db.query(sqlstr,[userss,userss.id],(err,results)=>{
  if(err) return console.log(err.message);
  if(results.affectedRows===1){
    console.log('更新成功');
  }
})

删除数据:

// 删除数据
const sqlstr = 'delete from users where id=?'
// 注意 如果是多个占位符,、,必须使用数组为每个占位符指定具体的值
//    如果是一个则可以省略
db.query(sqlstr,6),(err,results)=>{
  console.log(results);
  if(err) return console.log(err.message);
  if(results.affectedRows===1) {
    console.log('删除成功');
  }
}

标记删除:

使用delete字段 会把表中的数据真正的删除掉,为了保险起见,我们采用标记删除的法,来模拟删除的动作,就是在表中设置类似于status 的字段,来标记当前字段是否删除,

当执行删除的动作时,我们并没有执行 delete ,而是执行 update

// 标记删除
const sqlstr = 'update users set status=? where id=?'
const sta = {status:1,id:8}
db.query(sqlstr,[sta.status,sta.id],(err,resulte)=>{
  if(err) return console.log(err.message);
  if(resulte.affectedRows===1) {
    console.log('删除成功');
  }
})

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值