别再截图了!ArcMap地图导出AI格式的完整避坑指南(含释放蒙版关键步骤)
2026/6/13 6:24:53
#增createdatabase[ifnotexists]数据库名[charset"码表"];#删dropdatabase数据库名称;#改alterdatabase数据库名[charset'新的码表'];#查showdatabases;selectdatabase();use数据库名称;showcreatedatabase表名;#增createtable[ifnotexists]表名(列名 类型[约束]);#删droptable[ifexists]表名;#改altertable旧表名renameto新表名;renametable旧表名to新表名;#查showtables;desc表名;#增altertable表名add列名 类型[约束]#删altertable表名drop列名#改altertable表名modify旧列名 类型[约束]altertable表名 change 旧列名 新列名 类型[约束]#整数tinyint(1字节)# 性别、状态、开关smallint(2字节)# 小数量int(4字节)# 普通 ID、数量、年龄(最常用)bigint(8字节)# 订单号、主键 ID#小数floatdoubledecimal(M,N)# M:总有效数字长度(整数位 + 小数位总和)N:小数点后面保留几位小数 金额、价格、薪资(必须用)#字符串varchar(N)# 姓名、标题、地址、手机号(最常用)char()# 身份证、固定长度编码text# 文章内容、备注、详情enum# 固定值:男 / 女、正常 / 禁用#日期datetimedatetime# 添加主键createtable表名(idintprimarykey)# 建表时添加主键createtable表名(idint,primarykey(id))# 建表时添加主键createtable表名(idint)altertable表名addprimarykey(id)# 建表后添加主键# 删除主键altertable表名dropprimarykey# 删除主键altertable表名modifyidint# 清空非空# 添加主键自增createtable表名(idintprimarykeyauto_increment)# 建表时添加altertable表名modifyidintauto_increment# 建表后添加# 删除主键自增altertable表名modifyidint# 删除自增altertable表名dropprimarykey# 删除主键altertable表名modifyidint# 删除非空# 创建createtable表名(namevarchar(20)notnull)# 删除altertable表名modifynamevarchar(20)# 创建createtable表名(card_idvarchar(20)unique)altertable表名adduniqueindexcard_id(card_id)# 删除altertable表名dropindexcard_id# 创建createtable表名(gendervarchar(20)default1)# 删除altertable表名modifygendervarchar(20)# 添加外键约束createtableemployee(idintprimarykeyauto_increment,dept_idint,# 外键约束格式: [constraint 外键约束名] foreign key (外键列名) references 主表名(主键列名)constraintfk_dept_idforeignkey(dept_id)referencesdept(id));# 从表# 删除语法:altertable表名dropforeignkey外键约束名;# 增insertinto表名values(值1,值2,值3);# 单条不指定字段insertinto表名(字段1,字段2,字段3)values(值1,值2,值3);# 单条指定字段insertinto表名values(值1,值2,值3),(值1,值2,值3);# 多条不指定字段insertinto表名(字段1,字段2,字段3)values(值1,值2,值3),(值1,值2,值3);# 多条指定字段# 删deletefrom表名where支持多条件;# 删除指定数据deletefrom表名;# 删除所有数据 不清空主键自增truncate表名;# 删除所有数据 清空主键自增# 改update表名set字段名=字段值wherecid=8;< = >= <= !=
# % 任意多个任意字符select*from表名where字段名like'a%'select*from表名where字段名like'%a'select*from表名where字段名like'%a%'# _任意一个字符select*from表名where字段名like'a_'select*from表名where字段名like'_a'select*from表名where字段名like'a______'# distinct去重, 多列组合起来完全相同才算重复,才会去重selectdistinct列1,列2from表名;# group by去重select列1,列2from表名groupby列1,列2;# 求月销售额差值# 自连接方式selects2.month,s2.revenue,s1.revenue,(s1.revenue-s2.revenue)difffromsales s1joinsales s2ons1.month=s2.month+1;# 窗口函数select*,revenue-lag(revenue,1,revenue)over(orderbymonth)difffromsales;# 求月销售额累加# 自连接方式selectcurr.month,sum(prev.revenue)accu_salesfromsales currleftjoinsalesprevonprev.month<=curr.monthgroupbycurr.month;# 窗口函数select*,sum(revenue)over(orderbymonth)astotalfromsales;WITH临时表名AS(-- 这里写正常查询SQLSELECT字段FROM表)-- 外层直接使用这个临时表SELECT*FROM临时表名;row_number()# 做行号标记的 1 2 3 4rank()# 做稀疏排名的 1 2 2 4dense_rank()# 做密集排名的 1 2 2 3ifnull(exp1,exp2)# exp1不为空就是 exp1,否则是exp2if(条件1,满足条件值,不满足条件值)case字段when值1then结果1when值2then结果2else其他结果endas别名数据备份
# 备份表不存在createtable备份表select*from原表# 备份表存在insertinto备份表select*from原表行转列 列转行
# 行转列createtable`score`(`学号`varchar(24)DEFAULTNULL,`科目`varchar(24)DEFAULTNULL,`成绩`int(11)DEFAULTNULL)engine=InnoDBdefaultcharset=utf8;insertinto`score`values('s001','语文',90),('s001','数学',100),('s001','英语',93),('s002','语文',98),('s002','数学',99),('s002','英语',96);/** 1. 先写一个固定值添加上需要的列 2. 查找每一列对应的值, 通过if关键字进行判断,不满足填null 3. 分组,使用max()聚合 */select学号,max(if(科目='语文',成绩,null))'语文',max(if(科目='数学',成绩,null))'数学',max(if(科目='英语',成绩,null))'英语'fromscoregroupby学号;# 列转行createtable`w_score`(`学号`varchar(24)DEFAULTNULL,`语文`bigint(11)DEFAULTNULL,`数学`bigint(11)DEFAULTNULL,`英语`bigint(11)DEFAULTNULL)engine=InnoDBdefaultcharset=utf8;insertinto`w_score`values('s001',90,100,93),('s002',98,99,96);select学号,'语文'科目,语文 成绩from`w_score`unionselect学号,'数学'科目,数学 成绩from`w_score`unionselect学号,'英语'科目,英语 成绩from`w_score`;