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`"
分享到:
相关推荐
SQL语句大全(很全)sql语句用法,对于mysql,oracle,sqlserver 数据库的sql语法,各种语句优化.
常见的sql语句用法,了解基础的sql语句用法,掌握sql语句的编写规则;
SQLServer动态SQL语句的用法
sql语句中join的用法 sql语句中join的用法
SQL语句介绍和应用方法举例,适合初学者,尤其是对SQL基础不太好的应用者。
SQL语句大全(很全)sql语句用法.doc
自己总结的一些关于SQL语句中Select语句常用的几种方法。里面有相信的说明,下载后查阅!
SQL语句 SELECT LIKE like用法详解SQL语句 SELECT LIKE like用法详解SQL语句 SELECT LIKE like用法详解
《Effective MySQL之SQL语句最优化》是由MySQL专家Ronald Bradford撰著,书 中提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧 做了详细的解释。本书希望能够通过一步步详细介绍SQL优化...
sql语句妙用,各种sql语句的详细用法与讲解.doc
结合实例讲述sql语句 是我们能够更好的理解sql的用法 和基本的句式
动态SQL语句.txt 动态语句.txt 区分大小写.txt 去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt ...
用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
sql语句的基本介绍和用法,让你对sql有一定了解
jsp中sql语句的使用方法,在jsp中使用sql语句,对于初学者很有帮助
《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助读者分析和调优有问题的SQL语句。 内容简介 《Effective MySQL之SQL语句最优化》主要内容: ●找出收集和诊断问题必备的分析...