最新文章
- MySQL中, group by 和 order by 一起使用会有排序问题,group by 和 order by 同时使用时要注意的地方
- Vue学习笔记(10) ——Vue组件中的data和methods
- Vue学习笔记(9) ——Vue组件创建的几种方式
- Vue学习笔记(8) ——Vue实例的生命周期
- Vue学习笔记(7) —— 过滤器 filter的基本使用
- Vue学习笔记(6) ——v-if指令和v-show指令
- Vue学习笔记(5) —— v-for指令和key属性
- Vue学习笔记(5) —— Vue中样式-class样式和style样式
- Vue学习笔记(4) —— v-model指令,双向数据绑定
- Vue学习笔记(3) —— Vue事件修饰符
关注我


MySQL简单的增删改查
- 分类:MySQL技术
- 时间:2017-10-15
- 共1111人围观
sql 语句大致可以分为三种 :
DML is Data Manipulation Language statements. Some examples: 数据操作语言, SQL 中处理数据等操作统称为数据操纵语言 增删改查, 对我们而言 ,DML 是我们的重点
DDL is Data Definition Language statements. Some examples: 数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ( 建设者的角度 , 建表 , 建库 , 建视图 等等 , 15%) 。一般来说 , 一个数据库在设计完毕之后很少会再改动了
DCL is Data Control Language statements. Some examples: 数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等( 管理员角度 ,DBA[ 数据库管理员 ],5%) 这个用户是否有权限建表 , 等
一、insert 操作
增删改查 -> 增
1. 添加所有列
insert into user (uid,name,age) values (1,'lisi',23);
2. 一行中有多个列 , 我们可以插入全部列 , 也可以插入部分列
但是 : 列与值要严格对应
insert into user (uid,name) values (1,'lucy');
3. 主键自增插入 desc user;
insert into user (name) values ('yumi');
4. 插入所有列的简写
insert into user values ('kimi',25); // 报错 : 列计数不匹配值计数 insert into user values (3,'kimi',25);
数字可以加单引号 , 它也会转成 int 来理解,但是字符串必须加单引号 , 不加会理解为一个列名或者变量 , 会报错
insert into user values ('4','zhangsan','25'); insert into user values (5,zhangsan,25);
5. 一次添加多行数据
insert into user values (5,'test1',44),(6,'test2',23),(7,'test3',18);
注意 :
(1) 列与值, 严格对应 (id 自增列也必须对应 )
(2) 数字和字符串的注意点
(3) 数字不必加单引号 , 字符串必须加单引号 .
(4) 1次添加多行数据 , 用逗号隔开
二、update 操作
增删改查 -> 改
改哪张表 ?
你需要改哪几列的值 ?
分别改为什么值 ?
在哪些行生效 ?
1. update 更改列
update user set age=99 where name='yumi'; update 表名 set 列 1 = 新值 1, 列 2 = 新值 2 where expr
2. update 所有行
注意 , 不加 where 带来的后果
update user set name='mingming', age=55;
数据是很宝贵的,如果我们 update 不加 where 条件 , 后果是很可怕的
mysql 可以设置新手模式 , 在新手模式下 , 删除和更改不加 where 条件 , 它是拒绝执行的
三、delete 操作(注:在实际生产中,一般不直接用delete,而是添加一个字段代码删除,比如is_del,当is_del=1代表删除,is_del=0代表未删除)
可不可以删除某一行中的某一列 ?
delete...
其实这是个 update 操作
对于传统型数据库而言 , 一行就是它的原子型的单位
添加是一行 , 删除也要是一行
你要删除哪张表的数据 ?
你要删掉哪些行 ?
delete from 表名 where expr delete from user where uid=7;
四、select 入门
增删改查 -> 查
查哪张表的数据 ?
你要选择哪些列来查询 ?
要选择哪些行 ?
select 列 1, 列 2,... 列 n from 表名 where expr
1. 查询表的多有行所有列
select * from user; // 开发中很少这样写 , 因为表中会有成千上万的数据 , 这样查询会增加数据库负担 ; 我们需要哪几条数据 , 就查询哪几条数据即可
2. 查询一行
select * from user where uid=2;
3. 查询多行
select * from user where uid>=2;
4. 查询某几行的某几列 ,* 代表所有列
select uid,name from user where uid>=2; select name from user where uid=2;
dml 占 sql 的 80%, 查占 dml 的 80%;
我们所学的是最最基础的查询语句 ;
想要写出高难度的复杂的查询 , 我们还需专门讨论查询的模型的问题 ;
看我们是否能正真理解 select, 写出强大的查询语句 ,
要靠 select 的查询模型 , 非常之重要
五、select 查询模型 ( 重要 )
1. 列是变量
每一行 , 变量值在变 , 从上到下 , 遍历行 ,where 是表达式 , 当其值为真 , 则取出该行
这句话是什么意思 ?
select * from user where 1; // 取出所有行 select * from user where 0; // 一行都取不出来
2. 变量可以计算
计算明年多少岁 select name,age+1 from user where 1; goods 表 查询本店的商品比市场价便宜多少 select goods_id,goods_name,shop_price,market_price,market_price-shop_price from goods;
3. 投影的概念
select name,age from user; user 表有三列 , 我们只取出 2 列 ( 部分列 ), 叫做 投影运算 就像手电筒 , 只照到两列 , 投出影子显示出来 goods 表查询出来 market_price-shop_price 两个列做运算 , 叫做 广义投影
返回列表:MySQL技术
下一篇:MySQL中的 null