ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1. `sql语句新增字段`: ~~~  ALTER table TABLE_NAME(表名) ADD CULUMN `field(字段)` 数据类型 是否无符号 是否为空 是否设置默认值; ~~~ 2. 删除字段`sql`语句: ~~~   ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME ~~~ 3. 修改字段`sql`语句 ~~~  alter table TABLE_NAME  modify column COLUMN_NAME varchar(20) COMMENT '注释'; ~~~ 4. 使用`DISTINCT`规避重复的数据 ~~~  SELECT  DISTINCT   c.`name`,   cc.`name` AS class_name,   c.`id`,   c.`cid`  FROM   sycms_question AS q   RIGHT JOIN sycms_course AS c ON q.cid = c.id   LEFT JOIN sycms_course_class AS cc ON c.cid = cc.id  WHERE   `cc`.`id` = 63  ORDER BY   c.id DESC  GROUP BY   c.`name`  LIMIT 0,5 ~~~ 5. 或者使用`group by`进行去重 6. 获取一个表内2个字段相同的数据 ~~~  SELECT   `id`,   `status`,   `quantity`,   `take_count`  FROM   dline_coupon AS a  WHERE   EXISTS ( SELECT quantity, take_count FROM dline_coupon WHERE quantity = a.take_count GROUP BY quantity HAVING count( * ) > 1 ) ~~~ 7. 开放数据库访问权限 ~~~  开放远程连接权限:grant [权限] on   [database.table] to [用户名]@[IP] identified by [密码];    ​  刷新权限:flush privileges; ~~~ 例子: ~~~  grant all privileges on test.* to user@'%' identified by '1234';   ~~~ 意思是,test数据库的所有表对任意IP地址的user用户开放所有权限,登陆密码是1234。 8. 当`MySQL`的自增id用完了怎么办? 在`MySQL`中,`Int`整型的范围如下: | 类型 | 最小值 | 最大值 | 存储大小 | | --- | --- | --- | --- | | Int 有符号 | \-2147483648 | 2148483648 | 4 bytes | | Int 无符号 | 0 | 4294967295 | 4 bytes | 以无符号整型为例,约43亿,一旦达到最大值,此时数据继续插入会报一个逐渐冲突异常如下所示 > Duplicate entry '4294967295' for key 'PRIMARY' 解决方案就是把`Int`类型改为`BigInt`类型,它的范围如下 | 类型 | 最小值 | 最大值 | 存储大小 | | --- | --- | --- | --- | | BigInt 有符号 | \-9223372036854775808 | 923372036854775808 | 8 bytes | | BigInt 无符号 | 0 | 18446744073709551615 | 8 bytes | 更好的回答是 > 进行分库分表 9. 线上如何修改列的数据类型 ~~~  ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; ~~~ 不保险还是用第三方工具进行修改表结构