Mysql基础

数据库基本操作

mysql中的注释

两个短横线加一个空格

-- 这是MySQL中的注释写法

使用数据库

use db_mydata ;

创建表

CREATE TABLE `db_mydata`.`students` (

min()/max()/sum()/sqrt()/rand()

查出一个年龄最大的学生
查出出生年份最小的也就是年龄最大的
select min(birthdate) from db_mydata.student

//rand()随机数,用于产生验证码
返回01之间的数字

concat() 拼接字符串

select concat(name,' ',age) from students

where语句

查找年龄在20岁到30岁之间的学生

select * from students where age >= 20 and age <=30 ;
select * from students where age between 20 and 30 ;

筛选出姓张的同学(也就是以张开头)

select * from students where name like '张%' ;

查询名字中带宝字的同学(也就是只要包含宝)

select * from students where name like '%宝%' ;

查询名字中以’好’字结尾的同学(也就是以好结尾)

select * from students where name like '%好' ;

order by 排序

由小到大排序

筛选学生,根据年龄右小到大(ASC可省略)
select * from students order by age ASC

由大到小排序

筛选学生,根据年龄右大到小
select * from students order by age DESC

在表之间进行查询

-- 学生表students     班级表classes
-- 学生表的字段( id name class_id )
-- 班级表的字段( class_id class_name )
-- 多表查询要关联字段
where * from students,classes where students.class_id = classes.class_id
-- 会将两个表的内容综合显示,既有学生表的信息又有班级表的信息,并且有两个class_id且值都是一样的


-- 加上删选条件
-- 只显示学生表里的学生名字,只显示班级表里的班级名
where students.name , classes.class_name from students,classes where students.class_id = classes.class_id

增删改查

insert into students (id , name  , age , class ) values(9,'tom',18,'一班');

//删除id为9的学生
delete from students where id = 9 ;

//删除所有id为8的学生
delete fromg students where id=8 ;

//将id为8的学生名字改为tom
update students set name='tom' where id = 8 ;

//将id为8的学生名字改为tom,age改为19
update students set name='tom',age=19 where id = 8 ;

事务处理

  • 特点
    上班打卡是一个事务,我们打卡了但是打卡机没有记录我们不愿意看到,我们没有打卡但是打卡机自动记录了这是公司不愿意看到的。打卡了系统一定要记录打卡,没有打卡系统一定要记录没有打卡,这叫事务。

    • 原子性:确保工作单元内的所有操作都成功完成,否则事务将被终止在故障点和以前的操作将滚回到以前的状态
    • 一致性:确保数据库正确地改变状态后,陈宫提交的事务。
    • 隔离性:使事务操作彼此独立的和透明
    • 持久性:确保提交的事务的结果或效果的系统出现故障的情况下任然存在
  • 控制事务处理

    • 管理事务处理的关键在于将SQL语句组分解为逻辑快,并明确规定数据核实应该回退,何时不应该回退。
    • 开启事务:start transaction 或 begin
    • 提交事务(关闭事务) commit
    • 放弃事务(关闭事务)rollback
  • 设置事务处理

    • 数据库是自动提交我们在这里改为事务处理也就是手动提交 set autocommit=0 ;
    • 开启新事务 start transaction
    • 执行操作 delete from students 删除所有学生
    • 发现上面数据误操作了,因为删除了所有学生执行rollback; 回滚操作
    • 如果发现操作正常,就是要删除所有学生。执行commit
//关闭自动提交
set autocommit = 0 ;

//开启事务
start transaction 
update students set name='jack' where id = 9 ;
update students set age = 19 where id  8 ;

//提交
commit;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值