
SQL
数据库的学习
诸秋白
这个作者很懒,什么都没留下…
展开
-
mysql七种join
数据准备CREATE TABLE `t_dept` (`id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE `t_emp` (`id` INT(11) NOT NU原创 2021-02-03 21:31:33 · 629 阅读 · 1 评论 -
MySQL数值函数
ABS(x)函数返回x的绝对值CEIL(x)函数返回大于x的最小整数 FLOOR(x)函数返回小于x的最大整数MOD(x,y)函数返回x/y的模,和x%y的结果相同,模数和被模数任何一个为NULL结果都为NULL; RAND()函数返回0~1内的随机值 利用此函数可以取任意指定范围内的随机数。 ROUND(x,y)函数返回参数x的原创 2018-01-09 14:46:00 · 606 阅读 · 0 评论 -
MySQL流程函数
流程函数是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提高语句的效率。 创建并初始化一个职员薪水表 CREATE TABLE salary(userID INT,salary DECIMAL(9,2)); INSERT INTO SALARY VALUES(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1原创 2018-01-09 17:24:32 · 401 阅读 · 0 评论 -
MySQL日期和时间函数
DURDATE()函数返回当前日期,只包含年月日 CURTIME()函数返回当前时间,只包含时分秒 NOW()函数返回当前的日期和时间,年月日时分秒全部包含。 UNIX_TIMESTAMP(date)函数返回日期date的UNIX时间戳 WEEK(DATE),YEAR(DATE),HOUR(time),MINUTE(TIME)函数WEEK(DATE):返原创 2018-01-09 16:24:45 · 257 阅读 · 0 评论 -
MySQL其他类型常用函数
DATABASE()函数返回当前数据库名 VERSION()函数返回当前数据库版本 USER()函数返回当前登录用户名 INET_ATON(IP)函数返回IP地址的网络字节序表示 INET_NTOA(num)函数返回网络字节代表的IP地址 INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换原创 2018-01-10 09:24:20 · 237 阅读 · 0 评论 -
MySQL的CHAR和VARCHAR类型
CHAR和VARCHAR类型类似,都用来存储字符串,但他们保存和检索的方式不用。CHAR属于固定长度的字符类型,而VARCHAR属于可变长度的字符类型。 表8-1显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别。 注意表8-1中最后一行的值只适合MySQL运行在非“严格模式”时,如果MySQL运行在严格模式,超过列长度的值将原创 2018-01-19 09:23:08 · 386 阅读 · 0 评论 -
MySQL查看数据库文件存放目录
SHOW VARIABLES LIKE '%datadir%'原创 2018-01-19 09:47:38 · 13816 阅读 · 0 评论 -
MySQL数据类型之TEXT与BLOB
一般在保存少量字符串的时候,我们会选择CHAR或者VARCHAR,而在保存较大文本时,通常会选择使用TEXT或者BLOB。二者之间的主要差别是BLOB能用来保存二进制数据,比如照片;而TEXT只能保存字符数据,比如一遍文章或日记。TEXT和BLOB中又分别包括TEXT,MEDIUMTEXT,LONGTEXT和BLOB,MEDIUMBLOB,LONGBLOB三种不同的类型,他们之间的主要区别是存储文原创 2018-01-19 11:09:14 · 31872 阅读 · 2 评论 -
mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
在mysql 工具 搜索或者插入数据时报下面错误: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘database_tl.emp.id’ which is not functionally dependent on colu...转载 2017-12-12 14:12:50 · 232 阅读 · 0 评论 -
explain 分析sql语句字段的解释
+----+-------------+-------+------------+------+---------------+-----+---------+------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref ...转载 2018-02-12 14:07:10 · 509 阅读 · 0 评论 -
自定义数据库连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,应用程序和数据库创建连接需要消耗很大的资源。package com.lbx.myDataSource;import javax.sql.DataSource;import java.io.PrintWriter;import java.lang.reflect.Invoca...原创 2018-04-02 11:07:43 · 262 阅读 · 0 评论 -
数据库事务
一、事务简介Transaction也就是所谓的事务,用大白话来说,就是一件事,要么全部成功,要么全部失败。二、事务特性原子性(Atomicity):事务里面的操作单元不可分割,要么全部成功,要么全部失败。就像化学里面的原子一样,原子是构成物质的最小单位,不能够在切分。一致性(Consistency):事务执行前后,业务状态和其他业务状态保持一致。也就是说,张三转200元给李四,要么钱还在张三账户上...原创 2018-06-19 23:34:39 · 344 阅读 · 0 评论 -
mysql查询结果输出到文件
方式一在mysql命令行环境下执行: sql语句+INTO OUTFILE +文件路径/文件名 +编码方式(可选) 例如:select * from user INTO OUTFILE '/var/lib/mysql/msg_data.xls ' ;注意事项:0)可能会报没有 select command denied(没有查询权限) 或者 Access denied ...转载 2018-07-26 14:23:37 · 3121 阅读 · 0 评论 -
MySQL字符串函数
CONCAT函数 注意:任何字符串与NULL进行连接的结果都将是NULL。INSERT(str,x,y,inst)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instr。INSERT('123456789abcdef',2,1,'abcdf') 这里可以看出2被替换成了abcdfINSERT('123456789abcdef',2,2,'ab原创 2018-01-09 11:53:15 · 241 阅读 · 0 评论 -
MySQL的比较运算符 BETWEEN 和 IN,逻辑运算符 异或 XOR
“BETWEEN”运算符的使用格式为”a BETWEEN min AND max”,当a大于等于min并且小于等于max,则返回值为1,否则返回值为0;当操作数a,min,max类型相同时,此表达式等价于(a>=min and a“IN”运算符的使用格式为”a IN (value1 ,value2)”,当a的值存在于列表中,则整个比较表达式返回的值为1,否则返回0。 “X原创 2018-01-09 09:27:40 · 5651 阅读 · 0 评论 -
MySQL基础篇之DDL语句
SQL简介 当面对一个陌生的数据库时,通常需要一种方式与它交互,以完成用户所需要的各种工作,这个时候,就要用到SQL语言了。 SQL是Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言,由IBM在20世纪70年代开发出来,作为IBM关系数据库原型System R的原型关系语言,实现了关系数据库中的信息检索。 20世纪80年代初,美国国原创 2018-01-10 11:42:38 · 9151 阅读 · 3 评论 -
MySQL基础之DML语句
DML语句DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert),更新(update),删除(delete)和查询(select),是开发人员日常使用最频繁的操作。插入记录表创建好后,就可以往里插入记录了,插入记录的基本语法如下INSERT INTO tablename (field1,field2,.....,fieldn) VALUES (value原创 2018-01-11 10:43:17 · 444 阅读 · 0 评论 -
MySQL浮点数与定点数
浮点数一般用于表示含有小数部分的数值。当一个字段被定义为浮点类型后,如果插入数据的精度超过该列定义的实际精度,则插入值会被四舍五入到实际定义的精度值,然后插入,四舍五入的过程不会报错。在MySQL中float和double用来表示浮点数。 定点数不同于浮点数,定点数实际上是以字符串形式存放,所以定点数可以更精确地保存数据。如果实际插入的数值精度大于实际定义的精度,则MySQL会进行警告(默认原创 2018-01-22 09:34:32 · 616 阅读 · 0 评论 -
MySQL日期类型选择
MySQL提供的常用日期类型有DATE,TIME,DATETIME,TIMESTAMP,根据实际需要选择能够满足应用的最小存储的日期类型,如果应用只需要记录“年份”,那么用1个字节来存储的YEAR类型完全可以满足,而不需要用4个字节来存储的DATE类型,这样不仅仅节约存储,更能够提高表的操作效率。如果要记录年月时分秒,并且记录的年份比较久远,那么最好使用DATETIME,而不要使用TIME原创 2018-01-22 09:41:33 · 257 阅读 · 0 评论 -
MySQL选择合适的字符集
对数据库来说,字符集更加重要,因为数据库存储的数据大部分都是各种文字,字符集对数据库的存储,处理性能,以及日后系统的移植,推广都会有影响。 MySQL5.6目前支持几十种字符集,包括UCS-2,UTF-16,UTF-16LE,UTF-32,UTF-8和utf8mb4等Unicode字符集。 根据应用的需求,考虑以下几方面的因素。满足应用支持语言的需求,如果应用要处理各种各样的文字,或者将原创 2018-01-22 10:22:29 · 6835 阅读 · 0 评论 -
MySQL连接字符集和校对规则
实际的应用访问来说,存在着客户端和服务器之间交互的字符集和校对规则的设置。 对于客户端和服务器的交互操作,MySQL提供了3个不同的参数:character_set_clinet,character_set_connection和character_set_result,分别代表客户端,连接和返回结果的字符集。通常情况下,这3个字符集应该是相同的,才可以确保用户写入的数据可以正确地读出,特别是对原创 2018-01-22 11:17:41 · 425 阅读 · 0 评论 -
MySQL之表连接
表连接当需要同时显示多个表的字段时,就可以用表连接来实现这样的功能。从大类上分,表连接可分为内连接和外连接,它们之间的最主要区别是,内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。 查找出雇员的名字和所在的部门,雇员名称和部门分别存在表emp和dept中,因此需要使用表连接进行查询: 外连接可分为左连接和右连接左连接:包含所有的左边表中的记录甚至是右边表中原创 2018-01-12 17:59:50 · 293 阅读 · 0 评论 -
MySQL位运算符优先级
用“()”来将需要优先的操作括起来,这样既起到了优先的作用,其他用户看起来更易于理解。原创 2018-01-09 10:41:27 · 326 阅读 · 0 评论 -
MySQL位运算符
位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果。MySQL5.0支持6种位运算符。 “位与”对多个操作数的二进制位做逻辑与操作,例如2&3,因为2的二进制数是10,3是11,所有10&11的结果是10,十进制数字还是2。 2&3&4,4的二进制是100,和10(2的二进制)做与操作100&010后。 “位原创 2018-01-09 10:38:11 · 3333 阅读 · 0 评论 -
MySQL设计索引的原则
索引的设计可以遵循一些已有的原则,创建索引的时候请尽量考虑符合这些原则,便于提升索引的使用效率,更高效地使用索引。搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列时出现在WHERE字句中的列,或连接子句中指定的列,而不是出现在SELECT关键字后的选择列表中的列。使用唯一索引。考虑某列中值的分布。索引的列的基数越大,索引的效果越好。例如,存放出生日期的列具有不同值,很容易区分各转载 2018-01-23 17:21:23 · 276 阅读 · 0 评论 -
MySQL WHERE子句内使用正则表达式搜索
正则表达式之初见下面的语法检索列prod_name包含文本1000的所有行SELECT * FROM products WHERE prod_name REGEXP '1000'; 使用正则表达式语言中一个特殊的字符.,它表示匹配任意一个字符SELECT * FROM products WHERE prod_name REGEXP '.000';SELECT原创 2018-02-01 09:46:50 · 2604 阅读 · 0 评论 -
MySQL支持的数据类型
整形类型整型类型中,按照取值范围和存储方式不同,分为tinyint,smallint,mediumint,int和bigInt这五个类型。如果超出类型范围的操作,会发生”Out of range”错误提示。 对于整型数据,MySQL还支持在类型后面的小括号内指定显示宽度,例如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。一般配合zero原创 2018-01-17 11:34:09 · 315 阅读 · 0 评论 -
MySQL数据库 null转为0,及一些case when用法
1、如果为空返回0select ifnull(null,0)应用情景,如果在进行右连接或者左连接时,有一些为空的字段,可以进行这样的处理。 select ifnull( (B.submission_time-A.submission_time),0) from A right join B on 条件。2、如果为空返回0,否则返回1select if(isnull(col),0,1) as转载 2017-12-05 11:50:25 · 8906 阅读 · 0 评论