2017-10-15MySQL简单的增删改查

您现在的位置是: 首页 > MySQL技术 > MySQL简单的增删改查

300次阅读

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中的 null