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语法的更多相关文章

  1. 【原创】6. 在MYSQL++中实现SQL语法中的NULL

    这次要说明的是在MYSQL++中为了实现SQL中的NULL而做出的一系列的举措.我的感觉是Null<T, B>类型通常出现在SSQLS和template Query中比较多. 1. 什么是 ...

  2. 基于mysql数据库 关于sql优化的一些问题

    mysql数据库有一个explain关键词,可以对select语句进行分析并且输出详细的select执行过程的详细信息. 对sql explain后输出几个字段: id:SELECT查询的标识符,每个 ...

  3. mysql系列3 SQL语法基础

    1.创建数据库(语法) 2.创建(数据库)表(语法) 复制新的空表举个例子: mysql> use course;Reading table information for completion ...

  4. mysql中SQL执行过程详解与用于预处理语句的SQL语法

    mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

  5. [转]MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下.   DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...

  6. sql点滴41—mysql常见sql语法

    原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...

  7. mysql用户授权、数据库权限管理、sql语法详解

    mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...

  8. MySQL的操作数据库SQL语法

    MySQL的操作数据库SQL语法 顺序:操作数据库 > 操作数据库中的表 > 操作数据库中的表的数据 MySQL不区分大小写字母 1. 操作数据库 1.创建数据库 2.删除数据库 3.使用 ...

  9. 网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

    本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织 ...

随机推荐

  1. SQL2005打SP4补丁报错:无法安装Windows Installer MSP文件解决方案

    错误如图: 解决方案分享如下: 第一步:卸载下图红框圈住的玩艺. 第二步:把SP4补丁文件解压,找到下图红框圈住的玩艺: 第三步:重新运行SP4补丁安装文件,安装正常.

  2. java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener异常解决

    在启动Dubbo项目时,出现该异常 java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener 解决,引入 <d ...

  3. 网站被k到可以使用关键词搜索到首页优化总结

    从今年二月份,刚过完年回到公司,大约一周多过后,网站就被不知名黑客攻击,然后又因为网站标题关键词堆砌导致网站被降权,从此首页不在有我的网站的踪迹,有的只是其他页面的信息,因为刚开始接触SEO,对这一块 ...

  4. 怎么用Mac电脑创建多个桌面

    区别于win的单个桌面,Mac电脑可以设置多个桌面,方面用户处理各种多乱杂的情况.究竟怎么用Mac电脑创建多个桌面呢?一起来看看吧! 1.首先打开Mission Control,点击偏好设置 2.然后 ...

  5. Java读取excel表,getPhysicalNumberOfCells()和getLastCellNum区别

    excel表存入数据库,发现有时报数组下标越界异常.调试发现用了 getPhysicalNumberOfCells(),这个是用来获取不为空的的列个数. getLastCellNum是获取最后一个不为 ...

  6. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  7. EF Core利用Scaffold从根据数据库生成代码

    在EF6 之前的时代,如果需要从数据库中生成代码,是可以直接在界面上操作的,而到了EF Core的时代,操作方式又有更简便的方式了,我们只需要记住以下这条指令. Scaffold-DbContext ...

  8. Kafka、ActiveMQ、RabbitMQ、RocketMQ 区别以及高可用原理

    为什么使用消息队列 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务 ...

  9. SpringBoot技术栈搭建个人博客【前台开发/项目总结】

    前言:写前台真的是我不擅长的东西...所以学习和写了很久很久...前台页面大概开发了两天半就开发好了,采用的静态的html和bootstrap来写,写后台的时候纠结住了...怎么说呢,写页面真的是头疼 ...

  10. python异常处理的哲学

    所谓异常指的是程序的执行出现了非预期行为,就好比现实中的做一件事过程中总会出现一些意外的事.异常的处理是跨越编程语言的,和具体的编程细节相比,程序执行异常的处理更像是哲学.限于认知能力和经验所限,不可 ...