SQL语言1

 创建数据库 CREATE DATABASE

展示数据库 SHOW DATABASE

整数 INT 

有小数点的数 DECIMA(m, n) #m是有几位数,n是有几位小数

字符串 VARCHAR(n)

(Binary Large Object)图片 影片 BLOB

‘YYYY-MM-DD’日期  DATA

'YYYY-MM-DD HH:MM:SS' 记录时间 TIMESTAMP

数据库中加入表格

CREATE DATABASE `sql_tutorial`;
SHOW DATABASES;
USE `sql_tutorial`;CREATE TABLE student(`student_id` INT PRIMARY KEY,`name` VARCHAR(20),`major`VARCHAR(20)--PRIMARY KEY(student)
);DESCRIBE `student`;--显示表格
DROP TABLE 'student'; --删除表格ALTER TABLE `student` ADD gpa DECIMAL(3,2); --增加属性
ALTER TABLE `student` DROP COLUMN gpa;--删除属性--存入数据
INSERT INTO `student` VALUES(1,'小白','历史');
INSERT INTO `student` ('name','major','student_id')VALUES('小白','历史',1);
SELECT * FROM 'student'--列出全部数据--constraints 限制CREATE TABLE student(`student_id` INT PRIMARY KEY,`name` VARCHAR(20) NOT NULL,--数据不能为空`major`VARCHAR(20) UNIQUE,--数据不能重复`major_1`VARCHAR(20) DEFAULT'历史',--新增预设值`name` VARCHAR(20) AUTO_INCREMENT,--自动增加
);--删除表格
DROP TABLE `student`SET SQL_SAFE_UPDATAS = 0; --关闭预设模式--更改表格内容
UPDATA `student` SET `major` = `英语文学` WHERE `major` = `英语`;UPDATA `student` SET `major` = `生化` WHERE `major` = `生物` OR `major` = `化学`;UPDATA `student` SET `name`=`小惠`,`major` = `生化` WHERE `student` =1 ;UPDATA `student` SET `name`=`小惠`;--name属性全改为小惠--删除数据DELETE FROM `student` WHERE `name`=`小惠` ;DELETE FROM `student` WHERE `score`>60;DELETE FROM `student` --删除整个表格--取得资料
SELECT `name`,`major` FROM `student`;
SELECT * FROM `student`;--取得所有数据
SELECT * FROM `student` ORDER BY `score` ASC; --若什么都没写则预设ASC,由低到高。DESC由高到低。SELECT * FROM `student` ORDER BY `score` ,`student_id`;--先根据score做排序,如果score相同,再根据student_id做排序。
SELECT * FROM `student` LIMIT 2;--回传前两笔资料。
SELECT * FROM `student` ORDER BY `score` LIMIT 2; --先按照score做排序,然后回传前两笔资料。
SELECT * FROM `student` WHERE`major`=`英语`OR`score`>=70;--回传主修是英语或者分数大于等于70
SELECT * FROM `student` WHERE`major` IN(`历史`,`英语`,`生物`);

大于 >

小于 <

大于等于 >=

等于=

不等于<>

-- 创建公司资料表格CREATE DATABASE `sql_tutorial`;SHOW DATABASES;USE `sql_tutorial`;DROP TABLE `student`;SET SQL_SAFE_UPDATES = 0; --关闭预设自动更新--创建表格CREATE TABLE `employee`(`emp_id` INT PRIMARY KEY,`name` VARCHAR(20),`brith_date` DATE,`sex` VARCHAR(1),`salary` INT,`branch_id` INT,`sup_id` INT);DROP TABLE `employee`;describe TABLE employee;--创建部门表格CREATE TABLE `branch`(`branch_id` INT PRIMARY KEY,`branch_name` VARCHAR(20),`manager_id` INT,FOREIGN KEY (`manager_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL   --FOREIGN KEY表示外键;REFERENCES 表示外键接的表格名,再加外接的表格的primary key);--对公司表格补上外键foreign key,ALTER TABLE `employee` ADD FOREIGN KEY(`branch_id`) --加外键 branch_id属性REFERENCES `branch`(`branch_id`) --对应到branch表格的branch_id的属性ON DELETE SET NULL;ALTER TABLE `employee`ADD FOREIGN KEY(`sup_id`) --加外键sup_idREFERENCES `employee`(`emp_id`) --对应到branch表格的branch_id的属性ON DELETE SET NULL; --创建客户表格CREATE TABLE `client`(`client_id` INT PRIMARY KEY,`client_name` VARCHAR(20),`phone` VARCHAR(20));--创建worh_with表格CREATE TABLE `work_with`(`emp_id` INT,`client_id` INT,`total_sales` INT,PRIMARY KEY ( `emp_id`, `client_id`),FOREIGN KEY (`emp_id`) REFERENCES `employee`(`emp_id`) ON DELETE CASCADE,FOREIGN KEY (`client_id`) REFERENCES `client`(`client_id`) ON DELETE CASCADE  );--填写表格数据--有foreign key时,对应的表没有相应资料时,直接输入会报错,要用NULL代替INSERT INTO `branch` VALUES(1,'研发',NULL);INSERT INTO `branch` VALUES(2,'行政',NULL);INSERT INTO `branch` VALUES(3,'查询',NULL); INSERT INTO `employee` VALUES(206,'小黄','1998-10-08','F',50000,1,NULL); --把原本branch的manager_id=NULL改回来UPDATE `branch`SET `manager_id`=206WHERE `branch_id`=1;UPDATE `branch`SET `manager_id`=207WHERE `branch_id`=2;UPDATE `branch`SET `manager_id`=208WHERE `branch_id`=3; --增加客户信息INSERT INTO `client` VALUES(400,'阿狗','1234567'); --增加work_with 信息
NSERT INTO `work_with` VALUES(206,400,70000);--取得员工资料
SELECT * FROM`employee`;--按薪水由低到高取得员工资料
SELECT * FROM `employee`OREDER BY`salary`;
--取得薪水前3高的员工
SELECT * FROM `employee`OREDER BY`salary`DESC LIMIT3;
--取得所有员工的名字
SELECT `name` FROM `employee`;
--取得所有员工的性别
SELECT DISTINCT `sex`FROM`employee`--distinct显示不重复的。
--取得客户资料
SELECT * FROM`client`;
--取得员工人数
SELECT COUNT(`sup_id`)FROM`employee`;--输出是员工数量--取得所有出生在1996-10-01之后出生的女性员工SELECT COUNT(*) FROM `employee`WHERE `brith_date` > '1996-10-01' AND `sex`='F'; --取得所有员工的平均薪水SELECT AVG(`salary`) FROM `employee`;--取得所有员工的总和薪水 sumSELECT SUM(`salary`) FROM `employee`;--取得最高/低员工的薪水 max,minSELECT MAX(`salary`) FROM `employee`; --widcards 万用字元 %代表多个字元;_代表一个字元
--1、取得电话号码尾数是335的客户
SELECT * FROM `client` WHERE `phone` LIKE`%335`;
--2、取得电话号码开头是245的客户
SELECT * FROM `client` WHERE `phone` LIKE`245%`;
--3、取得电话号码中间是245的客户
SELECT * FROM `client` WHERE `phone` LIKE`%245%`;
--4、取得姓艾的客户
SELECT * FROM `client` WHERE `client_name` LIKE`艾%`;
--取得生日在10月的员工SELECT * FROM `employee`WHERE `brith_date` like '_____10%'; --五个_--union 连集 可以合并搜寻的结果,合并的属性资料形态要一样,不同表格的属性数目要一样,不能用表格1的2个属性去和表格2的1个属性合并--员工名字和客户名和部门名字字合并 SELECT `name` FROM `employee` UNION SELECT `client_name` FROM `client`;SELECT `name` FROM `employee` UNION SELECT `client_name` FROM `client`UNION SELECT `branch_name` FROM `branch`;--员工id+员工名字UNION 客户id+客户名字
SELECT `emp_id`,`name` FROM`employee`UNION SELECT `client_id`,'client_name' FROM`client`;
--员工id+员工名字UNION 客户id+客户名字,并且改名字
SELECT `emp_id`AS`total_id`,`name`AS`total_name` FROM`employee`UNION SELECT `client_id`,'client_name' FROM`client`;--员工薪水union销售金额
SELECT `salary` FROM`employee`UNION SELECT `total_sales` FROM`works_with`;--join 链接 在join左边是左边表格,在join右边是右边表格,右边表格条件成立才回传资料,左边表格全部资料都会回传,没有对应右边的,则显示NULL
--right join则相反
INSERT INTO `branch`VALUES(4,`偷懒`,NULL);--新增一笔资料
--取得所有部门经理的名字
SELECT `emp_id`,`name`,`branch_name` FROM `employee` JOIN `branch` ON `emp_id`=`manager_id`;--在属性前面加上表格名称。`employee`.`emp_id`,防止多个表格存在相同属性--subquery 子查询
--1、找出研发部门的经理名字
SELECT `name` FROM`employee` WHERE`emp_id`=(
SELECT `manager_id`FROM `branch` WHERE `branch_name`=`研发`);
--找出一位客户销售金额超过50000的员工名字:当子查询回传结果不止一个,要用in不用=SELECT `name` FROM `employee`WHERE `emp_id` IN (SELECT `emp_id` FROM `work_with`WHERE `total_sales` > 50000);--on delete删除某一行
--on delete set null;(对应不到,设置为null) 如果删除某个资料1,其他表格的资料2用外键对应的该资料1,在其他表格中把资料2设为null,当资料2为primary key时,不能设置为null,只能为on delete cascade
--on delete cascade; (对应不到,把整笔资料删掉)如果删除某个资料1,其他表格的资料2用外键对应的该资料1,在其他表格中把资料2也删掉。--创建worh_with表格CREATE TABLE `work_with`(`emp_id` INT,`client_id` INT,`total_sales` INT,PRIMARY KEY ( `emp_id`, `client_id`),FOREIGN KEY (`emp_id`) REFERENCES `employee`(`emp_id`) ON DELETE CASCADE,FOREIGN KEY (`client_id`) REFERENCES `client`(`client_id`) ON DELETE CASCADE --primary ley同时又是foreign key不能设置为null );--创建部门表格CREATE TABLE `branch`(`branch_id` INT PRIMARY KEY,`branch_name` VARCHAR(20),`manager_id` INT,FOREIGN KEY (`manager_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL   #FOREIGN KEY表示外键;REFERENCES 表示外键接的表格名,再加外接的表格的primary key);DELETE FROM `employee`WHERE `emp_id`= 207;SELECT * FROM `work_with`;SELECT * FROM `branch`;UPDATE `branch`SET `manager_id`=207WHERE `branch_id`=2; INSERT INTO `employee` VALUES(207,'小绿','1995-10-09','M',51000,2,206);INSERT INTO `work_with` VALUES(207,400,'56000');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

platformio 提示 fatal error: TimeLib.h: No such file or directory 的解决方案

在platformio编译arduino项目的时候&#xff0c;如果提示fatal error: TimeLib.h: No such file or directory&#xff0c;解决方法有2&#xff1a; 方法1&#xff1a; 在项目的platformio.ini文件中&#xff0c;添加 lib_deps # Using library Id44方法2&#xff1a; 通过…

java的面向对象编程(oop)——认识枚举

前言 打好基础&#xff0c;daydayup! 枚举 1&#xff0c;认识枚举&#xff1a; 枚举是一种特殊类&#xff0c;用enum语句修饰。与普通类不同的是&#xff1a;枚举类的第一行只能写一些合法的标识符&#xff08;名称&#xff09;&#xff0c;多个名称用逗号隔开。这些标识符&a…

后端接口如何部署到前端

先跑通后端 把后端接口路径写入前端两个env.js中的BASE_API 这里以后要替换成个人域名,目前就可以对前端进行打包,改了代码记得先重新打包

安卓TextView 拖动命名

需求&#xff1a;该布局文件使用线性布局来排列三个文本视图和一个按钮&#xff0c;分别用于显示两个动物名称以及占位文本视图。在占位文本视图中&#xff0c;我们为其设置了背景和居中显示样式&#xff0c;并用其作为接收拖放操作的目标 效果图&#xff1b; 实现代码 第一布…

Spring-面试题

一、Spring 1、Spring的优势 通过IOC、AOP简化java开发 IOC减低业务对象替换的复杂性,降低耦合AOP允许将一些通用的事务、日志进行集中处理,从而提高更好的复用性Spring生态圈低嵌入式涉及,代码污染小高度开放性,用的人多2、Spring的核心 IOC控制反转: Spring容器为我们创…

如何查找Windows的桌面文件夹?这里提供详细步骤

当你的电脑上有不同的用户时&#xff0c;Windows 11、10、…上的桌面文件夹或桌面目录特别有用&#xff0c;那么哪里才是真正的桌面文件夹目录。 自己的Windows桌面目录 1、启动Windows资源管理器 2、按F4键并输入%UserProfile% 3、点击桌面 这是你个人桌面的正确文件夹路径…

【送码】【IOS付费榜92名】春节不打烊,功德加倍攒

整体效果概览图 船新玩法&#xff0c;换个姿势攒功德 竞品玩法 过于简单&#xff1a;都是敲敲&#xff0c;然后设置里换换木鱼样式、音色等 本APP玩法 功德上云&#xff1a;敲击之后&#xff0c;会将所积攒的功德上传至fo祖云端 功德可视化&#xff1a;每日功德、3D功德地…

Calendar的使用(Java)

直接从需求来理解&#xff1a;将2024年2月16日增加一个月 如果不使用Calendar的话&#xff0c;我们需要定义字符串记住这个日期&#xff0c;然后把字符串解析成Date日期对象&#xff0c;通过Date日期对象获取其毫秒值&#xff0c;然后增加一个月的毫秒值&#xff0c;再格式化时…

东莞添威电子开关电源测控软件开发

加我微信hezkz17&#xff0c;可学习嵌入式开关电源开发技术进答疑群 1 ATE 2 开关电源产品

需要学习的知识点清单

div 4 div 3 F :拓扑排序 G : 组合数学 D : 结构体排序 div 2 div 12

2024年!PyCharm快捷键大全

收藏&#xff01;PyCharm快捷键大全 工欲善其事必先利其器&#xff0c;PyCharm 是最popular的Python开发工具&#xff0c;它提供的功能非常强大&#xff0c;是构建大型项目的理想工具之一&#xff0c;如果能挖掘出里面实用技巧&#xff0c;能带来事半功倍的效果。 本文主要向大…

try catch中的finally代码一定会执行吗?

1.正常情况 正常运行的情况下&#xff0c;finally 中的代码是一定会执行的&#xff0c;但是&#xff0c;如果遇到以下异常情况&#xff0c;那么 finally 中的代码就不会继续执行了&#xff1a; 程序在 try 块中遇到 System.exit() 方法&#xff0c;会立即终止程序的执行&#…

Kubernetes(K8S)集群部署实战

目录 一、准备工作1.1、创建3台虚拟机1.1.1、下载虚拟机管理工具1.1.2、安装虚拟机管理工具1.1.3、下载虚Centos镜像1.1.4、创建台个虚拟机1.1.5、设置虚拟机网络环境 1.2、虚拟机基础配置&#xff08;3台虚拟机进行相同处理&#xff09;1.2.1、配置host1.2.2、关闭防火墙1.2.3…

Codeforces Round 921 (Div. 2)题解(A-C)

A We Got Everything Covered! 思路 可以采用划分区域的思想。 共划分为 n 个区域每一个区域含有所包含的前 k 个字母 证明&#xff1a; 正确性&#xff1a;无论所要求的字符串str为什么&#xff0c;只需要在区域i中取出 s t r [ i ] str[i] str[i]即可最优性&#xff1a…

构造题记录

思路&#xff1a;本题要求构造一个a和b数组相加为不递减序列&#xff0c;并且b数组的极差为最小的b数组。 可以通过遍历a数组并且每次更新最大值&#xff0c;并使得b数组为这个最大值和当前a值的差。 #include <bits/stdc.h> using namespace std; #define int long lon…

【BUUCTF 加固题】Ezsql 速通

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

阿里云/腾讯云幻兽帕鲁服务器据点最大帕鲁工作数量最多15个,改成20不生效?

例如&#xff0c;在阿里云的计算巢管理中&#xff0c;找到你的这台部署幻兽帕鲁的服务器实例&#xff0c;选择右上角的“修改游戏配置” 然后选择“基地内工作帕鲁的最大数量”改成20 有人说更改上面的数字&#xff0c;根本不起作用。原因可能如下&#xff1a; 参考资料&#…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators&#xff1a;作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches&#xff1a;将视觉数据转换为补丁3、Video compression network&#xff1a;视频压缩网络4、Spacetime Latent Patches&#xff1a;时空潜在…

C++学习:最值查找

min和max函数 1.min(a&#xff0c;b)返回a和b中较小的那个值&#xff0c;只能传入两个值&#xff0c;或传入一个列表。 例如: min(3&#xff0c;5) 3 min({1,2,3,4})1 2.max(a&#xff0c;b)返回a和b中较大的那个值&#xff0c;只能传入两个值&#xff0c;或传入一个列表。 例…

《数电》理论笔记-第3章-常用组合逻辑电路及MSI组合电路模块的应用

一&#xff0c;编码器和译码器 1&#xff0c;编码器 编码:用由0和1组成的代码表示不同的事物。 编码器:实现编码功能的电路&#xff0c; 常见编码器:普通编码器、优先编码器、二进制编码器二-十进制编码器等等 1.1 三位二进制普通编码器和三位二进制优先编码器 1分58秒开始 …