【MySql数据库】
文章平均质量分 58
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
喵学长
爱好动漫、游戏的二次元,Java工程师
展开
-
H2数据类型
数据类型 整数(INT)布尔型(BOOLEAN)微整数(TINYINT)小整数(SMALLINT)大整数(BIGINT)标识符(IDENTITY)货币数(DECIMAL)双精度实数(DOUBLE)实数(REAL)时间(TIME)日期(DATE)时间戳(TIMESTAMP)二进制(BINARY)其他类型(OTHER)原创 2017-12-14 09:43:26 · 5048 阅读 · 0 评论 -
Mysql外连接原理
今天在使用left join的时候出现一个问题,主表table1 left join 附表table2 on table1.id = table2.t1_id where table1.id='12580'。table1中id市主键,二附表中多条记录的t1_id='12580',这个时候返回了多条记录。SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;...原创 2019-11-06 16:14:42 · 749 阅读 · 0 评论 -
Second Highest Salary(选择第二高的工资)
要求:For example, given the above Employee table, the query should return 200 as the second highest salary. If there is no second highest salary, then the query should return null.Create table I原创 2018-03-09 14:40:13 · 985 阅读 · 0 评论 -
MySQL的if,case语句使用总结
Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:IF表达式IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。select *,if(sva=1,"转载 2018-03-09 14:33:44 · 189 阅读 · 0 评论 -
mysql 中 isnull 和 ifnull 判断字段是否为null
数据库中经常有字段type为null ,对于统计count(type)和avg(type) 都不起作用SQL中有ISNULL方法,介绍如下:ISNULL使用指定的替换值替换 NULL。语法ISNULL ( check_expression , replacement_value )参数check_expression将被检查是否为 N转载 2018-03-09 14:32:33 · 8254 阅读 · 0 评论 -
Mysql中分页查询两个方法比较
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下123SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM foo WHERE b = 1 LIMIT 100,10;转载 2017-12-13 10:10:52 · 563 阅读 · 0 评论 -
hibernate保存数据到mysql时的中文乱码问题!
因为hibernate底层使用的是jdbc的技术,所以我参考了别人使用jdbc保存数据到mysql里面时解决乱码问题的方法!首先要告诉数据库要插入的字符串的字符集,mysql 默认使用的字符集是 latin1。我要保存的字符串是 UTF-8 编码的(字符集是 Unicode),所以包含这个字段的表应该使用 UTF-8 编码。这里有几种解决办法。1、在建立数据库的时候指定数据库的字符集编转载 2017-10-13 11:00:04 · 360 阅读 · 0 评论 -
修改MySQL的默认密码的四种小方法
对于windows平台来说安装完MySQL后,系统就已经默认生成了许可表和账户,下文中就教给大家如何修改MySQ的默认密码。对于windows平台来说安装完MySQL数据库后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_install_db脚本来生成帐户和相应权限许可表。但是如果不是用MSI格式来安装MySQL的话,就需要在安装完以后,转载 2017-10-13 09:19:10 · 303 阅读 · 0 评论 -
mysql服务启动不了解决方案
最近在Windows 2003上的MySQL出现过多次正常运行时无法连接数据库故障,现象是无法连接数据库,也无法停止MySQL或重启MYSQL,由于每次都是草草尝试各种方法搞定即可本文将详细介绍解决方法最近在Windows 2003上的MySQL出现过多次正常运行时无法连接数据库故障,现象是无法连接数据库,也无法停止MySQL或重启MYSQL,重启机子也没有效果,由于每次都是草转载 2017-10-13 09:18:43 · 3344 阅读 · 0 评论 -
在mysql中给查询的结果添加序号列
一.解决方案:1.法一:select (@i:=@i+1) i,a.url from base_api_resources a ,(select @i:=0) t2 order by a.id desc limit 10;2.法二:set @rownum=0;select @rownum:=@rownum+1 as rownum, a.url fr转载 2018-03-10 10:38:23 · 591 阅读 · 0 评论 -
Rank Scores(分数排序)
问题:Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer原创 2018-03-10 10:47:43 · 3417 阅读 · 0 评论 -
Sql分组查询指定行数数据
The Employee table holds all employees. Every employee has an Id, and there is also a column for the department Id.+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-...原创 2018-05-31 15:21:30 · 1789 阅读 · 0 评论 -
MYSQL之You can't specify target table for update in FROM clause解决办法(在Delete子句中嵌套Select语句)
You can't specify target table for update in FROM clause含义:不能在同一表中查询的数据作为同一表的更新数据。所有我们要在Select子句上在嵌套一层临时表如:Delete from 表明 where 参数 in (select a.* from (真实的Select子句) a)...原创 2018-05-31 16:12:48 · 804 阅读 · 0 评论 -
Sql删除表中相同数据
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.+----+------------------+| Id | Email |+----+---------...原创 2018-05-31 16:29:15 · 443 阅读 · 0 评论 -
【Mysql】的float类型
对于单精度浮点数Float: 当数据范围在±131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定(如131070.22结果为131070;13107.22结果为13107.2;13107777.22结果为13107000),没有发现有相关的参数设置。建议:将float改成double或者decimal,两者的差别是double是浮点计算,decim...原创 2018-09-21 08:59:56 · 2172 阅读 · 0 评论 -
【LeetCode】601. Human Traffic of Stadium
题目:https://leetcode.com/problems/human-traffic-of-stadium/description/解决方案:通过三表的混合的笛卡尔积,然后我们枚举出所有可能的情况,在第一个数,在第二个数,在第三个数,然后去重,排序即可select distinct t1.*from stadium t1, stadium t2, stadium t3wh...原创 2018-10-08 11:39:28 · 502 阅读 · 0 评论 -
MySql多列索引
多列索引多列索引就是将多个列作为一个索引,在一个多列B-Tree索引中,索引列的顺序意味着索引首先按照最左列进行排序,然后第二列第三列等等。所以可以按照升序或者降序进行扫描,以满足精确符合列顺序的ORDER BY,GROUP BY和DISTINCT等子句,所以,多列索引的顺序至关重要,key(列1,列2)和key(列2,列1)这两个多列索引很可能有巨大的性能差距。设计索引的时候是多个单列...原创 2019-05-11 20:04:16 · 2191 阅读 · 0 评论 -
MySql之行级锁
mysql锁机制之行级锁:锁实在执行多线程时用于强行限定资源访问的同步机制,数据库锁根据锁的粒度可分为行级锁,表级锁和页级锁。行级锁行级锁是mysql中粒度最细的一种锁机制,表示只对当前所操作的行记性加锁,行级锁发生冲突的概率低,其粒度最小,但是加锁的代价最大。行级锁分为共享锁和排他锁。特点开销大,加锁慢,会出现死锁;锁定粒度最小,发生锁冲突的概率最大,并发性也高;实现原理InnoD...原创 2019-05-11 20:05:00 · 400 阅读 · 0 评论 -
MySQL创建用户与授权方法
MySQL中创建用户与授权的实现方法,对于刚开始接触mysql的朋友可以参考下注:我的运行环境是widnows xp professional + MySQL5.0 一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, hos转载 2017-10-13 09:18:12 · 259 阅读 · 0 评论 -
MYSQL 数据库导入导出命令
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。MySQL命令行导出数据库1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin转载 2017-10-12 22:10:34 · 234 阅读 · 0 评论 -
MySQL查询指定时间的数据
user_event :用户事件表create_time :表中存储时间的字段#获取当月数据SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')#获取3月份数据SELECT * FROM user_event WHERE DATE_FORM转载 2017-10-12 15:46:02 · 616 阅读 · 0 评论 -
java.util.Date和java.sql.Date的区别和相互转化
Java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。 java.util.Date 是 java.sql.Date 的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedSt转载 2017-04-22 14:32:48 · 2828 阅读 · 0 评论 -
mysql的时间和日期类型
一、MySQL的五种时间和日期类型1、YEAR表示年份:字节数为1,取值范围为“1901——2155”2、DATE表示日期:字节数为4,取值范围为“1000-01-01——9999-12-31”3、TIME表示时间:字节数为3,取值范围为“-838:59:59——838:59:59”DATETIME和TIMESTAMP表示日期和时间4、DATETIME:字节数为8,取值范围为“原创 2017-05-14 16:29:59 · 3836 阅读 · 0 评论 -
insert into table 插入多条数据
insert into table 插入多条数据方法1:insert into `ttt`select '001','语文' union allselect '002','数学' union allselect '003','英语';方法2:INSERT INTO tab_comp VALUES(item1, price1, qty1),(ite原创 2017-05-10 11:42:32 · 6577 阅读 · 0 评论 -
01数据库概叙
1.1 引入数据保存到内存:优点:1)读写非常快缺点:1)程序关闭导致数据丢失 数据保存到文件:优点:1)数据可以永久保存缺点:1)频繁地IO操作,效率不高!2)数据管理不方便。例如查询某个数据需要全部读取出来,再匹配。 数据保存到数据库软件:优点:1)数据永久保存下来2)数据管理非常方便。(例如查询非常快速和方便)原创 2017-03-29 21:15:18 · 2730 阅读 · 0 评论 -
02数据库管理
数据库管理4.1 查询所有数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | -- mysql元数据,基础数据| mysql | --mys原创 2017-05-20 11:33:10 · 2786 阅读 · 0 评论 -
03表管理
5.0选择数据库 Use day15;5.1 查看所有表mysql> show tables;+-----------------+| Tables_in_day15 |+-----------------+| student |+-----------------+1 row in set (0.00 sec)原创 2017-03-29 21:32:21 · 2708 阅读 · 0 评论 -
04增删改数据
增删改数据-- ********一、增删改数据********* ----- 1.1 增加数据-- 插入所有字段。一定依次按顺序插入INSERT INTO student VALUES(1,'张三','男',20);-- 注意不能少或多字段值-- INSERT INTO student VALUES(2,'李四','女');-- 插入部分字段IN原创 2017-05-20 11:34:12 · 3344 阅读 · 0 评论 -
05查询数据
查询数据7.1 查询所有列-- 2.1 查询所有列SELECT * FROM student; 7.2 查询指定列-- 2.2 查询指定列SELECT id,NAME,gender FROM student; 7.3 查询时添加常量列-- 2.4 查询时添加常量列-- 需求:原创 2017-05-20 11:35:05 · 2962 阅读 · 0 评论 -
06数据约束
数据约束2.1什么数据约束对用户操作表的数据进行约束2.2 默认值作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值。注意: 1)对默认值字段插入null是可以的。2)对默认值字段可以插入非null-- 1.1 默认值CREATE TABLE student(id INT,NAME VARCHAR(20),address V原创 2017-05-20 11:36:33 · 3420 阅读 · 0 评论 -
07数据库设计
数据库设计3.1 引入 需求分析 - 需求分析师 -》 原始需求- > 抽取业务模型图书模型:图书名称,版本号,作者学生模型: 学号,学生姓名 手机号码......角色:学生 老师,图书管理员《需求说明书》 需求设计 - 概要设计: 抽取实体:业务模型 -> 实体模型(java 类 c++类)内存class Book{ name, bookNo,aut原创 2017-05-20 11:37:46 · 2786 阅读 · 0 评论 -
08关联查询(多表查询)
关联查询(多表查询)-- **************二、关联查询(多表查询)****************------ 需求:查询员工及其所在部门(显示员工姓名,部门名称)-- 2.1 交叉连接查询(不推荐。产生笛卡尔乘积现象:4 * 4=16,有些是重复记录)SELECT empName,deptName FROM employee,dept; --原创 2017-05-20 11:38:34 · 4021 阅读 · 0 评论 -
09存储过程
存储过程5.1 什么是存储过程 存储过程,带有逻辑的sql语句之前的sql没有条件判断,没有循环存储过程带上流程控制语句(if while)5.2 存储过程特点1)执行效率非常快!存储过程是在数据库的服务器端执行的!!!2)移植性很差!不同数据库的存储过程是不能移植。5.3 存储过程语法-- 创建存储过程DELIMITER $原创 2017-05-20 11:39:43 · 2815 阅读 · 0 评论 -
10触发器
触发器6.1 触发器作用当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成!! 例如: 当向员工表插入一条记录时,希望同时往日志表插入数据-- 需求: 当向员工表插入一条记录时,希望mysql自动同时往日志表插入数据-- 创建触发器(添加)CREATE TRIGGER tri_empAdd AFTER INSERT ON employe原创 2017-05-20 11:40:15 · 2851 阅读 · 0 评论 -
11mysql权限问题
mysql权限问题-- ***********五、mysql权限问题**************** -- mysql数据库权限问题:root :拥有所有权限(可以干任何事情) -- 权限账户,只拥有部分权限(CURD)例如,只能操作某个数据库的某张表 -- 如何修改mysql的用户密码? -- password: md5加密函数(单向加密) SELECT原创 2017-05-20 11:40:46 · 3539 阅读 · 0 评论 -
脏读、不可重复读、幻读
锁就是防止其他事务访问指定的资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。 一般来说,锁可以防止脏读、不可重复读和幻觉读。 事务并发产生的问题: 脏读:一个事务读取到了另外一个事务没有提交的数据 事务1:更新一条数据转载 2017-09-21 16:31:40 · 360 阅读 · 0 评论 -
MySQL日期时间函数大全
DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 mysql> select WEEKDAY('1997-10-04转载 2017-10-09 13:24:43 · 285 阅读 · 0 评论 -
mysql 时间类型查询条件写法
昨天在写一个sql查询3个月前的历史数据时,直接在时间字段上用“今天再次做了验证,发现如下:表结构root@test 02:38:59>show create table xc\G*************************** 1. row *************************** Table: xcCreate Table: CR转载 2017-10-12 15:43:04 · 24440 阅读 · 0 评论 -
关于Oracle与MySQL官方jdbc的一些区别
Jdbc驱动:1、Mysql:驱动下载地址:http://dev.mysql.com/downloads/connector/j/驱动类型:TYPE4最新版都声称支持JDBC4.0 标准驱动注册名称:com.mysql.jdbc.Driver用于主从读写分离驱动注册名称:com.mysql.jdbc.ReplicationDriver2、Oracle:驱原创 2017-04-15 16:09:52 · 3355 阅读 · 0 评论