基于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,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...
随机推荐
- 监控EXPDP/IMPDP进度
--获取JOB_NAMEselect * from DBA_DATAPUMP_JOBS;OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTA ...
- JAVA文件的上传与访问
/** * 各种文件上传与判断 * types 文件类型(1图片 2视频 3文件) */@RequestMapping(method = RequestMethod.POST, path = &quo ...
- 关于bootstrap报错
在使用bootstrap报错.报错的位置如下 if("undefined"==typeof jQuery)throw new Error("Bootstrap's Jav ...
- python 基础语法梳理(二)
1.gevent使用 # -*- coding: utf-8 -*- import gevent import platform from gevent import subprocess def _ ...
- SQL 高级查询(层次化查询,递归)
SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...
- 腾迅云CDN的使用
一开始,我是想和七牛云一样,将腾迅云的对象存储作为网盘使用,不过在折腾的时间,搞不清楚腾迅云CDN的用法,最后看文档,看博客,大概了解了 这里讲两种用法,一种是结合对象存储,作一个静态网站或下载站,但 ...
- webrtc aecd算法解析一(原理分析)
webrtc的回声抵消(aec.aecm)算法主要包括以下几个重要模块: 回声时延估计 NLMS(归一化最小均方自适应算法) NLP(非线性滤波) CNG(舒适噪声产生) 回声时延估计 这张图很多东西 ...
- vueJS报错记录列表以及解决方案
1.在elem团队新出的框架里,navMenu,控制台报missing required prop "index" 解决方案: 添加index的值 2.Duplicate keys ...
- JavaScript夯实基础系列(三):this
在JavaScript中,函数的每次调用都会拥有一个执行上下文,通过this关键字指向该上下文.函数中的代码在函数定义时不会执行,只有在函数被调用时才执行.函数调用的方式有四种:作为函数调用.作为 ...
- 个人完善的springboot拦截器
import lombok.extern.slf4j.Slf4j; import org.manage.management.permission.interceptor.LoginIntercept ...