MySQL数据库和表操作(1)请跳转: https://www.toutiao.com/i6782001316597072387/
上一节中结尾提到MySQL查询时字段重命名,这里补充几点:
1、MySQL重命名时,别名可以用英文状态下的单引号或者英文状态下的双引号括起来
3、MySQL重命名时,别名无特殊字符的,可以省略单引号或双引号,但是建议按照规范使用。
4、别名中如果含有特殊字符会报错
这时就需要规范的命名
UPDATE 表名 SET 字段1='新值1', 字段2='新值2', 字段3='新值3'
WHERE 字段1='条件1' and 字段2='条件2';
将 "福建省" 下面身份证是 "35222719500815****"客户的身份证号码、年龄、金额更新为:身份证="35222719500815****",年龄="60",金额="80000"。
UPDATE financial SET idcard='35222719500815****', age='60', amount='80000'
WHERE province='福建省' and idcard='35222719550815****';
更新数据:
查询更新结果:
这里的drop是删除指定的表,这个操作会同时删除表和表里面的数据,这种一般是对整个表进行销毁的时候使用,需要小心谨慎。
/* EXISTS --> 存在的意思,整句话就是如果要删除的表存在,就删除该表*/
DROP TABLE IF EXISTS 表名 ;
对于一些公司技术人员需要维护数据库,就会涉及到删除表中的错误或者异常数据,但是删除操作需要很谨慎,除非有备份,一旦不小心删除了,不能恢复。
delete from 表名 where 字段1='条件1' ;
删除"福建省"下面"年龄"<65岁的客户:
有时候我们可以自己想从表中查姓名一列数据,姓张(也可以是你想查到的其他姓)的人一共有多少个?这个时候就只能用到模糊查找。
'%'为通配符,按照规则一般是写成 like '%要查询的字符%' 格式,这种方式查询出来的结果'张'字可能存在数据的中间或者最后,跟自己想要的结果就会有些出入,涉及到数据取出来还要二次加工:
select 字段1,字段2 from 表名 where 字段1 like '%张%';
但是在知道姓名第一个字是要查询'张'的时候,如果表中姓名列中,姓前面无空格占用,规范写入数据的,可以使 like '张%' 进行模糊匹配,这样模糊查询出来的结果会更准确,如果有索引的会走索引,因此下面这种方法效率会比上面一种查询效率高:
select 字段1,字段2 from 表名 where 字段1 like '张%';
模糊查询身份证中间年月日是 1960年1月1号的记录:
注:一般情况不建议在MySQL中使用模糊查询,尤其是数据量较大的表中,效率会很低。
1、主键一定是索引,但是索引不一定是主键。一个表只能有一个主键或联合主键,但是可以有多个索引。 主键字段必须不能为空,但是索引字段可以为空。
2、索引不是创建得越多越好,索引越多,表占用空间会越大。一般是常用且必须的才创建索引,对于互联网公司来说,数据量庞大的表,索引动不动就能占用1个G以上。
3、表中数据列是保存汉字等的,不创建索引。
4、在MySQL中用 EXPLAIN+查询语句 查看是否用到索引。
expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra
解读建议参考:http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html
主要关注:select_type(select类型),type(连接类型),key(实际使用到的索引),rows(数值越小越好)