基于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,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...
随机推荐
- Linux stat函数和stat命令
stat函数和stat命令 linux文件里的[inode = index node]解释:要理解inode必须了解磁盘和[目录项],inode实际是连接[目录项]和磁盘的中间物质. 图里的大圈代表硬 ...
- 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡
分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)! 首先自己从宏观把控一下,通过上网科普自 ...
- pytest进阶之fixture
前言 学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unit ...
- Kafka 消费者相关配置
消费者相关配置类为 org.apache.kafka.clients.consumer.ConsumerConfig 具有以下配置参数 1. GROUP_ID_CONFIG = "grou ...
- webrtc aecd算法解析一(原理分析)
webrtc的回声抵消(aec.aecm)算法主要包括以下几个重要模块: 回声时延估计 NLMS(归一化最小均方自适应算法) NLP(非线性滤波) CNG(舒适噪声产生) 回声时延估计 这张图很多东西 ...
- Base64编码的原理
Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于 2的6次方是64,所以每6个比特为一个单元,对应某个可打印字符.3个字节有24个比特,对应于4个Base64单元,即3个字节可由 ...
- Identity Server 4 预备知识 -- OAuth 2.0 简介
OAuth 2.0 简介 OAuth有一些定义: OAuth 2.0是一个委托协议, 它可以让那些控制资源的人允许某个应用以代表他们来访问他们控制的资源, 注意是代表这些人, 而不是假冒或模仿这些人. ...
- Identity Server 4 - Hybrid Flow - MVC客户端身份验证
预备知识 可能需要看一点点预备知识 OAuth 2.0 不完全简介: https://www.cnblogs.com/cgzl/p/9221488.html OpenID Connect 不完全简介: ...
- 测试 ASP.NET Core API Controller
本文需要您了解ASP.NET Core MVC/Web API, xUnit以及Moq相关知识. 这里有xUnit和Moq的介绍: https://www.cnblogs.com/cgzl/p/917 ...
- 《前端之路》之 this 的使用技巧总结
06: JS 中 this 的使用技巧总结 this 是 JavaScript 中的关键字. 一.基本认识 在 JS 中我们把 this 关键字当作成一个 快捷方式,用来引用当前调用者. 解释上面这句 ...