基于mysql的一些sql语法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 12.0px "Helvetica Neue" }

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‘);

 

时间: 2024-10-25 01:07:30

基于mysql的一些sql语法的相关文章

MySQL 最基本的SQL语法/语句

MySQL 最基本的SQL语法/语句 MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop databa

sql点滴41—mysql常见sql语法

原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 添加带注释的列:alter table directory add index_url varchar(256) default null comment '章节书目链接' after di

MySQL技术探索01实现SQL语法解析器

本文将介绍如何使用开源的语法和词法分析框架bison和flex来实现SQL解析器.出于技术学习的目的,本文做描述的微型SQL解析器仅能实现对微型SQL的语法解析. 1.MySQL中的SQL解析器 包括JDBC.ODBC.ADO等等关系数据库客户端应用开发框架在内的各种SDK,核心功能是帮助程序员简化各种客户端的数据库操作,同时将SQL语句通过网络形式发送给MySQL等关系数据库的服务器进程.MySQL服务器进行负责解析并执行这些SQL语句.SQL语句中的语法规则多种多样,MySQL服务器是如何实

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

本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织.可共享的集合. 2,常见的数据库: Oracle Database 甲骨文公司 SQL Server  微软公司 DB2   IBM公司 POSTGRESQL     开源 MySQL 开源 Access 微软公司 注意:虽然数据库各种各样,但是数据库语句之间具有相同之处. 3,数据库基本知识:

Hadoop Hive sql语法详解

Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据.而mapreduce开发人员可以把己写的mapper 和reducer 作为插件来支持

Hive sql 语法解读

一. 创建表 在官方的wiki里,example是这种: Sql代码 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, 

SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、)

SQL语法精讲(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:

linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件

使用虚拟用户收发邮件安装九.安装Courier authentication library 1.courier简介courier-authlib 是Courier组件中的认证库,它是courier组件中一个独立的子项目,用于为courier的其它组件提供认证服务.其认证功能通常包括验证登录时的账号和密码.获取一个相关的家目录或邮件目录等信息.改变账号的密码.而其认证的实现方式也包括基于PAM通过/etc/passwd和/etc/shadow进行认证,基于GDBM或DB进行认证,基于LDAP/M

MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql