2 mysql
文章平均质量分 72
自学
qq_44647559
这个作者很懒,什么都没留下…
展开
-
3 DDL语言 常见约束的介绍
常见的约束/*含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类【六大约束】:(1)not null:非空,用于保证该字段的值不能为空。 比如姓名、学号等(2)default :默认,用于保证该字段有默认值。 比如性别,默认为男(3)primary key:主键,用于保证该字段的值具有唯一性,并且非空。比如学号(员工编号)则在表中不重复,若有2个主键则组合起来不重复。(4)unique:唯一,用于保证该字段的值具有唯一性,可以为空。原创 2021-05-24 09:17:11 · 146 阅读 · 0 评论 -
2 DDL语言 数据类型的介绍
常见的数据类型/*(1)类型数值型:整型小数:定点数,浮点数字符型:较短的文本:char,varchar较长的文本:text,blob(较长的二进制数据,比如:图片)日期型:date/datetime/timestamp(2)原则所选择的类型越简单越好,能保存数值的类型越小越好*/------------------(1)数值型------------------------------------一 整型/*分类:tinyint smallint mediumint原创 2021-05-24 09:16:41 · 199 阅读 · 0 评论 -
1-1 DDL语言 关于库和表的管理 --- 测试题
(1)创建表dept1/*name null? typeid int(7)name varchar(25)*/CREATE DATABASE IF NOT EXISTS my_test;USE my_test;CREATE TABLE dept1(id INT(7),NAME VARCHAR(25));(2)将表departments中的数据插入新表dept2中【departments表在myemployees库中】【dept2表在my_test库中】复制表CREATE T原创 2021-05-24 09:15:57 · 189 阅读 · 0 评论 -
1 DDL语言 关于库和表的管理
DDL/*库和表的管理一 库的管理创建,修改,删除二 表的管理创建,修改,删除(1)创建:create insert(数据创建)(2)修改:alter update(数据修改)(3)删除:drop delete(数据删除)注意:只有当创建/删除(库/表),才能加上容错性处理*/------------------------(一)库的管理----------------------------------------/*原创 2021-05-24 09:15:37 · 71 阅读 · 0 评论 -
2 DML插入(insert)修改(update)删除(delete)-----测试题
DML:增删改查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,userid VARCHAR(10),department_id INT);2.显示表my原创 2021-05-19 10:31:09 · 103 阅读 · 0 评论 -
1 DML语言之插入(insert)修改(update)删除(delete)
DML语言/*数据操作语言插入:insert修改:update删除:delete*/------------------------------------------一、插入语句--------------------------------------------------------------------------------------一、插入语句/*方式一:经典的插入insert into 表名(列名,…) values(值1,…)方式二:插入insert into原创 2021-05-19 10:30:36 · 106 阅读 · 0 评论 -
进阶9 联合查询
进阶9 联合查询/*union 联合,合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union…特点:(1)要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时(2)要求多条查询语句的查询列数是一致的(3)要求多条查询语句的查询的每一列的类型和顺序最好一致(4)union,自动去重(5)union all,不去重注意:(1)表连接是增加不同字段。 【多个表,有直接的连接关系】(2)联合是增加同字段多行数据。【多个表,没原创 2021-05-17 15:51:51 · 73 阅读 · 0 评论 -
进阶8-2 分页查询-----测试题
本节是测试题,不涉及真表,故不运行已知表1 stuinfoid 学号stu_name 姓名email 邮箱 # john@126.comgradeId 年级编号sex 性别 # 男 女age 年龄已知表2 gradeid 年级编号gradeName 年级名称案例1:查询 所有学员的邮箱的用户名(注:邮箱中 @前面的字符)【解析】(1)substr instr 都是索引从1开始的limit的索引从0开始(2)substr(email, 1, 5)原创 2021-05-17 15:51:15 · 116 阅读 · 0 评论 -
进阶8-2 分页查询
进阶8:分页查询*****/*应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求【类似于爬虫】语法:select 查询列表 # step5from 表1 # step1【join type join 表2on 连接条件where 筛选条件 # step2group by 分组字段 # step3having 分组原创 2021-05-17 15:50:54 · 109 阅读 · 0 评论 -
进阶8 子查询-----作业讲解
(1)查询每个专业的学生人数SELECT COUNT(*), majoridFROM studentGROUP BY majorid;(2)查询参加考试的学生中,每个学生的平均分、最高分SELECT AVG(score), MAX(score), studentnoFROM resultGROUP BY studentno;(3)查询姓张的每个学生的最低分大于60的学号、姓名注意:left join,以因为有可能有学生没有成绩。stuent表为主表SELECT studentno, st原创 2021-05-17 15:49:10 · 111 阅读 · 0 评论 -
进阶8 子查询-----经典案例讲解
(1)查询工资最低的员工信息:last_name,salarystep1:查询最低的工资SELECT MIN(salary)FROM employees;step2:查询last_name,salary,要求salary=❶SELECT last_name, salaryFROM employeesWHERE salary = (SELECT MIN(salary)FROM employees);(2)查询平均工资最低的部门信息方法1 ------- 简单(如果是多个相同的最低工资但原创 2021-05-17 15:48:39 · 66 阅读 · 0 评论 -
进阶8 子查询------测试题
class 87-99 子查询--------------------(一)案例讲解:子查询----------------------------------------------/*(1)子查询的本质就是创建一个中间表。一个、一列、一行、多行多列,都是表。(2)本质:在于分析筛选条件*/(1)查询和zlotkey相同部门的员工姓名和工资step1:查询zlotkey的部门SELECT department_idFROM employeesWHERE last_name = ‘zlo原创 2021-05-17 15:48:09 · 120 阅读 · 0 评论 -
进阶8 子查询
class 87-99 子查询/*含义:(1)出现在其他语句中的select语句,称为子查询或内查询(2)外部的查询语句,称为主查询或外查询分类:按子查询出现的位置:(1)select后面: 【了解即可】仅仅支持标量子查询(2)from后面:支持表子查询(3)where或having后面: ★★★★★支持标量子查询(单行单列) ★★★★★支持列子查询 (1列多行) ★★★★★支持行子查原创 2021-05-17 15:47:49 · 84 阅读 · 1 评论 -
进阶7 补充二:Mysql—— 内连接、左连接、右连接以及全连接查询
今天去进行了面试,遇到了内连接与、左连接、右连接的区别,由于好久没用过了,回家进行了测试,下面是结果。希望能帮助大家! 首先,我这有两个表,里面的数据去这样的: 表和数据准备好了,接下来进行操作: (1)先说左连接查询: 左连接:在 LEFT JOIN 左边的表里面数据全被全部查出来,右边的数据只会查出符合ON后面的符合条件的数据,不符合的会用NULL代替。注意:以左表为基准,将右表与左表的连接字段一一比较。 (2...转载 2021-05-15 14:55:35 · 125 阅读 · 0 评论 -
进阶7 补充一:Mysql—— 内连接、左连接、右连接以及全连接查询
获取 boy 、girl 表下载地址 一、内连接查询 inner join 关键字:inner join on 语句:select * from a_table a inner join b_table b on a.a_id = b.b_id; 说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。 案例解释:在boy...转载 2021-05-09 16:34:07 · 128 阅读 · 0 评论 -
进阶7 连接查询(sql99内连接,外连接,交叉连接)测试题
class 86多表连接案例讲解一、查询编号>3的女神的男朋友信息。如果有则列出详细,如果没有则用null填充解析:(1)最终查询的是男朋友信息,故boys表是主表(2)左连接:只显示完整的主表的信息,从表不匹配则为nullSELECT bo.*, b.id, b.nameFROM boys boLEFT JOIN beauty bON b.boyfriend_id = bo.idWHERE b.id > 3;二、查询编号>3的女神及所对应的男朋友信息。如果有则列出详细,原创 2021-05-09 19:59:19 · 516 阅读 · 0 评论 -
进阶7 连接查询(sql99内连接,外连接,交叉连接)
class 78—81 sql99内连接(等值连接,非等值连接,自连接)class 82—83 sql99外连接(左外连接,右外连接,全外连接)class 84 sql99交叉连接class 85 总结连接查询/*分类:(1)按年代分类:sql标准(仅仅支持内连接) sql99标准【推荐】(支持内连接)(支持外连接:左外和右外)(支持交叉连接)(2)按功能分类:内连接(等值连接,非等值连接,自连接) 外连接(左外连接,右外连接,全外连接) 交叉连接*/二、ssq原创 2021-05-09 19:58:38 · 201 阅读 · 0 评论 -
进阶6 连接查询(sql92内连接)测试题
-------------------------------------(1)测试题---------------------------------------一、显示员工表的最大工资,工资平均值SELECT MAX(salary), AVG(salary)FROM employees;二、查询员工表的employee_id,job_id,last_name。按department_id降序,salary升序SELECT employee_id, job_id, last_nameFROM原创 2021-05-09 19:58:07 · 526 阅读 · 0 评论 -
进阶6 连接查询(sql92内连接)
进阶6:连接查询/*含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1有m行,表2有n行,结果=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类:(1)按年代分类:sql标准(仅仅支持内连接) sql99标准【推荐】(支持内连接)(支持外连接:左外和右外)(支持交叉连接)(2)按功能分类:内连接(等值连接,非等值连接,自连接) 外连接(左外连接,右外连接,全外连接) 交叉连接*/------------------------原创 2021-05-09 19:57:40 · 270 阅读 · 0 评论 -
进阶5 补充:秒懂mysql中的group by用法
文章转载自:https://blog.csdn.net/u014717572/article/details/80687042 先来看下表1,表名为test: 执行如下SQL语句: SELECT name FROM test GROUP BY name1 你应该很容易知道运行的结果,没错,就是下表2: 可是为了能够更好的理...转载 2021-05-09 16:17:22 · 142 阅读 · 0 评论 -
进阶5 分组查询------测试题
(1)查询各job_id的员工工资的最大值,最小值,平均值,总和。并按job_id排序解析:【各“job_id”----->按“job_id”分组】【datediff:时间差几天】SELECT MAX(salary), MIN(salary), AVG(salary), SUM(salary), job_idFROM employeesGROUP BY job_idORDER BY job_id;(2)查询员工最高工资和最低工资的差距(diffrence)SELECT MAX(salar原创 2021-04-30 10:08:41 · 423 阅读 · 0 评论 -
进阶5 分组查询
进阶5:分组查询/*语法:select 分组函数(要求出现在group by的后面)from 表【where 分组前筛选条件】【group by 分组的列表】【having 分组后筛选条件】【order by 子句】注意:(1)明确:where一定放在from后面(2)order by排序子句一般是放在查询语句的最后面,limit子句除外(3)分组(group by)前筛选用where(有原字段),分组(group by)后筛选用having(无原字段)(4)仅where后面:不支原创 2021-04-30 10:08:10 · 54 阅读 · 0 评论 -
进阶4 常见分组函数------测试题
1.查询公司员工工资的最大值、最小值、平均值、总和SELECT MAX(salary) , MIN(salary), ROUND(AVG(salary), 2), SUM(salary)FROM employees;2.查询员工表中的最大入职时间和最小入职时间的相差天数(DIFFRENCE)【datediff函数:支持的两个参数都为日期类型。相差天数。】SELECT DATEDIFF(‘2017-10-1’, ‘2017-9-29’);SELECT DATEDIFF(NOW(), ‘1995-1原创 2021-04-30 08:39:28 · 127 阅读 · 0 评论 -
进阶4 常见分组函数
二、分组函数【只显示一个值】/*功能:用作统计使用,又称为聚合函数或统计函数或组函数分类:sum求和【数值型】 avg平均值【数值型】 max最大值【数值型,字符型,日期型】 min最小值【数值型,字符型,日期型】 count计算个数【数值型,字符型,日期型:只计算非空值null的个数】特点:(1)sum、avg用于处理数值型max、min、count可以处理任何类型(2)是否忽略null值?以上分组函数都忽略null值(3)都可以和distinct搭配实现去重的运算(原创 2021-04-30 08:38:58 · 150 阅读 · 0 评论 -
进阶4 常见单行函数------测试题
(1)显示系统时间(注:日期+时间)SELECT NOW();(2)查询员工号、姓名、工资,以及工资提高20%后的结果(new salary)SELECT employee_id, last_name, salary*1.2 AS ‘new salary’FROM employees;(3)将员工的姓名按首字母排序,并写出姓名的长度(length)【截取字符串:substr】【默认:升序】【只按首字母排序】输出1SELECT LENGTH(last_name) 长度, SUBSTR(last_原创 2021-04-29 21:19:35 · 61 阅读 · 0 评论 -
进阶4 常见单行函数
进阶4:常见函数概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:1,隐藏了实现细节 2,提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点:(1)叫什么(函数名)(2)干什么(函数功能)分类:(1)单行函数【显示多个值】如 concat,length,ifnull,isnull(2)分组函数【只显示一个值】功能:做统计使用,又称统计函数、聚合函数、组函数一、单行函数【显示多个值】/*学习目标:(1)字符函数:len原创 2021-04-29 21:18:23 · 71 阅读 · 0 评论 -
进阶3 排序查询------测试题
1.查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序 (升序:asc 降序:desc)【排序】解析:整体先按年薪降序。若年薪相同时,再按姓名升序SELECT last_name, department_id, salary12(1+IFNULL(commission_pct,0)) 年薪FROM employeesORDER BY 年薪 DESC, last_name ASC;2.选择工资不在8000到17000的员工的姓名和工资,按工资降序【筛选+排序】SELECT last_na原创 2021-04-29 21:02:18 · 744 阅读 · 0 评论 -
进阶3 排序查询
/*引入:SELECT * FROM employees;语法:select 查询列表 step3from 表 step1【where 筛选条件】 step2order by 排序列表【asc从低到高 desc从高到低】 step4注意:(1)从高到低排序,降序-----desc descend下降从低到高排序,升序----原创 2021-04-29 20:58:29 · 59 阅读 · 0 评论 -
进阶2 条件查询------测试题
(1)查询工资大于12000的员工姓名和工资SELECT last_name,salaryFROM employeesWHERE salary>12000;(2)查询员工的姓名和部门号和年薪注意:commission_pct的值有null,故 ifnull(commission_pct, 0)------将null数值改为0,其他数值不变SELECTlast_name,department_id,salary * 12 * (1+IFNULL(commission_pct, 0))原创 2021-04-29 20:56:37 · 328 阅读 · 0 评论 -
进阶2 条件查询
进阶2:条件查询/*(1)语法:select查询列表 step3from表名 step1where筛选条件; step2(2)分类:一,按条件表达式筛选条件运算符:> < = <>不等于 >= <=二,按逻辑表达式筛选注意:逻辑运算符的作用---用于连接条件表达式and与------两个条件都为true原创 2021-04-29 20:55:21 · 55 阅读 · 0 评论 -
进阶1 基础查询------测试题
(1)下面的语句是否可以执行成功-------yesSELECT last_name, job_id, salary AS salFROM employees;(2)下面的语句是否可以执行成功------yesSELECT * FROM employees;(3)下面的语句是否可以执行成功------yes注意:as可以省略SELECT employee_id, last_name,salary * 12 AS “ANNUAL SALARY”FROM employees;(4)显示表de原创 2021-04-29 20:43:28 · 125 阅读 · 0 评论 -
进阶1 基础查询
进阶1:基础查询/*语法:select 查询列表 from 表名特点:1.查询列表可以是:表中的字段,常量值,表达式,函数2.穿的结果是一个虚拟的表格注意:1.F12格式化2.F8运行*/表示下列的代码都在myemployees库中USE myemployees;(1).查询表中的单个字段SELECT last_name FROM employees;(2).查询表中的多个字段SELECT last_name,salary,email FROM employees;SELE原创 2021-04-29 10:15:01 · 49 阅读 · 0 评论