码迷,mamicode.com
首页 > 数据库 > 详细

30分钟回顾MySQL语法(下)

时间:2018-07-26 13:02:34      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:结构   update   ...   date   基础上   info   基础   记录   table   

十一.增加数据

现有一张student表,表设计如下:

技术分享图片

 

sno为主键并自增,saddress 表示地址,设定了默认值:‘广东省广州市‘ 

1.完整的增加一条  insert into tables values(val1,val2,...,valn)

insert into student values(NULL,‘李冰‘,‘男‘,‘libing@qq.com‘)

注意:

  a.必需要保证values() 中的值 与 表中列的按顺序顺序一一对应 ,个数一致

  b.sno主键设置自增后,可以交由mysql 自动处理, 可以传入NULL值,此时该记录的 sno 会由自动生成

缺点:当表结构发生变化时,此时insert 会报错 

  

2.按照指定列增加 insert into table_name(column1,column2,...,columnn)  values(val1,val2,...,valn)

insert into student(sname,ssex) values(‘王明‘,‘男‘)

注意:

  a.同样需要保证values中的值的个数 与前面指定的 列的个数顺序 对应

优点:

  a.列的顺序可以自己指定, 同样value值也要与列名对应 ,以后表中新增列时,insert 语句 不会受影响 

  b.相比插入完整的一行 , 插入指定列,一些不必要的值,可以不用传, 只需要传一些必传的值,sql语句变的更简洁了

 

3.增加多行记录 Insert into table_name valuesvalues(val1,val2,...,valn),values(val1,val2,...,valn),values(val1,val2,...,valn)

insert into student values(NULL,‘李玲‘,‘女‘,‘liling163.com‘),(NULL,‘大才‘,‘男‘,NULL),(NULL,‘逍遥‘,‘男‘,‘xiaoyao@qq.com‘)

 

在 1 ,2 的基础上 只需要在values 后 跟上多组数据即可,插入多行

优点: 插入多行有两种形式, 单行插入执行多次 ,  多行插入执行1次 , 相比前者而言 ,多行插入执行1次, 性能耗时会大大减少

 

4.插入 select语句查询出的数据

insert into student(sname,ssex,semail,saddress)

select sname,ssex,semail,saddress from student

这种方式 不会要求select查出的列名与 需要插入数据的表的列名 一致, 只需保证顺序一致, 数据兼容即可

 

insert 提高数据库性能:

1.生产中, 可能会出现并发访问数据库,进行增删改查的情况, 一般情况查的优先级更高一些. 同时insert 时,需要建立索引 耗时较久,同时还可能造成后续select语句性能的降低

   此时可以通过降低 insert 语句的优先级, 来提高性能 ;语法格式: insert low_priority into ... . 同样也适用于delete update语句

2.多行插入执行1次  性能要高于  一行插入执行多次

安全: 可以禁用用户的insert权限,限制部分用户的不可以进行insert 保证数据的安全

 

 十二.更新,删除 数据

update 语句一定要搭配where子句使用,否则更新就是更新整张表中的所有数据,这种误操作,会造成难以想象的结果....

更新单列 update tablename set column = newValue where condition

update student  set semail = ‘wangming@qq.com‘  where sname = ‘王明‘

 

更新多列update tablename set column1 = newValue1 ,column2 = newValue2,...column_n = newValuen where condition

update student  set semail = ‘wangming@qq.com‘,saddress = ‘广东省东莞市‘  where sname = ‘王明‘

 

30分钟回顾MySQL语法(下)

标签:结构   update   ...   date   基础上   info   基础   记录   table   

原文地址:https://www.cnblogs.com/lzzRye/p/9370964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!