基于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,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...
随机推荐
- OKR能解决996吗?德鲁克怎么看?
最近网络上热议的“996”,不由让人想起我们的邻国日本.他们在20年前就有过一个热词“过劳死”,就是职场加班太严重导致的猝死. 最近有一本书新书<过劳时代>,说的就是日本20年前的过劳死. ...
- ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上. 1.Excel配置项 起始行索引.列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱) ...
- spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
由于项目将原有的 Date类型的字段改造为 LocalDate,LocalDateTime,LocalTime 类型, 发现 spring 对项目的时间格式无法自动转换,故需手动配置下. 在sp ...
- shell if条件判断中:双中括号与单中括号的区别
电脑重装了系统,登录虚拟机的shell脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#z ...
- 如何加速golang写业务的开发速度
如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了.一个项目中,会有30%或者更多的是在处理e ...
- NTP服务和DNS服务(week3_day3)--技术流ken
NTP时间服务器 作用:ntp主要是用于对计算机的时间同步管理操作. 时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响. 部署安装NTP ...
- winform中使用委托进行窗体之间的传值
一.传统的方式 创建一个公共数据资源类,用于存储窗体2的TextBox的值: public class ComValue { public static string Txtvalue { get; ...
- tomcat部署项目后,war包是否可刪?war包存在必要性!
在tomcat中webapps目錄上傳war包后, 对war解压时候. war不能在tomcat运行时删除,否则会删除自动解压的工程. 你可以停止tomcat后删除war. 当你重新部署的时候,如果 ...
- Linux高级运维 第三章 Linux基本命令操作
3.1 Linux终端介绍.Shell提示符.Bash基本语法 3.1.1 登录LINUX终端 两种终端仿真器:1.GNOME桌面的GHOME Terminal : 2.KDE桌面的Konsole ...
- 最新阿里Java技术面试题,看这一文就够了!
金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了! 阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战 ...