SQL
文章平均质量分 70
zhangy-study
学习是一辈子的事
展开
-
SQL学习笔记整理18(批量插入数据,存储过程)
SHOW VARIABLES LIKE '%slow_query_log%';#开启慢sql查询日志,只对当前数据库有效SET GLOBAL slow_query_log = 0;SHOW VARIABLES LIKE '%long_query_time%';#设置慢sql的阈值时间SET GLOBAL long_query_time =3;CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno ...原创 2022-02-26 03:18:49 · 328 阅读 · 0 评论 -
SQL学习笔记整理18(索引优化案例)
USE mysqldb;#1.索引单表优化案例CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, author_id INT(10) UNSIGNED NOT NULL, category_id INT(10) UNSIGNED NOT NULL, views INT(10) UNSIGNED NOT NULL, comments...原创 2022-02-26 03:16:31 · 183 阅读 · 0 评论 -
SQL学习笔记整理17(七种join)
CREATE DATABASE mysqldb;USE mysqldb;CREATE TABLE tab_dept( id INT(11) PRIMARY KEY AUTO_INCREMENT, deptName VARCHAR(30) DEFAULT NULL, locAdd VARCHAR(40) DEFAULT NULL)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE tab_emp(...原创 2022-02-26 03:16:47 · 261 阅读 · 0 评论 -
SQL学习笔记整理16(流程控制结构)
`account``customers`#流程控制结构/*顺序结构分支结构循环结构*/#一、分支结构#1.if函数/*if(表达式1,表达式2,表达式3): 如果表达式1成立,返回表达式2,;不成立,返回表达式3*/#2.case函数/*情况1:一般用于等值判断语法: case 变量|表达式|字段 when 要判断的值1 then 返回的值1或 语句1; when 要判断的值2 then 返回的值2或 语句2; ...原创 2022-02-26 03:11:37 · 114 阅读 · 0 评论 -
SQL学习笔记整理15(存储过程)
#存储过程和函数:类似于Java中的方法/*存储过程:一组预先编译好的sql语句的集合,理解成批处理语句*/#一、创建用法/*create procedure 存储过程名(参数列表)begin存储过程体end注意:1.参数列表包括三部分:参数模式 参数名 参数类型 举例:in stuname varchar(20) 参数模式: IN:该参数可以作为输入,即该存储过程需要调用方传入参数值 OUT:该参数可以...原创 2022-02-26 03:08:14 · 166 阅读 · 0 评论 -
SQL学习笔记整理14(函数)
#函数/*与存储过程的区别存储过程:可以有0个或多个返回,适合做批量插入、批量删除函数:有且只能有1个返回#创建语法:create function 函数名(参数列表) returns 返回类型begin函数体end参数列表:参数名 参数类型#调用语法:select 函数名(实参列表)*/#1.无参数有返回#案例1:返回公司的员工个数DELIMITER $CREATE FUNCTION f1() RETURNS INTBEGIN DECLARE c IN...原创 2022-02-26 03:04:38 · 185 阅读 · 0 评论 -
SQL学习笔记整理13(变量)
#变量/*系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量*/#一、系统变量SHOW GLOBAL VARIABLES;#全局SHOW SESSION VARIABLES;#会话#查询某个系统变量的值SELECT @@global.auto_increment_increment;#为系统变量赋值/*方式一:set global|【session】 变量名=方式二:set @@global|【session】.变量名=*//*...原创 2022-02-26 03:02:13 · 128 阅读 · 0 评论 -
SQL学习笔记整理12(视图)
#视图/*含义:虚拟表,和普通表一样使用。只保存了sql逻辑,不保存原表数据好处: 重用sql;视图和原来的表相分离,提高安全性*/USE students;SELECT * FROM stuinfo;#案例:查询姓张的学生名和专业名SELECT stuName,majorName FROM stuinfo s JOIN major m ON s.`majorId`=m.`id` WHERE s.`stuName` LIKE '张%';#用视图CREATE VIEW v1 AS...原创 2022-02-26 02:58:58 · 147 阅读 · 0 评论 -
SQL学习笔记整理11(事务)
#TCL/*transaction control language:事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。比如:张三丰:1000元 郭襄:1000元 张三丰转账给郭襄500元。那么,郭襄账户多500元和张三丰账户少500元应当看做一个事务。 事务具有的属性(ACID):1.原子性:事务是不可再分的工作单位。要么都发生,要么都不发生。2.一致性:事务会使数据从一个一致性状态转换到另一个一致性状态。...原创 2022-02-26 02:55:59 · 69 阅读 · 0 评论 -
SQL学习笔记整理10(标识列)
#标识列/*又称为自增长序列含义:可以不用手动的插入值,系统提供的默认值特点:1.标识列必须与主键搭配吗? 不一定,但要求必须是一个key。2.一个表可以有多个标识列吗? 不可以,至多一个。3.标识列的类型只能是数值型。4.标识列可以通过SET auto_increment_increment =3;来设置步长#auto_increment_increment:步长#auto_increment_offset:起始值*/USE students;#创建表时设置标识列CREATE原创 2022-02-26 02:51:01 · 424 阅读 · 0 评论 -
SQL学习笔记整理9(DDL)
#DDL/*数据定义语言库和表的管理库的管理: 创建、修改、删除表的管理: 创建、修改、删除 创建:create 修改:alter 删除:drop*/#一、库的管理#库的创建CREATE DATABASE IF NOT EXISTS books;#库的修改RENAME DATABASE books TO 新库名;#更改库的字符集ALTER DATABASE books CHARACTER SET gbk;#库的删除D...原创 2022-02-26 02:47:23 · 157 阅读 · 0 评论 -
SQL学习笔记整理8(DML)
#DML:数据操纵语言/* 插入:insert 修改:update 删除:delete*/#一、插入语句/*方式一: 语法: insert into 表名(列1...) values(值1...) 注意: 可为空的列表数值可以不插入数据,但必须保持列和数值数目相同且一一对应; 可以省略列名,默认为所有列 */USE girls;SELECT * FROM beauty;#表be...原创 2022-02-26 02:39:43 · 125 阅读 · 0 评论 -
SQL学习笔记整理7(子查询)
#子查询/*出现在其他语句里的select语句,称为子查询或内查询外部的查询语句成为外查询或内查询分类:按查子查询出现的位置 select后面 标量子查询 from后面 表子查询 where或having 后面 标量子查询 行子查询 列子查询...原创 2022-02-26 02:36:28 · 314 阅读 · 0 评论 -
SQL学习笔记整理6(常见函数)
#常见函数#单行函数:concat,length,ifnull#一、字符函数#看字符集SHOW VARIABLES LIKE '%char%';USE myemployees;#1.concat:拼接字符SELECT CONCAT(last_name,'_',first_name) FROM employees;#2.upper,lower:大小写SELECT UPPER('join');SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name)原创 2022-02-26 02:33:26 · 327 阅读 · 0 评论 -
SQL学习笔记整理5(多表查询sql99 join on)
#sql99语法/*语法: select 查询列表 from 表1 别名1 【连接类型】 join 表2 别名2 on 连接条件 【where 筛选条件】 【group by 分组列表】 【having 筛选条件】 【order by 排序列表】 分类 内连接(*):【inner】:求两表中的相匹配的记录(交集) 外连接 左外(*):left 【outer】 ...原创 2022-02-26 02:28:37 · 145 阅读 · 0 评论 -
SQL学习笔记整理4(连接查询sql192标准)
#进阶六:连接查询/* 多表查询 按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接 左连接 右连接 全外连接 交叉连接 */USE girls;SELECT * FROM admin;SELECT * FROM beauty;SELECT * FROM boys;SELECT NAME,boyName FROM beauty,boys WHERE boyfriend...原创 2022-02-26 02:20:38 · 105 阅读 · 0 评论 -
SQL学习笔记整理3(分组函数)
#分组函数/*分类:sum、avg、max、min、count(计算的是不为null的个数)以上分组函数都忽略null值*/USE myemployees;SELECT SUM(salary),AVG(salary),MAX(salary),MIN(salary),COUNT(salary) FROM employees;#和distinct结合SELECT SUM(DISTINCT department_id),SUM(department_id) FROM employees;SE原创 2022-02-26 02:17:26 · 212 阅读 · 0 评论 -
SQL学习笔记整理2(排序)
use myemployees;#排序查询(一般放在最后,只有limt在order by后面#desc:降序,asc:升序(不写默认)SELECT * FROM employees ORDER BY salary DESC;SELECT * FROM employees ORDER BY salary ASC;SELECT * FROM employees WHERE department_id>=90 ORDER BY hiredate;#按表达式排序(按年薪升序)SELECT.原创 2022-02-26 02:10:21 · 182 阅读 · 0 评论 -
SQL学习笔记整理1
/*f12:格式化*/#进入想要进的库USE myemployees;#显示表的结构DESC departments;#起别名#方式一SELECT `first_name` AS 姓,`last_name` AS 名 FROM employees;#方式二SELECT first_name 姓,last_name 名 FROM employees;#注意:如果别名里面有特殊符号比如:空格或#,别名有双引号#去重SELECT DISTINCT `job_id` FROM e原创 2022-02-26 02:06:51 · 70 阅读 · 0 评论