基于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,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...
随机推荐
- 周一01.2 计算机硬件&操作系统
一.计算机硬件组成 1)控制器:是计算机的指挥系统 2)运算器:数学运算&逻辑运算 3)存储器:存取数据 内存:相当于人的短期记忆(缺点:断电数据会丢失:优点:存取速度快) 外存:相当于一个本 ...
- UML第二次作业
一.plant UML语法学习小结 1.类之间的关系 使用.. 来代替 -- 可以得到点 线. 在这些规则下,也可以绘制下列图形 @startumlClass01 <|-- Class02 Cl ...
- 难以理解的AQS(下)
在上一篇博客,简单的说下了AQS的基本概念,核心源码解析,但是还有一部分内容没有涉及到,就是AQS对条件变量的支持,这篇博客将着重介绍这方面的内容. 条件变量 基本应用 我们先通过模拟一个消费者/生产 ...
- 【神经网络篇】--基于数据集cifa10的经典模型实例
一.前述 本文分享一篇基于数据集cifa10的经典模型架构和代码. 二.代码 import tensorflow as tf import numpy as np import math import ...
- docker~swarm搭建docker高可用集群
回到目录 Swarm概念 Swarm是Docker公司推出的用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入 ...
- 简易调色盘控件 for .NET(EN)
By Conmajia Originally posted in 2012 Introduction Simple & fast implementation of a rectangular ...
- DS控件库 在Combobox中嵌入远程桌面
本示例演示DS开放式下拉列表控件中加入一个RDP远程桌面控件. 先在VS工具箱中添加COM控件Microsoft RDP Client Control,后面的Version版本可以适当高点. 然后将R ...
- 解决在C#(.net)按字节数截取字符串最后出现乱码的问题
最近需要用到按字节数截取字符串.在网上找了很多方法. Encoding.Default.GetString采用的DefaultEncoding.UTF8.GetBytes采用的是utf-8编码.这样当 ...
- Concat
.net 对List使用Concat newlist=list.Concat(list2).ToList() JS的Concat则不用ToList(),一样要用个值去接 Concat返回是一个新数组, ...
- 根据点击事件去选取电脑中.rvt文件
private void button_Click(object sender, RoutedEventArgs e) { //这个选出来是文件夹 //选择文件 var openFileDialog ...