
mysql
文章平均质量分 72
似水流年_____
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
InnoDB引擎的数据库状态查看(分析行锁)
通过检查InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况show status like 'innodb_row_lock%';对于各个状态说明如下:Innodb_row_lock_current_waits:当前正在等待锁的数量;Innodb_row_lock_time:从系统启动到现在锁定总时间长度;Innodb_row_lock_time_avg:每次等待所花平均时间;In...原创 2018-07-06 17:22:11 · 8613 阅读 · 1 评论 -
事务
#TCL/*Transaction Control Language 事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。案例:转账张三丰 1000郭襄 1000update 表 set 张三丰的余额=500 where name='张三丰'意外update 表 set 郭襄的余额=1500 where name='郭襄'事务的特性:ACID原子性:...原创 2018-06-19 18:56:22 · 277 阅读 · 0 评论 -
常见约束
#常见约束/*含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 DEFAULT:默认,用于保证该字段有默认值 比如性别 PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空 比如学号、员工编号等 UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空 比如座位号 CHECK:...原创 2018-06-19 18:56:10 · 685 阅读 · 0 评论 -
标识列
#标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值特点:1、标识列必须和主键搭配吗?不一定,但要求是一个key2、一个表可以有几个标识列?至多一个!3、标识列的类型只能是数值型4、标识列可以通过 SET auto_increment_increment=3;设置步长可以通过 手动插入值,设置起始值*/#一、创建表时设置标识列DROP TABLE IF EXISTS tab_...原创 2018-06-19 18:55:59 · 1771 阅读 · 0 评论 -
【作业讲解】查询
#一、查询每个专业的学生人数SELECT majorid,COUNT(*)FROM studentGROUP BY majorid;#二、查询参加考试的学生中,每个学生的平均分、最高分SELECT AVG(score),MAX(score),studentnoFROM resultGROUP BY studentno;#三、查询姓张的每个学生的最低分大于60的学号、姓名SELECT s.stude...原创 2018-06-19 18:55:48 · 1745 阅读 · 0 评论 -
【案例讲解】数据的增删改
#1. 运行以下脚本创建表my_employeesUSE myemployees;CREATE TABLE my_employees( Id INT(10), First_name VARCHAR(10), Last_name VARCHAR(10), Userid VARCHAR(10), Salary DOUBLE(10,2));CREATE TABLE users( id INT, user...原创 2018-06-19 18:55:03 · 697 阅读 · 0 评论 -
【案例讲解】库和表的管理
#1. 创建表dept1NAME NULL? TYPEid INT(7)NAME VARCHAR(25)USE test;CREATE TABLE dept1( id INT(7), NAME VARCHAR(25) );#2. 将表departments中的数据插入新表dept2中CREATE TABLE dept2SELECT department_id,department_nameFR...原创 2018-06-19 18:54:54 · 827 阅读 · 0 评论 -
子查询经典案例
# 1. 查询工资最低的员工信息: last_name, salary#①查询最低的工资SELECT MIN(salary)FROM employees#②查询last_name,salary,要求salary=①SELECT last_name,salaryFROM employeesWHERE salary=( SELECT MIN(salary) FROM employees);# 2. 查...原创 2018-06-19 18:54:43 · 1170 阅读 · 0 评论 -
数据类型
#常见的数据类型/*数值型: 整型 小数: 定点数 浮点数字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)日期型: */#一、整型/*分类:tinyint、smallint、mediumint、int/integer、bigint1 2 3 4 8特点:① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigne...原创 2018-06-19 18:53:49 · 204 阅读 · 0 评论 -
数据的增删改
#DML语言/*数据操作语言:插入:insert修改:update删除:delete*/#一、插入语句#方式一:经典的插入/*语法:insert into 表名(列名,...) values(值1,...);*/SELECT * FROM beauty;#1.插入的值的类型要与列的类型一致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,...原创 2018-06-19 18:53:34 · 237 阅读 · 0 评论 -
联合查询(union)
#进阶9:联合查询/*union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:★1、要求多条查询语句的查询列数是一致的!2、要求多条查询语句的查询的每一列的类型和顺序最好一致3、union关键字默认去重,如果使用union all 可以包含重复项*/#引入的...原创 2018-06-19 18:53:23 · 17007 阅读 · 0 评论 -
视图
#视图/*含义:虚拟表,和普通表一样使用mysql5.1版本出现的新特性,是通过表动态生成的数据比如:舞蹈班和普通班级的对比 创建语法的关键字 是否实际占用物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 create table 保存了数据 增删改查*/#案例:查询姓张的学生名和专业名SELECT stuname,majornameFROM ...原创 2018-06-19 18:56:34 · 298 阅读 · 0 评论 -
【案例讲解】视图
#一、创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱CREATE OR REPLACE VIEW emp_v1ASSELECT last_name,salary,emailFROM employeesWHERE phone_number LIKE '011%';#二、创建视图emp_v2,要求查询部门的最高工资高于12000的部门信息CREATE OR REPLACE...原创 2018-06-19 18:56:44 · 1350 阅读 · 0 评论 -
Show Profile
1.Show Profile默认是关闭的,试用前需要开启:查看是否开启:Show variables like 'profiling';设置开启:set profiling = on;2.使用:show profile cpu,block io for query 150;3.show profile 的参数:type是可选的,取值范围可以如下:ALL 显示所有性能信息BLOCK IO 显示块IO...原创 2018-06-20 17:00:55 · 2138 阅读 · 0 评论 -
sql慢日志
1.查看慢日志是否开启(默认关闭的):show VARIABLES like '%slow_query_log%';2.如何开启呢?set global slow_query_log = 1;此命令只对当前数据库有效,如果mysql重启后,则会失效,如果要想一直有效,则要配置my.cnf文件,配置如下:修改my.cnf文件,[mysqld]下增加或修改参数slow_query_log和slow_q...原创 2018-06-20 15:49:07 · 1597 阅读 · 0 评论 -
哪些情况下需要创建索引?哪些情况下不要创建索引?
1.主键自动建立唯一索引;2.频繁作为查询条件的字段应该创建索引;3.查询中与其他表有关联的字段,例如外键关系;4.频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件;5.where条件里用不到的字段,不创建索引;6.高并发的情况下一般选择复合索引;7.查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找);8.查询中统计或者分组的字段;9.表记...原创 2018-06-19 20:07:59 · 25964 阅读 · 6 评论 -
【案例讲解】存储过程
#一、创建存储过程实现传入用户名和密码,插入到admin表中CREATE PROCEDURE test_pro1(IN username VARCHAR(20),IN loginPwd VARCHAR(20))BEGIN INSERT INTO admin(admin.username,PASSWORD) VALUES(username,loginpwd);END $#二、创建存储过程实现传入女神...原创 2018-06-19 18:58:10 · 3486 阅读 · 0 评论 -
存储过程
#存储过程和函数/*存储过程和函数:类似于java中的方法好处:1、提高代码的重用性2、简化操作*/#存储过程/*含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率*/#一、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END#注意:...原创 2018-06-19 18:57:56 · 332 阅读 · 0 评论 -
函数
#函数/*含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率区别:存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新函数:有且仅有1 个返回,适合做处理数据后返回一个结果*/#一、创建语法CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数...原创 2018-06-19 18:57:46 · 405 阅读 · 0 评论 -
流程控制经典案例讲解
/*一、已知表stringcontent其中字段:id 自增长content varchar(20)向该表插入指定个数的,随机的字符串*/DROP TABLE IF EXISTS stringcontent;CREATE TABLE stringcontent( id INT PRIMARY KEY AUTO_INCREMENT, content VARCHAR(20) );DELIMITER $...原创 2018-06-19 18:57:37 · 1302 阅读 · 0 评论 -
流程控制结构
#流程控制结构/*顺序、分支、循环*/#一、分支结构#1.if函数/*语法:if(条件,值1,值2)功能:实现双分支应用在begin end中或外面*/#2.case结构/*语法:情况1:类似于switchcase 变量或表达式when 值1 then 语句1;when 值2 then 语句2;...else 语句n;end 情况2:case when 条件1 then 语句1;when 条件2 ...原创 2018-06-19 18:57:26 · 330 阅读 · 0 评论 -
变量
#变量/*系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量*/#一、系统变量/*说明:变量由系统定义,不是用户定义,属于服务器层面注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别使用步骤:1、查看所有系统变量show global|【session】variables;2、查看满足条件的部分系统变量show global|【ses...原创 2018-06-19 18:57:08 · 156 阅读 · 0 评论 -
【案例讲解】常见约束
#1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id);#2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)...原创 2018-06-19 18:56:56 · 1672 阅读 · 1 评论 -
库和表的管理
#DDL/*数据定义语言库和表的管理一、库的管理创建、修改、删除二、表的管理创建、修改、删除创建: create修改: alter删除: drop*/#一、库的管理#1、库的创建/*语法:create database [if not exists]库名;*/#案例:创建库BooksCREATE DATABASE IF NOT EXISTS books ;#2、库的修改RENAME DATABA...原创 2018-06-19 18:53:12 · 386 阅读 · 0 评论 -
【案例讲解】外连接
#一、查询编号>3的女神的男朋友信息,如果有则列出详细,如果没有,用null填充SELECT b.id,b.name,bo.*FROM beauty bLEFT OUTER JOIN boys boON b.`boyfriend_id` = bo.`id`WHERE b.`id`>3;#二、查询哪个城市没有部门SELECT cityFROM departments dRIGHT OUT...原创 2018-06-19 18:52:41 · 1198 阅读 · 0 评论 -
【作业讲解】连接查询
#1.显示所有员工的姓名,部门号和部门名称。USE myemployees;SELECT last_name,d.department_id,department_nameFROM employees e,departments dWHERE e.`department_id` = d.`department_id`;#2.查询90号部门员工的job_id和90号部门的location_idSEL...原创 2018-06-19 18:52:31 · 4037 阅读 · 0 评论 -
常见函数
#进阶4:常见函数/*概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:1、隐藏了实现细节 2、提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点: ①叫什么(函数名) ②干什么(函数功能)分类: 1、单行函数 如 concat、length、ifnull等 2、分组函数 功能:做统计使用,又称为统计函数、聚合函数、组函数 常见函数: 一...原创 2018-06-19 18:48:47 · 356 阅读 · 0 评论 -
条件查询
#进阶2:条件查询/*语法: select 查询列表 from 表名 where 筛选条件;分类: 一、按条件表达式筛选 简单条件运算符:> < = != <> >= <= 二、按逻辑表达式筛选 逻辑运算符: 作用:用于连接条件表达式 && || ! and or not &&和and:两个条件都为true,结...原创 2018-06-18 22:24:28 · 418 阅读 · 0 评论 -
案例讲解--基础查询
#1. 下面的语句是否可以执行成功 SELECT last_name , job_id , salary AS salFROM employees; #2.下面的语句是否可以执行成功 SELECT * FROM employees; #3.找出下面语句中的错误 SELECT employee_id , last_name,salary * 12 AS "ANNUAL SALARY"FRO...原创 2018-06-18 21:48:43 · 418 阅读 · 0 评论 -
sql基础查询
#进阶1:基础查询/*语法:select 查询列表 from 表名;类似于:System.out.println(打印东西);特点:1、查询列表可以是:表中的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格*/USE myemployees;#1.查询表中的单个字段SELECT last_name FROM employees;#2.查询表中的多个字段SELECT last_name,sa...原创 2018-06-18 21:46:30 · 362 阅读 · 0 评论 -
sql常见命令
C:\Windows\system32>net stop mysqlMySQL 服务正在停止.MySQL 服务已成功停止。C:\Windows\system32>net start mysqlMySQL服务正在启动 .MySQL服务已经启动成功。C:\Windows\system32>mysql -h localhost -P 3306 -u root -pEnter passw...原创 2018-06-18 21:42:36 · 265 阅读 · 0 评论 -
查看mysql的数据库引擎
1.查看mysql提供哪些引擎: show engines;2.查看mysql当前支持哪些引擎: show variables like '%storage_engine%';原创 2018-06-17 14:19:12 · 1241 阅读 · 0 评论 -
mysql两种常用引擎比较
翻译 2018-06-17 14:05:57 · 2006 阅读 · 0 评论 -
mysql数据库的逻辑架构
翻译 2018-06-17 13:50:38 · 288 阅读 · 0 评论 -
sql的几种连接查询
原创 2018-06-17 12:56:59 · 1091 阅读 · 1 评论 -
数据库引擎加载sql顺序
原创 2018-06-17 12:52:41 · 259 阅读 · 0 评论 -
分组函数
#二、分组函数/*功能:用作统计使用,又称为聚合函数或统计函数或组函数分类:sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数特点:1、sum、avg一般用于处理数值型 max、min、count可以处理任何类型2、以上分组函数都忽略null值3、可以和distinct搭配实现去重的运算4、count函数的单独介绍一般使用count(*)用作统计行数5、和分...原创 2018-06-19 18:49:36 · 818 阅读 · 1 评论 -
排序查询
#进阶3:排序查询/*语法:select 查询列表from 表名【where 筛选条件】order by 排序的字段或表达式;特点:1、asc代表的是升序,可以省略desc代表的是降序2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段3、order by子句在查询语句的最后面,除了limit子句*/#1、按单个字段排序SELECT * FROM employees ORDE...原创 2018-06-19 18:50:03 · 237 阅读 · 0 评论 -
【案例讲解】子查询
#1. 查询和Zlotkey相同部门的员工姓名和工资#①查询Zlotkey的部门SELECT department_idFROM employeesWHERE last_name = 'Zlotkey'#②查询部门号=①的姓名和工资SELECT last_name,salaryFROM employeesWHERE department_id = ( SELECT department_id FR...原创 2018-06-19 18:52:21 · 1605 阅读 · 0 评论 -
sql99语法的连接查询
#二、sql99语法/*语法: select 查询列表 from 表1 别名 【连接类型】 join 表2 别名 on 连接条件 【where 筛选条件】 【group by 分组】 【having 筛选条件】 【order by 排序列表】 分类:内连接(★):inner外连接 左外(★):left 【outer】 右外(★):right 【outer】 全外:full【outer】交叉连接:...原创 2018-06-19 18:52:08 · 1084 阅读 · 1 评论