mysql数据库SQL语言的运用(其他数据库不一定行)。
创建库 create database 库名;
删除库 drop database 库名;
使用库 use 库名;
===============================
===============================
查 select * from 表名
01、查询字段不为空(如果一个字段里面为null表示内容为null,并不是正在的空)
select * from 表名 where date is not null;
02、消除重复的数据
select distinct(字段) from 表明 where 字段;
03、查询一个表中所有字段,如果要消除某个字段的重复行,就是只显示一条,但是也要查询出其他数据(t_table,id,a,b,c,d,e,f)
select * from t_table group by name;
select *, count(name) from t_table group by name; 查询所有字段,并按照name字段分组,如果有重复只取一条,并统计总条数
select *, count(distinct c) from t_table group by c order by 时间 desc; 并按照时间降序排列
select * from t_table as a where (select count(*) from t_table where c = a.c and id <= a.id) = 1 语句没问题但是不明白
04、一篇文章分为很多章节,每个章节都有浏览次数,需要查询这篇文章所有章节总浏览次数
select sum(浏览次数字段) from 表明 where 文章字段='文章名字';
05、多篇文章,每篇文章分为很多章节,每个章节都有浏览次数,求每篇文章总浏览次数,同时需要查询其他字段
select id,...,文章字段,sum(浏览次数) from 表明 group by 文章字段;
select min(id),...,文章字段,sum(浏览次数) from 表明 group by 文章字段; 并且求id为最小值的
06、查看一个表中总共有多少条数据
select count(*) from 表明;
07、查看表的创建语句(表后面有InnoDB表示支持事务)
show create table 表明;
08、统计分组并求总条数
select count(t_table.tsmc) from (select c.tsmc as tsmc from unis_tsgl c where c.userid='system' group by c.tsmc) as t_table
09、
10、
1、查找相同的最大数:括号里面的语句是找出最大值,外面的就是条件对于最大值的
select * from 表名 where age in (select max(age) from 表名); 单独取出最大的数,包括多条的最大数
select * from 表明 order by 字段 desc; 由大到小的取出所有信息
select a.name,c.tslm,c.tsfl,c.tsmc,c.scsj from code_bookgenus a,code_booktype b,unis_tsgl c where a.code=c.tslm and b.code=c.tsfl and c.tslm=12 order by c.scsj desc limit 3
查询三个表,并按照上传时间降序排列取出三条数据(where\order by\desc\limit连用),但是降序后不可以随便取第几条到第几条值
2、四张表中三张是基础表,一张表是总表,总表中涉及到基础表的都是存放的代码,要查出基础表中的信息
req是指另外一个页面传递过来的id然后根据id来查找数
select b.name,c.name,d.name,a.* from unis_jyzb a,code_dealtype b,code_merchandise c,code_merchandise_class d where a.jylx= b.code and b.code = '" + req + "' and a.spxfl = c.code and a.spfl = d.code
3、模糊查询字段中姓名为姚的所有人
select g_name from g_cardapplydetail where g_name like '%姚%'
4、查询表中时间最新的一条数据并取一条
select id from unis_sqtz order by tzsj desc limit 1
===============================
===============================
增 INSERT INTO表名(字段, 字段, …)
01、例子,插入语句写法:
INSERT INTO `unis_jysc_wypl` (`ID`,`PID`,`USERID`,`FBSJ`,`LY`) VALUES ('4','1','3','2008-11-16','第四条');
02、两个表,一样的数据结构我想把A表的所有内容插入到B表怎么实现?
insert into b select * from a
两个表,把a表中的sj字段数据插入到b表中的xm字段怎么实现?
insert into b(xm) select sj from a
03、加载一个文件到MySQL数据库中(到单个表里)
LOAD DATA LOCAL INFILE ‘C:/mysql.sql’ INTO TABLE 表名;
04、加载一个文件的方法(格式规范的文件)
source 文件名
例如(source C:/sql/bbscs6.sql)
===============================
===============================
删 DELETE FROM 表名 WHERE (条件)
01、删除一个表中id=2的值
DELETE FROM `unis_jysc_wypl` WHERE (`ID`='2')
02、两个表相关联删除(a表中存放了文章,b表中存放了文章的评论)
DELETE unis_jyzb .* , unis_jysc_wypl.* FROM unis_jyzb LEFT JOIN unis_jysc_wypl ON unis_jyzb.id=unis_jysc_wypl.pid WHERE unis_jyzb.id='22';
03、模糊删除字段中姓名为李的所有人
delete from 表明 where 字段 like '%李%'
===============================
===============================
改 UPDATE 表名 SET (字段=值, 字段=值, …) WHERE (条件)
01、两个表关联,修改此表中的字段减1操作
UPDATE unis_jyzb as a, unis_spxfltj as b SET b.statsum= b.statsum-1 WHERE a.jylx=b.code and a.id='30';
===============================================================================
1、截取字段用法:
SELECT id, SUBSTRING(字段名, 1, 10) AS 别名 FROM 表明 (如果截取的时间相同,则无法排序)
截取之后只能显示截取的部分,如果要显示所有提示信息,可以查一个字段两次。
2、limit说明:
前面数字表示从第几个数开始(指针是从0开始),后面表示条数
3、字符串的各种截取方式
http://www.sqlstudy.com/sql_article.php?id=2008091902
4、查看mysql端口号
show variables like 'port';
5、设置MySQL可以远程访问(用户名和密码自己修改,可以和原来的用户名密码不同)
grant all privileges on *.* to 'unisdq'@'%' identified by 'unisdq';
flush privileges;
客户端DOS远程登录到mysql数据库。
mysql -h 192.168.100.33 -u root -p root;
6、查看mysql数据库常用的参数
status;
http://www.chinajvm.cn/?p=25
7、
================================================================================
mysql特性总结
1、查看mysql隔离级别(mysql有四个隔离级别1、Read Uncommitted 2、Read Commited 3、Repeatable Read 4、Serialiazble)
select @@tx_isolation;
修改mysql隔离级别(1到4是由低到高的级别)
set transaction isolation level read uncommitted;
2、如果粘贴sql代码的时候出现字符错误。可以设置。
set names gbk;
3、检查隔离级别(对事务的一些介绍;修改的隔离级别只会影响到当前的mysql窗口,不会影响到其他打开的mysql窗口)
select @@tx_isolation;
设置成读未提交级别:set transaction isolation level read uncommitted;
设置成读已提交级别:set transaction isolation level read committed;
设置成可重复读级别:set transaction isolation level repeatable read; (mysql缺省的隔离级别)
设置成可串行化级别:set transaction isolation level serializable;
打开事务:start transaction;
4、
================================================================================
================================================================================
查询时的SQL注入:
1、select * from t_user where user_id=''or 1 or''
解决办法,交给相应数据库的驱动来过滤不合法的字符。
================================================================================
MySQL
学习总结:
1、mysql根据条件取值时,字段不能有空格。
================================================================================
数据库表字段属性介绍
varchar最大可以存放255个字符。
clob和blob属于大文本类型
================================================================================
遗留问题
数据库里面的是中文,在DOS窗口里面用SQL语句查了显示出来却是乱码,为什么?hibernate_first中user表name字段
================================================================================
mysql与mssql的区别2008-08-13 14:47mysql与mssql的区别
mssql 是微软的那个 SQL Server,运行于windows 2000,2003等平台
mysql 是个开源的数据库Server,可运行在windows平台、unix\\linux平台,其标准版是免费的,可以到www.mysql.com 看看
asp\\php只是一种解释语言,不一定mssql不能用php,也不一定mysql非得用php,只不过asp-mssql,php-mysql是一种常用的组合
MsSql就是微软件的MS SQL SERVER。
MySQL是另一家公司的。
比较:
1。MsSQL体积大,MySQL体积小。
2。MsSQL只能用在Windows下,MySQL是多平台的.
3.MsSQL要钱,MySQL免费的(windows下是收费的,但很少)。
MySQL 是专为WEB 数据库设计的,特点是响应速度特别快。
MSSQL 在这方面当然比不上。
至于稳定性嘛, 呵呵,微软的东西, 都不好说。。
我也试过WIN32下的MYSQL, 用DELPHI连接,几种连接方式都相当快。
当然, 其中是没有ADO连接的:)
做越大型的企业应用, MYSQL可能有些力不从心, 不过
MSSQL 也还是不如SYBASE和ORACLE的。
MySql短小精悍,象access一样的文件型数据库,但比access强百倍,是真正多用户多任务的数据库系统,
从Linux上移植过来的,安全性非常好,完全可以作为大型数据库使用,不过大部分操作是在dos下进行,
虽然也有第三方开发的图形界面但并不好用
MsSql是微阮的产品一贯傻大笨粗,性能也强大,图形界面使用很方便,象个傻瓜相机一样,不过,也太大了,
很多不实用的东西 MSSQL 也就是SQL Server,由微软开发,是基于NT系统的数据库管理软件,也就是说仅能在WINDOWS系统下运行。
而MYSQL是跨多平台的数据库管理软件,可运行于LINUX、NT、UNIX等系统,能够和PHP语言有效的结合。
MSSQL需要占用许多系统资源,但功能强大,可支持命令和图形化管理,
MYSQL有多种版本,也可支持命令和图形化管理,对于一般的数据库足以应付了,占用系统资源较少,速度较快,而且是开源的。
mysql针对linux平台 主要结合php语言开发
mssql针对win平台 主要结合asp语言开发
=====================================
Oracle数据库
在Oracle数据库中user是关键字,如果要想把表名定义为user,则在hibernate里面映射文件里面需要写为table="`user`"
表结构是父子关系结构按照多个条件查询语句
表名:t_device
字段名:device_id device_name parent_id device_value
按照三个条件查询语句写法如下
select a.parent_id from t_device a,t_device b,t_device c where
a.parent_id in(select a.parent_id from t_device as a where a.device_value='GPS') and
b.parent_id in(select b.parent_id from t_device as b where b.device_value='已分配' ) and
c.parent_id in(select c.parent_id from t_device as c where c.device_value='23ip') and
a.parent_id=b.parent_id and a.parent_id=c.parent_id group by a.parent_id
select * from t_device as e where e.parent_id in
(
select a.parent_id from t_device a,t_device b,t_device c where
a.parent_id in(
select a.parent_id from t_device as a where a.device_value='GPS'
) and
b.parent_id in(
select b.parent_id from t_device as b where b.device_value='已分配'
) and
c.parent_id in(
select c.parent_id from t_device as c where c.device_value='23'
) and a.parent_id=b.parent_id and a.parent_id=c.parent_id group by a.parent_id
)
or
e.device_id in
(
select a.parent_id from t_device a,t_device b,t_device c where
a.parent_id in(
select a.parent_id from t_device as a where a.device_value='GPS'
) and
b.parent_id in(
select b.parent_id from t_device as b where b.device_value='已分配'
) and
c.parent_id in(
select c.parent_id from t_device as c where c.device_value='23'
) and a.parent_id=b.parent_id and a.parent_id=c.parent_id group by a.parent_id
)
分享到:
相关推荐
本教程面向初学者,旨在提供全面的SQL基础知识,帮助读者快速掌握SQL语句的基本语法和用途。 一、SQL简介 SQL全称结构化查询语言,它允许用户对数据库进行创建、查询、更新和删除操作。SQL被广泛应用于各种数据库...
SQL(Structured Query Language)是用于管理和操作...通过这份“SQL语句大全”,初学者不仅可以了解上述概念,还能学习到各种SQL语句的实际应用,以及如何结合注解理解并编写SQL查询,从而快速提升数据库操作技能。
SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,对于初学者来说,掌握SQL语句是进入数据库领域的基础。本资源"SQL语句大全,初学者的宝典"是一份全面的学习指南,旨在帮助初学者系统地了解...
14. **存储过程和函数**:预编译的SQL语句集合,可以接受参数,执行一系列操作并返回结果。 在"查询2.sql"中,你可能会找到这些概念的实际应用示例,每个示例都是一个学习和理解SQL的好机会。通过实践和研究这些...
### 一、SQL语句的标准图 SQL语句主要包括以下几种类型: 1. **数据查询语言 (DQL)**:用于从数据库中检索数据,如`SELECT`语句。例如: ```sql SELECT * FROM Customers WHERE Country='USA'; ``` 这个语句将...
其核心功能是通过可视化的方式帮助用户设定查询条件,自动生成相应的SQL语句,极大地简化了SQL的编写过程。 SQL(Structured Query Language)是用于管理关系数据库的标准编程语言,用于执行数据查询、更新、插入和...
总的来说,SQL是数据处理的基础,学习并掌握SQL语句能够有效地管理和分析数据库中的信息。通过不断地实践和探索,你可以逐渐熟练运用这些语句,从而在数据分析、业务报告或是应用程序开发等领域发挥重要作用。
SQL语句是结构化查询语言(Structured Query Language)的简称,是用于管理和处理关系数据库的标准语言。本篇文章将深入探讨SQL语句的基本语法,包括数据定义、数据操作、实用工具、事务处理和锁定、数据库管理、...
- **学习与教学**:对于初学者,整洁的代码有助于理解SQL语句的构造和逻辑。 3. **Windows环境的优势** - **兼容性**:Windows平台上有许多专门为该操作系统优化的SQL格式化工具,它们通常与Windows集成良好,...
SQL语句生成器是一款专为MySQL数据库设计的强大工具,它极大地简化了数据库管理和维护过程中的SQL编写任务。无论是初学者还是经验丰富的数据库管理员,都能从中受益,高效地完成建库、删库、建表、删除表、增、删、...
此书共分为15个章节,每一章都精心设计,理论结合实践,旨在让读者能够从基础到高级逐步掌握SQL Server中的各种SQL语句。 第1章:SQL Server简介 本章主要介绍SQL Server的基本概念、发展历程以及在数据管理和分析...
在提供的压缩包文件“实例81 SQL语句嵌套”中,很可能是包含了具体的源码示例,这些示例可以帮助初学者更直观地理解如何在VC++项目中编写和使用嵌套SQL语句。通过学习和实践这些示例,你将能更好地掌握这一技巧,...
SQL(Structured Query Language)...通过这个“SQL语句基础教程”,初学者将逐步了解和掌握SQL的基本概念和操作,为数据库管理和分析奠定坚实的基础。在实际应用中,不断练习和探索,将使你对SQL的运用更加得心应手。
《SQL语句大全》是一本全面介绍SQL语言的电子书籍,涵盖了从基础到高级的各种SQL操作,旨在帮助读者深入理解和熟练运用SQL进行数据库管理和数据处理。SQL,全称Structured Query Language,即结构化查询语言,是用于...
SQL语句自动生成器是一款专为数据库操作设计的实用工具,它简化了编写SQL语句的过程,使得即使是对SQL不熟悉的操作者也能轻松地完成各种数据库操作。这款工具以其直观的用户界面和高效的代码生成能力,深受用户好评...
sql语句 sql常用语句示例学习(初学者).rar sql常用语句示例学习(初学者).rar sql常用语句示例学习(初学者).rar sql常用语句示例学习(初学者).rar sql常用语句示例学习(初学者).rar sql常用语句示例学习...
SQL语句自动生成器是一款非常实用的工具,尤其对于初学者和繁忙的数据库管理员来说,它极大地简化了SQL查询的编写过程。SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,涵盖增、删、改、查...
这份“SQL语句基础PPT”显然是一个教学资料,涵盖了SQL的基础语法和高级特性,对于初学者或者需要复习SQL知识的人来说是一份非常实用的资源。 **一、SQL基础语法** 1. **数据类型**: SQL中的数据类型包括数值型...