mysql中列的操作

一.表中的列的操作

1.1 alter table 表名 add 你添加的名字 属性 (默认在最后 你也可以指定在那列的位置 after/first 列名)

1.2 alter table 表名 drop 列名

1.3show 表名

1.4alter table 表名 change 原来的名字 新名字 新类型 新参数;||只修改列类型 alter table 表名 modify 原名字  新类型 新参数


二.表的操作 (直说重要的)

2.1为什么创建表时加上 not null default ‘’/default 0  不想让表中出现NULL

2.2为什么不想让表中出现NULL呢 因为他不好比较NULL是一种类型 比较是只能用is null 和 is not null 来比较 碰到其他的运算符,一律返回NULL影响效果,不利于优化

2.3修改表名 alter table 表名 rename 新的表名

2.4数据库的名字不能修改

2.5删除表 drop table 表名 一旦删除就没有了

2.6truncate与delete的区别 truncate比delete快因为truncate相当于把整张表删除了在重新建一张同样结构的表delete相当于把数据从表中删除掉

2.7字符集与校对集问题   校对集是字符集的排序规则   注意:声明的校对集必须是字符集合法的校对集.

默认建表一般用utf8, 而我们在windows下窗口是GBK的

所以你要告诉数据你是GBK负责会乱码的 你可以用sql语句看看你是用的什么字符集

show variables like '%charact%'; 会出现以下信息最后一条可能不一样

 character_set_client     | gbk                               |你用的字符集
 character_set_connection | gbk                               |处理是默认的字符集
 character_set_database   | utf8                              |数据库中用到的字符集
 character_set_filesystem | binary                            |
 character_set_results    | gbk                               |返回时用的字符集
 character_set_server     | gbk                               |
 character_set_system     | utf8                              |
 character_sets_dir       | D:\phpStudy\MySQL\share\charsets\

而我们用的set names utf8 是代表我上面标注蓝色的三句话 这跟数据使用什么字符集没有关系

2.8TEXT文本类型 存放比较大的文本搜索速度稍慢如果不是特别大建议用Varchar,char代替 text不用加默认值(加了也没有啊)

2.9Blob类型 是二进制类型 用了存储二进制信息 它主要的作用是防止字符集的问题导致文件信息丢失

2.0.1如果mysql函数和PHP函数都实现某个功能,优先用哪一个? 用php 为什么呢 mysql中的函数肯定要影响查询的速度

如果确实用到函数 比如时间格式化

在mysql里用date_format,在php里用date可以实现优先放在业务逻辑层,即php层处理这样更灵活 提高了查询速度

如果用了mysql自带函数最大的坏处就是则这列索引将无法使用

如果你针对某列作操作,而此次查询,又使用的此列的索引.
此时,速度将显著变慢.





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值