mysql语法充电

1.关键字delimiter 的作用

  ①delimiter叫做“定界符”  ,经常可以在复合sql语句或者存储过程等语句中看到 DELIMITER $$ 的内容,

  ②DELIMITER $$的意义是告诉mysql解释器,命令的结束符号是$$,当解析sql语句遇到$$符号时,就可以执行sql语句了。

  ③DELIMETER定义定界符,这个符号可以是任意符号(只要不与sql语句冲突),

  ④默认情况下,delimiter是分号;在命令行客户端中,如果有一行命令以分号结束,

    那么回车后,mysql将会执行该命令。如输入下面的语句
   mysql> select * from test_table;
   然后回车,那么MySQL将立即执行该语句。

  ⑤更改了默认的定界符;为其他符号的时候,记得要改回默认的;,因为,执行sql语句时;分号已是约定俗成的符号了。

2.mysql5.1、5.5等不同版本数据迁移时会出现的错误以及解决方案,

①存储过程的定义存储在mysql数据库的proc表中,proc中的comment字段的类型在mysql5.1的版本中是char(64)类型的,然而在mysql5.5版本中是text类型的,在这两个版本的mysql进行数据迁移时,要注意更改comment的类型。

不修改的话会报错"Cannot load from mysql.proc. The table is probably corrupted",

关于这个报错信息可参考http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28212952&id=3407891

http://wenku.baidu.com/link?url=exER7FiGM7PSzueM4cwJtDR5lz9jO4SQc044_a5RsBK6axIQxhODQoTEjL7e9OIhxXHx15tqcKQqXyNbHhaMJ9IKF2vknCts3vc2QnZp8hC

3.mysql命令行操作界面中使用\G可以将打印的内容变成列状显示,标题在左列,

4.mysql命令行操作界面下查看存储过程的信息的sql语句

show create procedure XXX存储过程名称 \G

 5.sql语句中嵌套IF、Case、When语句:

  参考http://blog.knowsky.com/240220.htm

    http://blog.csdn.net/zoohouse/article/details/5800799

 6.用户访问权限设置

  GRANT ALL PRIVILEGES ON db1.* TO ‘user1‘@‘192.168.1.1‘ IDENTIFIED BY ‘1234556‘ WITH GRANT OPTION;

 最大权限GRANT ALL PRIVILEGES ON *.* TO ‘user1‘@‘%‘ IDENTIFIED BY ‘1234556‘ WITH GRANT OPTION;

7.查询显示序号的sql,

情景案例:根据字段分页顺序查询tab1,显示每条记录的排名,假如每页记录数目是size,页码是page,第一页的页码是0,则每页的起始排名是size*page+1,

即@rownum:=size*page,sql语句为:

SELECT (@rownum:[email protected]+1) AS rankno,t1.* FROM tab1 as t1 ,(SELECT @rownum:=size*page) b ORDER BY score LIMIT page,size

8.having、where的不同:where 的作用是对查询结果进行分组前,将不符合where条件的行去掉,having 子句的作用是筛选满足条件的组,

select A,count(B) as num1 from tab1 group by A having C=‘XX‘,这样写是错误的,select 中没有C列,查询结果集中没有C列值,having也就没法对C进行筛选了,

应该改为select A,count(B) as num1,C from tab1 group by A having C=‘XX‘

(ps:group by语句的意义在于分组查询后进行聚合函数运算统计,如果只是显示列值就不合适了,在having执行的前面,group by 后面接的having一般是表达式,如果是字段值判断,一定要确保是分组之前该字段的值是唯一的,所以一般要求判断这个字段就是分组的字段

9.Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by,

参考:http://www.chengxuyuans.com/MySQL/63991.html

10.创建用户:参考 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73260878e482a958448e435061e5a35bfe87969585393d82f2747f41802bdb12b71350527b59ec89f4aaae1d477719c6269304a891e59925af1dc4755d650964d99a90e97cce74199b9d3a3c82252dd22046df0809c2905&p=aa759a43d48a57f20be296375857&newp=9b6c861f86cc47ad01be9b7c1c6492695d0fc20e39d2db4c&user=baidu&fm=sc&query=mysql%B4%B4%BD%A8%D3%C3%BB%A7&qid=a5e398780002a9d7&p1=1

insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));

刷新系统权限表

flush privileges;

 11.时间戳和日期转换:

 FROM_UNIXTIME( ):转为时间戳类型时间
UNIX_TIMESTAMP( ) :返回长整形类型时间

例如:

SELECT FROM_UNIXTIME(1234567890, ‘%Y-%m-%d %H:%i:%S‘)

mysql>SELECT FROM_UNIXTIME( 1249488000, ‘%Y年%m月%d‘ ) 
->2007年11月20

mysql> SELECT UNIX_TIMESTAMP(‘2009-08-06‘) ; 
->1249488000

 12.表结构相同时A表数据导入B表:

INSERT INTO table_B SELECT * FROM table_A

时间: 2024-10-10 14:08:37

mysql语法充电的相关文章

MySQL语法大全

select * from emp;  #注释#---------------------------#----命令行连接MySql--------- #启动mysql服务器net start mysql #关闭   net stop mysql   #进入mysql -h 主机地址 -u 用户名 -p 用户密码 #退出exit #---------------------------#----MySql用户管理--------- #修改密码:首先在DOS 下进入mysql安装路径的bin目录下

学习mysql语法--基础篇(二)

  前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML 数据操作语言(插入.删除和修改数据库中的数据)INSERT UPDATE DELETE   DQL 数据查询语言(用来查询数据库中的数据)SELECT   DCL 数据控制语言(用来控制存取许可.存取权限等)CREATE   DDL 数据定义语言(用来建立数据库.数据库对象和定义表的列)CREATE

学习mysql语法--基础篇(一)

  前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给用户分配权限,删除用户权限.    二.MYSQL中常见的数据类型 三.表-创建表.主键.外键    四.数据库设计的三大范式 以下所有代码全部在新建查询表里面使用mysql语法编辑. 1.创建用户,创建数据库,给用户分配权限,删除用户权限. /* SQL 多行注释 */-- SQL 单行注释 创建

MySql 语法细节补充

一.注释: 1.单行注释#开始到行结束. 2.多行注释/* ...  */. 二.数据库存在性判断: 1.例如:如果数据库存在则删除 drop database if exists 数据库名; 2.例如:如果数据库不存在则创建 create database if not exists 数据库名; MySql 语法细节补充,布布扣,bubuko.com

MYSQL 语法大全自己总结的

mysql语法大全--------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不需要空格mysql -uroot -p[密码]--退出exit;----MySql用户管理-----------数据库root密码修改操作系统:windows操作系统,xp或win7.1.dos命令行窗口 进入e:\mysql5.5\bin ,停止mysql 服务    e:\mysql5.5\bin

MySQL语法执行工作原理

目录 [TOC] 一.MySQL语法执行工作原理 客户端请求由Nginx等负载均衡服务器转交给Tomcat,Tomcat从MySQL中捞取数据,如果请求的数据在MySQL缓存中,那么MySQL会将缓存中捞取到的数据返回给客户端,如果缓存中没有请求的数据,那么MySQL会通过解析器解析SQL语法是否有问题(用户权限问题),在SQL语法没有问题的情况下,将SQL转交给优化器,看SQL是否通过索引等来进行查询,再通过存储引擎在磁盘中捞取数据. 详细流程如下,对于IE-->TOMCAT-->MySQL

mysql 语法统计

mysql数据库具有开源,跨平台性,免费使用, 功能强大且使用方便等众多优点.了解它的语法是很有必要的.那么咱们现在就来学习一下它的语法结构. 一: 创建数据库: create {database | schema} [if not exists] 库名 [default] character set [=] charset_name if not exists  如果存在,就忽略. character set 默认字符集编码. 创建数据库: create database 修改数据库: alt

mysql 基础篇5(mysql语法---数据)

6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1,'张三','男',20); -- 注意不能少或多字段值 -- INSERT INTO student VALUES(2,'李四','女'); -- 插入部分字段 INSERT INTO student(id,NAME) VALUES(2,'李四'); -- 1.2 修改数据 -- 修改所有数据(建

搞定linux上MySQL编程(二):MySQL语法基础操作

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] sql(structured query language)是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统. sql语言包含3部分: 1. 数据定义语言(DDL),用于定义和管理对象,例如数据库.数据表以及试图等.例如create.drop.alter等语句. 2. 数据操作语言(DML),用于操作数据库中数据,例如select. insert