基于mysql的一些sql语法
Sql:
distinct:
select distinct * from tea;
Tea中每行的数据必有不同,若有两行相同的,则只输出一行
Limit:
select * from stu limit 1,3
从stu表的第二行开始,选取3行
Null:
select * from stu where name is null;
查询name为空的数据
Regexp:
select * from stu where name regexp '.';
匹配正则表达式
^[0-9]:
表示匹配从0-9数字开始的字符串
[^0-9]:
表示匹配不含0-9数字的字符串
[0-9]:
表示匹配含有0-9数字的字符串
[0-9]$:
表示匹配以0-9数字结束的字符串
Concat:
select concat(name,'(',id,')') from stu
将数据组装成name(id)形式列出
Trim:
select concat(trim(name),'(',id,')') from stu;
Name中的数据去除头尾连续的空格
Ltrim:
select concat(ltrim(name),'(',id,')') from stu;
去除name中开始时连续的空格
Rtirm:
select concat(rtrim(name),'(',id,')') from stu;
去除name中结束时连续的空格
now():
select now();
返回当前时间
自然连接:
两个表中都有例如name属性的化,只显示一个
Union:
select * from stu where name = 'dj' union all select * from stu where name = 'dd';
合并两个查询的数据集,union不显示重复的数据,union all显示重复的数据
全文本搜索:
创建表时需:
指明engine引擎为myisam,指明检索的属性note_text
通过match和against进行搜索匹配
和like相比,这个会返回一定的顺序,匹配频率等
必须声明在 boolean mode下
优先级:
insert low_priority into stu values(null,'d');
· LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。
· HIGH_PRIORITY关键字应用于SELECT和INSERT语句。
· DELAYED关键字应用于INSERT和REPLACE语句。
LOW_PRIORITY :低优先级。如果您使用LOW_PRIORITY关键词,则INSERT的执行被延迟,直到没有其它客户端从表中读取为止。在读取量很大的情况下,发出INSERT LOW_PRIORITY语句的客户端有可能需要等待很长一段时间(甚至是永远等待下去)。
DELAYED :延迟。如果您使用DELAYED关键字,则服务器会把待插入的行放到一个缓冲器中,而发送INSERT DELAYED语句的客户端会继续运行。如果表正在被使用,则服务器会保留这些行。当表空闲时,服务器开始插入行,并定期检查是否有新的读取请求。如果有新的读取请求,则被延迟的行被延缓执行,直到表再次空闲时为止。
注意,目前在队列中的各行只保存在存储器中,直到它们被插入到表中为止。这意味着,如果您强行中止了mysqld(例如,使用kill -9)或者如果mysqld意外停止,则所有没有被写入磁盘的行都会丢失。
HIGH_PRIORITY:高优先级。如果您指定了HIGH_PRIORITY,同时服务器采用--low-priority-updates选项启动,则HIGH_PRIORITY将覆盖--low-priority-updates选项。
--low-priority-updates:mysqld命令行选项。set low_priority_updates = 1 指定更新使用低优先级(默认更新优先级高于查询)。
Ignore:
update ignore stu set name = 'dk' where id = '13';
即使发生错误,也要继续更新
truncate table:
删除并创建表,更快的用于删除表中所有的数据
select last_insert_id();
得到最后一次插入的id
一个引擎的表不能引用另个引擎的表的外键
alter table:
更新表定义
更新视图(创建或者替代视图)
create or replace view s as select * from stu where id%2 = 0;
delimiter //
将结束符号改成 //
存储过程:
mysql> create procedure stuName()
-> begin
-> select name
-> from stu;
-> end //
call stuName()//
调用存储过程stuName
drop procedure if exists stuName//
如果stuname存在,则删除存储过程stuName
create procedure stuFun( out a decimal(8,2), out b decimal(8,2) ) begin select count(*) into a from stu; select avg(id) into b from stu; end//
将count(*)值传给a , 将avg(id)值传给b, decimal(8,2) 有效位8位,保留2位小数
call stuFun(@a,@b)//
调用stuFun这个存储过程,将count(*)值传给a , 将avg(id)值传给b
select @a//
显示a的结果,也就是count(*)的结果
create procedure stuSum( in num int, out sum decimal(8,2) ) begin select count(*) from stu where id = num into sum; end
传入num值,得到sum值
call stuSum(1,@sum)//
调用存储过程
Select @sum;
显示sum的结果
create procedure stuPrint( in num int ) begin select name from stu where id = num; end//
传入num值,根据num值来获得用户名
create procedure fun(
in num int, i
n b boolean,
out result decimal(8,2)
)
begin
declare total decimal(8,2) ;
declare xishu int default 2;
select count(*) from stu where id = num
into total;
if b then
select total*xishu into total;
end if;
select total into result;
end//
declare声明变量
if b then … end fi; 如果b为真则。。
触发器:
当执行update, delete ,insert时触发一条sql语句
创建用户:
create user dj identified by '123456';
重命名用户:
rename user dj to dd;
删除用户:
drop user dj;
给用户权限:
grant select on test.* to dj;
让dj用户可以对test数据库所有的表进行查询
修改用户密码:
set password for dj = password('123');
修改自己权限密码
set password = password('123');
基于mysql的一些sql语法的更多相关文章
- 【原创】6. 在MYSQL++中实现SQL语法中的NULL
这次要说明的是在MYSQL++中为了实现SQL中的NULL而做出的一系列的举措.我的感觉是Null<T, B>类型通常出现在SSQLS和template Query中比较多. 1. 什么是 ...
- 基于mysql数据库 关于sql优化的一些问题
mysql数据库有一个explain关键词,可以对select语句进行分析并且输出详细的select执行过程的详细信息. 对sql explain后输出几个字段: id:SELECT查询的标识符,每个 ...
- mysql系列3 SQL语法基础
1.创建数据库(语法) 2.创建(数据库)表(语法) 复制新的空表举个例子: mysql> use course;Reading table information for completion ...
- mysql中SQL执行过程详解与用于预处理语句的SQL语法
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
- [转]MySQL 最基本的SQL语法/语句
MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...
- sql点滴41—mysql常见sql语法
原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...
- mysql用户授权、数据库权限管理、sql语法详解
mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...
- MySQL的操作数据库SQL语法
MySQL的操作数据库SQL语法 顺序:操作数据库 > 操作数据库中的表 > 操作数据库中的表的数据 MySQL不区分大小写字母 1. 操作数据库 1.创建数据库 2.删除数据库 3.使用 ...
- 网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法
本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...
随机推荐
- 微信小程序小结02-- 完整的demo
小程序确实方便,在移动端方便小个体宣传,不需要服务器和域名,还有客服功能.按朋友的意思,做了一次调整,分成了首页.预约和我的三个页面. 下面说下遇到的几个问题. 01.客服功能 不得不说这个一条龙服务 ...
- Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 『Shell编程』学习记录(1)
例1. $ cat ex1 date pwd cd .. $ bash ex1 # 运行,显示当前日期和当前目录,但没有执行返回上级目录,因为执行的时候终端会产生一个子shell(类似于C语言调用函数 ...
- ToastMiui【仿MIUI的带有动画的Toast】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 仿MIUI的带有动画的Toast 效果图 代码分析 ToastMiui类基于WindowManager 为了和Toast用法保持一致 ...
- ShareIntentUtil【调用系统自带的分享的工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...
- 深度解密HTTP通信细节
目录 HTTP报文截获 背景介绍 抓包 mac本地 远程docker 请求 && 分析 关闭服务进程 关闭docker 重启docker 正常请求 HTTP协议分析 整体介绍 编码 M ...
- Python 里的「单分派泛函数」到底是什么?
泛型,如果你学过Java ,应该对它不陌生吧.但你可能不知道在 Python 中(3.4+ ),也可以实现简单的泛型函数. 在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式 ...
- jquery中的$.fn的用法
JQuery里的原型prototype分析 http://www.nowamagic.net/librarys/veda/detail/653 jquery中的$.fn的用法 ...
- 微信小程序性能优化之一
性能优化 界面和业务逻辑之间事件交互小程序调用nativeNative回调小程序 图片源文件优化 渲染优化 ---------------------------------------------- ...
- HashMap源码分析 JDK1.8
本文按以下顺序叙述: HashMap的感性认识. 官方文档中对HashMap介绍的解读. 到源码中看看HashMap这些特性到底是如何实现的. 把源码啃下来有一种很爽的感觉, 相信你读完后也能体会到~ ...