MYSQL高级语法

MYSQL高级语法

2023年6月27日发(作者:)

MYSQL⾼级语法1.⾼级建表和插⼊  使⽤creat 和select 进⾏建表操作,中间采⽤AS 标识符;CREATE TABLE new_tableASSELECT *FROM exist_tableLIMIT 10;  从⼀个表中复制列插⼊到指定的表中:INSERT INTO table2SELECT * FROM table1; ⼦查询  ⼦查询就是⼀个select 语句作为另⼀个查询语句的输⼊值,主要分为以下三种情况:出现在where 语句处 的⼦查询语句,作⽤是作为过滤的条件来使⽤;Select 列名From 表名Where 列 操作符 (Select 列名 From 表名)******使⽤注意:(1)⼦查询语句必须针对⼀个字段进⾏查询操作,否则抛错:Operand should contain 1 column(s出现在from 语句处的⼦查询语句,作⽤是作为⼀个临时的表进⾏查询;Select 字段from (select * from 表名)as 别名*********此处的使⽤注意:(1)⼦查询在from 语句之后,其实就是⽣成了⼀个临时表,所以⼦查询可以查询多个字段;(2)⼦查询 在from 之后的时候,必须要对表取⼀个别名进⾏使⽤出现在Select list 语句处的⼦查询语句,作⽤是作为⼀个字段值进⾏返回;select 字段1,(select 字段2 from 表名)from 表名***********此处的使⽤注意:(1)⼦查询语句必须针对⼀个字段进⾏查询操作,否则抛错:Operand should contain 1 column(s)(2)⼦查询语句返回的必须是⼀⾏数据,否则抛错:Subquery returns more than 1 row

3.多表操作⾏合并操作格式:select *

from 表A

union (union All)select *

from 表B;******使⽤注意:(1)操作合并的两个表,必须是字段或者列数相同;(2)union 对表做合并操作的时候,会进⾏去重操作;(3)union all 对表做合并操作的时候,不会进⾏去重操作;(4)使⽤合并操作的时候,不能进⾏order by操作,如果需要进⾏排序操作,可以在合并表结束后,使⽤⼦查询的⽅式,进⾏order by 操作;

4.⾏结合 Join :  SQL 的join ⼦句基于多个表之间的相同字段,进⾏表之间的⾏结合操作,主要分为Left Join,Right Join ,Inner Join ,Full Outer Join四种,以下为这四种操作描述:INNER JOIN:Join 操作的默认操作(使⽤Join 即可表⽰Inner Join ),如果关键字在表中存在⼀个匹配的时候,则返回⾏;

LEFT JOIN:左表返回所有⾏,右表进⾏匹配,如果有匹配值,则返回对应的字段值,如果没有匹配值,则全部置为Null 值;

RIGHT JOIN:与Left Join 操作相反,右表返回所有⾏,左表进⾏匹配,如果有匹配值,则返回对应的字段值,如果没有匹配值,则全部置为Null 值;

FULL Outer JOIN:关键字只要左表和右表其中⼀个表中存在匹配,则返回⾏,它结合了 LEFT JOIN 和 RIGHT JOIN 的结果;    注意事项:  1)多表关联的核⼼原理在于笛卡尔积,参考⽂章(/nick-huang/p/#my_inner_label1);2)多表关联可能会导致数据的重复,也就是在建⽴关联时的 1:1,1:N,N:N 的形式,所以需要注意数据的去重⼯作,要先处理每个表的数据,再进⾏关联操作; 变量变量的使⽤场景:1)代码中很多地⽅都会重复⽤到同⼀段代码;2)每次重新使⽤代码的时候,可能只需要修改某些参数即可;例如:时间,区域3)构建⼀个标识字段,帮助做数据分析判别。例如:对某类型字段进⾏排序分析;变量的定义规则: 1)变量声明: 使⽤@变量名;2)变量命名组成元素可以是:字母、数字、下划线、‘.’ 、'$'⼏种元素;3)变量的赋值: 使⽤: set @变量名 =value; 使⽤: set @变量名 :=value; 使⽤: select ⽅式赋值:select @变量名:=value;(注意:该种⽅式声明变量只能使⽤‘:=’进⾏,因为在select 语句中 ‘=’会被认为是⽐较操作符)4)变量的使⽤:直接调⽤变量名即可;**********注意:变量的声明属于会话级别,所以变量在SQL 定义完成并执⾏后才会有,变量⽆法指定变量的类型,是在赋值的时候⾃动推断变量的类型;

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687816720a47675.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信