加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

1000行MySQL学习笔记,不怕你不会,就怕你不学!

发布时间:2019-04-10 19:40:22 所属栏目:MySql教程 来源:格物
导读:Windows服务 --启动MySQL netstartmysql --创建Windows服务 sccreatemysqlbinPath=mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 mysql-h地址-P端口-u用户名-p密码 SHOWPROCESSLIST--显示哪些线程正在运行 SHOWVARIABLES--显示系统变量信息

SQL编程

  1. --// 局部变量 ---------- 
  2. -- 变量声明 
  3.     declare var_name[,...] type [default value] 
  4.     这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个default子句。值可以被指定为一个表达式,不需要为一个常数。如果没有default子句,初始值为null。 
  5. -- 赋值 
  6.     使用 set 和 select into 语句为变量赋值。 
  7.     - 注意:在函数内是可以使用全局变量(用户自定义的变量) 
  8.  
  9.  
  10. --// 全局变量 ---------- 
  11. -- 定义、赋值 
  12. set 语句可以定义并为变量赋值。 
  13. set @var = value; 
  14. 也可以使用select into语句为变量初始化并赋值。这样要求select语句只能返回一行,但是可以是多个字段,就意味着同时为多个变量进行赋值,变量的数量需要与查询的列数一致。 
  15. 还可以把赋值语句看作一个表达式,通过select执行完成。此时为了避免=被当作关系运算符看待,使用:=代替。(set语句可以使用= 和 :=)。 
  16. select @var:=20; 
  17. select @v1:=id, @v2=name from t1 limit 1; 
  18. select * from tbl_name where @var:=30; 
  19. select into 可以将表中查询获得的数据赋给变量。 
  20.     -| select max(height) into @max_height from tb; 
  21. -- 自定义变量名 
  22. 为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用@作为开始符号。 
  23. @var=10; 
  24.     - 变量被定义后,在整个会话周期都有效(登录到退出) 
  25.  
  26.  
  27.  
  28. --// 控制结构 ---------- 
  29. -- if语句 
  30. if search_condition then 
  31.     statement_list    
  32. [elseif search_condition then 
  33.     statement_list] 
  34. ... 
  35. [else 
  36.     statement_list] 
  37. end if; 
  38. -- case语句 
  39. CASE value WHEN [compare-value] THEN result 
  40. [WHEN [compare-value] THEN result ...] 
  41. [ELSE result] 
  42. END 
  43. -- while循环 
  44. [begin_label:] while search_condition do 
  45.     statement_list 
  46. end while [end_label]; 
  47. - 如果需要在循环内提前终止 while循环,则需要使用标签;标签需要成对出现。 
  48.     -- 退出循环 
  49.         退出整个循环 leave 
  50.         退出当前循环 iterate 
  51.         通过退出的标签决定退出哪个循环 
  52.  
  53.  
  54.  
  55. --// 内置函数 ---------- 
  56. -- 数值函数 
  57. abs(x)          -- 绝对值 abs(-10.9) = 10 
  58. format(x, d)    -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46 
  59. ceil(x)         -- 向上取整 ceil(10.1) = 11 
  60. floor(x)        -- 向下取整 floor (10.1) = 10 
  61. round(x)        -- 四舍五入去整 
  62. mod(m, n)       -- m%n m mod n 求余 10%3=1 
  63. pi()            -- 获得圆周率 
  64. pow(m, n)       -- m^n 
  65. sqrt(x)         -- 算术平方根 
  66. rand()          -- 随机数 
  67. truncate(x, d)  -- 截取d位小数 
  68. -- 时间日期函数 
  69. now(), current_timestamp();     -- 当前日期时间 
  70. current_date();                 -- 当前日期 
  71. current_time();                 -- 当前时间 
  72. date( yyyy-mm-dd hh:ii:ss );    -- 获取日期部分 
  73. time( yyyy-mm-dd hh:ii:ss );    -- 获取时间部分 
  74. date_format( yyyy-mm-dd hh:ii:ss ,  %d %y %a %d %m %b %j ); -- 格式化时间 
  75. unix_timestamp();               -- 获得unix时间戳 
  76. from_unixtime();                -- 从时间戳获得时间 
  77. -- 字符串函数 
  78. length(string)          -- string长度,字节 
  79. char_length(string)     -- string的字符个数 
  80. substring(str, position [,length])      -- 从str的position开始,取length个字符 
  81. replace(str ,search_str ,replace_str)   -- 在str中用replace_str替换search_str 
  82. instr(string ,substring)    -- 返回substring首次在string中出现的位置 
  83. concat(string [,...])   -- 连接字串 
  84. charset(str)            -- 返回字串字符集 
  85. lcase(string)           -- 转换成小写 
  86. left(string, length)    -- 从string2中的左边起取length个字符 
  87. load_file(file_name)    -- 从文件读取内容 
  88. locate(substring, string [,start_position]) -- 同instr,但可指定开始位置 
  89. lpad(string, length, pad)   -- 重复用pad加在string开头,直到字串长度为length 
  90. ltrim(string)           -- 去除前端空格 
  91. repeat(string, count)   -- 重复count次 
  92. rpad(string, length, pad)   --在str后用pad补充,直到长度为length 
  93. rtrim(string)           -- 去除后端空格 
  94. strcmp(string1 ,string2)    -- 逐字符比较两字串大小 
  95. -- 流程函数 
  96. case when [condition] then result [when [condition] then result ...] [else result] end   多分支 
  97. if(expr1,expr2,expr3)  双分支。 
  98. -- 聚合函数 
  99. count() 
  100. sum(); 
  101. max(); 
  102. min(); 
  103. avg(); 
  104. group_concat() 
  105. -- 其他常用函数 
  106. md5(); 
  107. default(); 
  108.  
  109. --// 存储函数,自定义函数 ---------- 
  110. -- 新建 
  111.     CREATE FUNCTION function_name (参数列表) RETURNS 返回值类型 
  112.         函数体 
  113.     - 函数名,应该合法的标识符,并且不应该与已有的关键字冲突。 
  114.     - 一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。 
  115.     - 参数部分,由"参数名"和"参数类型"组成。多个参数用逗号隔开。 
  116.     - 函数体由多条可用的mysql语句,流程控制,变量声明等语句构成。 
  117.     - 多条语句应该使用 begin...end 语句块包含。 
  118.     - 一定要有 return 返回值语句。 
  119. -- 删除 
  120.     DROP FUNCTION [IF EXISTS] function_name; 
  121. -- 查看 
  122.     SHOW FUNCTION STATUS LIKE  partten  
  123.     SHOW CREATE FUNCTION function_name; 
  124. -- 修改 
  125.     ALTER FUNCTION function_name 函数选项 
  126.  
  127. --// 存储过程,自定义功能 ---------- 
  128. -- 定义 
  129. 存储存储过程 是一段代码(过程),存储在数据库中的sql组成。 
  130. 一个存储过程通常用于完成一段业务逻辑,例如报名,交班费,订单入库等。 
  131. 而一个函数通常专注与某个功能,视为其他程序服务的,需要在其他语句中调用函数才可以,而存储过程不能被其他调用,是自己执行 通过call执行。 
  132. -- 创建 
  133. CREATE PROCEDURE sp_name (参数列表) 
  134.     过程体 
  135. 参数列表:不同于函数的参数列表,需要指明参数类型 
  136. IN,表示输入型 
  137. OUT,表示输出型 
  138. INOUT,表示混合型 
  139. 注意,没有返回值。 
  140.  
  141.  
  142. /* 存储过程 */ ------------------ 
  143. 存储过程是一段可执行性代码的集合。相比函数,更偏向于业务逻辑。 
  144. 调用:CALL 过程名 
  145. -- 注意 
  146. - 没有返回值。 
  147. - 只能单独调用,不可夹杂在其他语句中 
  148. -- 参数 
  149. IN|OUT|INOUT 参数名 数据类型 
  150. IN      输入:在调用过程中,将数据输入到过程体内部的参数 
  151. OUT     输出:在调用过程中,将过程体处理完的结果返回到客户端 
  152. INOUT   输入输出:既可输入,也可输出 
  153. -- 语法 
  154. CREATE PROCEDURE 过程名 (参数列表) 
  155. BEGIN 
  156.     过程体 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读