SQL小知识点
Posted wuba
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL小知识点相关的知识,希望对你有一定的参考价值。
1:left join 返回左表中的所有行,即使右表中没有匹配,返回一和虚表(包括两个表的所有列),没有匹配的字段为null
2:字符串拼接符用concat或是||
3:链接:https://www.nowcoder.com/questionTerminal/153c8a8e7805400ba8e384e03acc6b3e
来源:牛客网
因为题目判定系统使用的是sqlite3,所以必须按sqlite3的写法来做,
1 2 |
|
如果是mysql,那么把or去掉,像下面这样:
1 2 |
|
两种数据库还是有区别的。
4: select ...into table1 from table2(从table2中查取数据并创建一个新表table1中)
insert table1 select .. from table2(从table2中查取数据并放入到现有的表table1中)
5: 创建表从其它表中查询数据并插入到新表中:
6 :链接:https://www.nowcoder.com/questionTerminal/f9fa9dc1a1fc4130b08e26c22c7a1e5f
来源:牛客网
SQLite中,使用 INDEXED BY 语句进行强制索引查询,可参考:
http://www.runoob.com/sqlite/sqlite-indexed-by.html
1 |
|
MySQL中,使用 FORCE INDEX 语句进行强制索引查询,可参考:
http://www.jb51.net/article/49807.htm
1 |
|
7: 修改表(结构):alter table 表名 add column 列名 alter tabel 表名 alter column 列名 alter table 表名 drop column 列名(column可以省略) alter table 表名1 rename to/as 表名2(修改表名)
8:删除表:drop table 表名(删除整个表) truncate table 表名(删除表的内容,表结构还在) delete table 表名 where(一行行删除,不带where时与truncate一样)参考:删除表
9: 链接:https://www.nowcoder.com/questionTerminal/2bec4d94f525458ca3d0ebf3bc8cd240
来源:牛客网
本题运用 REPLACE 有两种解法
方法一:全字段更新替换。由于 REPLACE 的新记录中 id=5,与表中的主键 id=5 冲突,故会替换掉表中 id=5 的记录,否则会插入一条新记录(例如新插入的记录 id = 10)。并且要将所有字段的值写出,否则将置为空。可参考:
http://blog.csdn.net/zhangjg_blog/article/details/23267761
1 |
|
方法二:运用REPLACE(X,Y,Z)函数。其中X是要处理的字符串,Y是X中将要被替换的字符串,Z是用来替换Y的字符串,最终返回替换后的字符串。以下语句用 UPDATE和REPLACE 配合完成,用REPLACE函数替换后的新值复制给 id=5 的 emp_no。REPLACE的参数为整型时也可通过。可参考:
http://www.cnblogs.com/huangtailang/p/5cfbd242cae2bcc929c81c266d0c875b.html
http://sqlite.org/lang_corefunc.html#replace
1 |
|
10: 给已有的表添加外键约束(mysql) alter table 表名1 add foreign key(列名1)references 表名2(列名2)
以上是关于SQL小知识点的主要内容,如果未能解决你的问题,请参考以下文章
Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段