1.创建数据库:
图形工具:右键创建 goods
字符集: utf8 -- UTF-8 Unicode
排序规则: utf8_general_ci
创建数据库(非图形工具): CREATE DATABASE goods;
2.删除数据库: DROP DATABASE goods;
3.创建表
CREATE TABLE employee(
dept VARCHAR(50),
sno VARCHAR(50),
NAME VARCHAR(50),
age INT,
gender CHAR(2),
entry_time DATE
)
3.1 外键的设置
学生表student (sno,sname)
课程表course (cno,cname)
选课表sc (sno,cno,score)
选课表中sno,cno分别是学生表sno,课程表cno的外键
图形界面设置外键
sql语句设置外键:
ALTER TABLE tb_active ADD CONSTRAINT FK_ID FOREIGN KEY(user_id) REFERENCES tb_user(id)
user_id 是id的外键
ALTER TABLE sc ADD CONSTRAINT FK_ID FOREIGN KEY(sno) REFERENCES student(sno)
选课表中sno是学生表sno 的外键
ALTER TABLE sc ADD CONSTRAINT FK_ID2 FOREIGN KEY(cno) REFERENCES course(cno)
4..删除表: DROP TABLE 表
5.插入数据
INSERT INTO employee
(dept,sno,NAME,age,gender,entry_time)
VALUES
('软件开发部','100010','张三',25,'男','2008/04/01');
6.删除数据
DELETE FROM employee
WHERE NAME='李四';
7.更改数据
UPDATE employee
SET dept='人事部',age=20
WHERE NAME='张三';
8.查询数据
SLEECT的基本语法形式如下:
SELECT 属性列表
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 属性名1] [HAVING 条件表达式2]
[ORDER BY 属性名2[ASC|DESC]]
'属性列表'参数表示需要查询的字段名;
'表名'参数表示此处指定的表,表可以有多个;
'条件表达式1'参数指定查询条件;
GROUP BY:'属性名1'参数指按该字段中的数据进行分组;
ORDER BY:'属性名2'参数指按该字段中的数据进行排序
'ASC'参数按升序的顺序排序,默认排序;(从小到大)
'DESC'参数按降序的顺序进行排序。(从大到小)
GROUP BY子句通常和COUNT()、SUM()等聚合函数一起使用。
单表查询:
CREATE TABLE employee(
num INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
d_id INT NULL,
name VARCHAR(20),
age INT,
gender VARCHAR(4),
homeaddr VARCHAR(50)
)
1.查询所有字段
SELECT num, d_id, name, age, gender, homeaddr FROM employee;
SELECT * FROM employee;
2.查询指定字段
SELECT num, name, gender, homeaddr FROM employee;
3. 查询指定记录
SELECT * FROM employee WHERE d_id=1001;
4.带IN关键字的查询
IN关键字可以判断某个字段的值是否在指定的集合中。
语法规则如下:
[NOT] IN(元素1, 元素2,...,元素n)
查询条件 符号或关键字
比较 =, <, <=, >, >=, !=, <>, !>, !<
指定范围 BETWEEN AND, NOT BETWEEN AND
指定集合 IN, NOT IN
匹配字符 LIKE, NOT LIKE
是否为空值 IS NULL, IS NOT NULL
多个查询条件 AND, OR
(1)使用IN关键字查询。
SELECT * FROM employee WHERE d_id IN(1001,1004);
(2)使用NOT IN关键字查询, 而且集合元素为字符型数据。
SELECT * FROM employee WHERE name NOT IN('张三','李四');
5.带BETWEEN AND的范围查询
BETWEEN AND关键字可以判断某个字段的值是否在指定的范围内
语法规则如下:
[NOT] BETWEEN 取值1 AND 取值2
(1)使用BETWEEN AND关键字进行查询,查询条件是age字段取值从15到25。
SELECT * FROM employee WHERE age BETWEEN 15 AND 25;
(2)使用NOT BETWEEN AND关键字查询employee表。查询条件是age字段的取 值不在15到25之间。
SELECT * FROM employee WHERE age NOT BETWEEN 15 AND 25;
6.带LIKE的字符匹配查询
LIKE关键字可以匹配字符串是否相等
语法规则如下:
[NOT] LIKE '字符串'
SELECT * FROM employee WHERE name LIKE '赵';
SELECT * FROM employee WHERE homeaddr LIKE '北京%';
SELECT * FROM employee WHERE homeaddr LIKE '%区';
7.查询空值
IS NULL 关键字可以用来判断字段的值是否为空值(NULL)
语法规则如下:
IS [NOT] NULL
其中,'NOT'是可选参数,加上NOT表示字段不是空值时满足条件。
CREATE TABLE work(
id INT,
name VARCHAR(20),
gender VARCHAR(4),
info VARCHAR(50)
)
SELECT * FROM work WHERE info IS NULL;
SELECT * FROM work WHERE info IS NOT NULL;
8.带AND的多条件查询
AND关键字可以用来联合多个条件进行查询
如果不满足这些查询条件的其中一个,这样的记录将被排除掉
语法规则如下:
条件表达式1 AND 条件表达式2 [... AND 条件表达式n]
其中,AND可以连接两个条件表达式。
SELECT * FROM employee
WHERE d_id<1004
AND gender LIKE '男';
9.用LIMIT限制查询结果的数量
用来指定查询结果从哪条记录开始显示,还可以指定一共显示多少条记录
两种方式分别是不指定初始位置和指定初始位置。
SELECT * FROM employee LIMIT 2;
SELECT * FROM employee LIMIT 2, 2;
10.查询以特定字符或字符串开头的记录
使用字符'^'可以匹配特定字符或字符串开头的记录
CREATE TABLE info(
id INT,
name VARCHAR(20)
)
INSERT INTO info VALUES(1, 'Aric');
INSERT INTO info VALUES(2, 'Eric');
INSERT INTO info VALUES(3, 'Jame');
INSERT INTO info VALUES(4, 'Jack');
INSERT INTO info VALUES(5, 'Lucy');
INSERT INTO info VALUES(6, 'Lily')
INSERT INTO info VALUES(7, 'Tom');
INSERT INTO info VALUES(8, 'aaa');
INSERT INTO info VALUES(9, 'dadaaa');
INSERT INTO info VALUES(10, '2323');
INSERT INTO info VALUES(11, 'bbdfec12');
INSERT INTO info VALUES(12, '212abc');
INSERT INTO info VALUES(13, 'werabc');
SELECT * FROM info WHERE name REGEXP '^L';
SELECT * FROM info WHERE name REGEXP '^aaa';
SELECT * FROM info WHERE name REGEXP '^L';
SELECT * FROM info WHERE name REGEXP '^aaa';
11.查询以特定字符或字符串结尾的记录
SELECT * FROM info WHERE name REGEXP 'c$';
SELECT * FROM info WHERE name REGEXP 'aaa$';
12.用符号'.'来替代字符串任意一个字符
SELECT * FROM info WHERE name REGEXP '^L..y$'
13.匹配指定字符串的任意一个
使用方括号([])可以将需要查询字符组成一个字符集。只要记录中包含方括 号中的任意字符,该记录将会被查询出来。例如,通过"[abc]"可以查询包 括a、b、c这三个字母中任何一个的记录。
SELECT * FROM info WHERE name REGEXP '[ceo]';
SELECT * FROM info WHERE name REGEXP '[0-9]';
14.匹配指定字符以外的字符
使用'[^字符集合]'可以匹配指定字符以外的字符。从info表字段中查询包 含a到w字母和数字以外的字符的记录。
SELECT * FROM info WHERE name REGEXP '[^a-w0-9]';
15.匹配指定字符串
正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该 记录查询出来。如果指定多个字符串时,需要用符号'|'隔开。只要匹配这 些字符串中的任意一个即可。
SELECT * FROM info WHERE name REGEXP 'ic';
SELECT * FROM info WHERE name REGEXP 'ic|ab|uc';
16.使用'*'和'+'来匹配多个字符
正则表达式中,'*'和'+'都可以匹配多个该符号之间的字符。
但是,'+'至少 表示一个字符,而'*'可以表示零个字符。
SELECT * FROM info WHERE name REGEXP 'a*c';
SELECT * FROM info WHERE name REGEXP 'a+c';
17. 使用{M}或者{M,N}来指定字符串连续出现的次数
正则表达式中,'字符串{M}'表示字符串连续出现M次;
'字符串{M,N}'表示字符串联连续出现至少M次,最多N次
'ab{2}'表示字符串'ab'连续出现两次。'
ab{2,4}'表示字符串'ab'连续出现至少两次,最多四次
SELECT * FROM info WHERE name REGEXP 'a{3}';
SELECT * FROM info WHERE name REGEXP 'ab{1,3}';
使用聚合函数查询
聚合函数包括COUNT()、SUM()、AVG()、MAX()和MIN()。
COUNT()用来统计记录的条件;
SUM()用来计算字段的值的总和;
AVG()用来计算字段的值的平均值;
MAX()用来查询字段的最大值;
MIN()用来查询字段的最小值。
1. COUNT函数
COUNT()函数用来统计记录的条数。如果要统计employee表中有多少条记录,可以使用COUNT()函数。如果要统计employee表中不同部门的人数,也可以使用COUNT()函数。使
SELECT COUNT(*) FROM employee;
SELECT d_id, COUNT(*) from employee GROUP BY d_id;
2 .SUM()函数
SUM()函数是求和函数。使用SUM()函数可以求出表中某个字段取值的总和。例如,可以用SUM()函数来求学生的总成绩。
CREATE TABLE grade(
num INT NOT NULL,
course VARCHAR(10) NOT NULL,
score FLOAT
)
INSERT INTO grade VALUES
(1001, '数学', 80),
(1001, '语文', 90),
(1001, '英语', 85),
(1001, '计算机', 95),
(1002, '数学', 88),
(1002, '语文', 90),
(1002, '英语', 89),
(1002, '计算机', 90),
(1003, '数学', 80),
(1003, '语文', 98),
(1003, '英语', 85),
(1003, '计算机', 95);
SELECT * FROM grade WHERE num=1001;
SELECT num, SUM(score) FROM grade WHERE num=1001;
SELECT num, SUM(score) FROM grade GROUP BY num;
3. AVG()函数
AVG()函数是求平均值的函数。使用AVG()函数可以求出表中某个字段取值的平均值。例如,可以用AVG()函数来求平均年龄,也可以使用AVG()函数来求学生的平均成绩。
SELECT AVG(age) FROM employee;
SELECT course, AVG(score) FROM grade GROUP BY course;
SELECT num, AVG(score) FROM grade GROUP BY num;
4 .MAX()函数
MAX()函数是求最大值的函数。使用MAX()函数可以求出表中某个字段取值的最大值。例如,可以用MAX()函数来查询最大年龄,也可以使用MAX()函数来求各科的最高成绩。
SELECT MAX(age) FROM employee;
SELECT num, course, MAX(score) FROM grade GROUP BY course;
5 .MIN()函数
MIN()函数是求最小值的函数。使用MIN()函数可以求出表中某个字段取值的最小值。例如,可以用MIN()函数来查询最小年龄,也可以使用MIN()函数来求各科的最小成绩。
SELECT MIN(age) FROM employee;
SELECT num, course, MIN(score) FROM grade GROUP BY course;
相关推荐
从NHANES到发表:如何用survey包完成符合CDC要求的统计分析(含完整R代码)
本文详细介绍了如何利用R语言的survey包,对美国国家健康与营养调查数据进行符合CDC要求的统计分析。文章重点解析了NHANES数据的复杂抽样设计、权重变量的正确选择与调整,并提供了从数据获取、清洗、构建调查设计对象到执行加权回归及生成发表级表格的完整R代码实战指南,帮助研究者避免常见错误,确保分析结果的准确性与可发表性。
MySQL单表查询
单表查询是指从一张表数据中查询所需的数据。本节将介绍单表查询中的各种基本的查询方 式,主要有查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果 进行排序等。
KUKA机器人与S7-1200 PLC实现Profinet通讯配置步骤详解
在工业自动化产线中,PLC与工业机器人之间的高效数据交换是控制逻辑落地的关键。传统硬接线方案在信号点多时布线复杂、故障排查困难,而现场总线技术通过一根网线即可实现主从设备间的周期通讯。Profinet作为主流工业以太网协议,由S7-1200作为IO Controller主站,KUKA机器人作为IO Device从站,在WorkVisual与TIA Portal中完成设备组态、I/O映射及信号分配,即可替代成捆电缆,稳定传输启停、状态及报警信号。这一方案适用于汽车、3C、物流等行业的自动化产线,尤其适合需要扩
【MySQL】如何实现单表查询?
在我们对数据进行操作时,查询无疑是至关重要的,查询操作灵活多变,我们可以根据开发的需求,设计高效的查询操作,把数据库中存储的数据展示给用户。
QEMU pcie config空间访问机制
而pci_host_conf/data_le_ops的定义是在hw/pci/pci-host.c里,对于0xCF8端口的处理,因为是地址选通,所以只需要在write的时候记录、read的时候返回记录的值即可。而pci_host_config_write/read_common接口,在前256Bconfig空间的模拟中,也同样是会调用这个接口,所以后续的处理都是一样的。这是真实的硬件设计,而对于QEMU+KVM的虚机场景,显然是要基于硬件实现和虚拟化的需求设计虚机访问config空间的完整流程。
【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(下篇)
【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!
MySQL单表操作
在实际开发中,除了需要对数据进行添加、修改、查询和删除外,有时还需要进行一些进阶操作,例如复制表结构和数据、解决主键冲突、清空数据和去除查询结果中的重复记录,本文章就是来学习这些的。
张正友标定法-MATLAB实验
该方法最早由微软研究院的Zhengyou Zhang教授提出,1998年发表在IEEE TRANSACTIONS ON PATTERNANALYSIS AND MACHINE INTELLIGENCE,论文题目为:AFlexible New Technique for Camera Calibration。 (一)标定平面到图像平面的单应性 单应性(homography):在计算机视觉中被定义
MySql单表操作
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
ego-planner启动参数深度解析:从配置到实战避障应用
本文深入解析EGO-Planner启动参数的配置与实战应用,重点探讨无人机自主导航中的避障性能优化。通过环境感知、运动约束和算法控制三类参数的详细说明,结合ROS和RViz工具,提供从基础配置到高级调优的完整指南,帮助开发者提升无人机在复杂场景下的规划效率和安全性。
【35】软考软件设计师——设计模式代码填空(C++版)满分精讲|第5/6题二选一必考
本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第35篇,聚焦下午选做题**第5/6题C++版设计模式代码填空**,与上一篇Java版形成双子配套,单题分值稳定12~15分。全文超4000字深度拆解C++独有核心考点:虚函数/纯虚函数、构造与析构函数规范、继承权限、模板类编程在设计模式中的应用;精讲单例、工厂、策略、观察者、适配器五大高频模式的C++专属代码写法,标注所有填空核心点位、语法陷阱、内存安全规范
【MySQL基础】MySQL单表操作详解
MySQL单表操作大总结,一文带你掌握单表操作。 该文主要介绍单表中的数据操作,限量,排序,分组,聚合函数,别名设置六部分内容。
Unity实战篇 | 教你怎样将Unity的启动Logo 设置成 自己制作的 帧动画
上一篇文章我们讲了怎样在不购买专业版的情况下自定义Unity的启动Logo。 那本篇文章就来介绍一下,怎样在去除默认Logo的前提下制作自己的启动动画!
MySQL 单表与多表操作详解
本文详细介绍了MySQL中的单表查询和多表操作。单表查询部分涵盖了SELECT语句的通用模板、简单查询、条件查询、高级查询(如聚合函数、分组查询、排序和限制结果数量)以及注意事项。多表操作部分则包括外键约束、关联表操作、连接查询(如内连接、左外连接、右外连接、交叉连接)和子查询的使用方法。文章通过具体案例展示了如何在实际应用中执行这些查询,并强调了在操作中需要注意的性能和数据完整性问题。通过掌握这些技巧,可以更高效地进行数据库开发和管理。
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
mysql单表查询_MySQL单表查询常见操作实例总结
本文实例总结了MySQL单表查询常见操作。分享给大家供大家参考,具体如下:创建fruits表:CREATE TABLE fruits(f_id char(10) NOT NULL,s_id INT NOT NULL,f_name char(255) NOT NULL,f_price decimal(8,2) NOT NULL,PRIMARY KEY(f_id)) ;INSERT INT...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
mysql单表操作_mysql单表操作
mysql记录操作MySQL数据操作: DML在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据的插入UPDATE实现数据的更新使用DELETE实现数据的删除使用SELECT查询数据以及。插入数据insert1. 插入完整数据(顺序插入)语法一:INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n)...
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
mysql单表操作
学习记录
mysql 单表_mysql 单表操作
单表插入insert into tablename values(values_list);insert into tablename(column_list) values(values_list);insert into tablename(column_list) values(values_list1),(values_list2);insert into tablename(column...
面试官:MySQL单表过亿数据,如何优化count(*)全表的操作?
由于我们基本上不会对数据表执行 delete 操作,所以当有新的数据被写入表的时候,通过 Redis 的 incr 或 incrby 命令进行累加计数,并在用户查询汇总数据的时候直接返回结果即可。这两者的差别在于,前者在执行 count(*) 操作的时候,需要将表中每行数据读取出来进行累加计数,而后者已经将表的总行数存储下来了,只需要直接返回即可。参数调整后,执行全表 count 操作的时间由之前的 14.8 秒,降低至现在的 6.1 秒,是可以看到效果的。
mysql 1030 table_1030 MySQL单表操作和多表操作
单表操作分组分组指的是,将所有的记录按照某个相同字段进行归类group by用法:select 聚合函数,选取的字段 from employee group by 选取的字段;加别名:select 聚合函数 as 别名,选取的字段 from employee group by 选取的字段;以性别分组为例:select count(id),gender from employee group by ...
Mysql单表操作
MYSQL的SQL语句 SQL: Structrued Query Langauage 结构化的查询语言 DDL: 数据定义语言 : 定义数据库或者表结构. alter(修改) create(创建) drop(删除) truncate(截断) DML: 数据操纵语言: 用来操作表中数据: insert(插入) update(更新) delete(删除) DQL: 数据查询语
Linux下MySQL单表操作
一、MySQL安装 1.安装数据库服务(使用yum安装,便于解决依赖问题) (1):修改/etc/yum.repos.d/rhel-source.repo文件 修改为本地源,修改内容如下: file指明为本地文件,enabled=1表明yum源生效 (2):安装数据库服务器。 (3):查看MySQL数据库的是TCP端口3306(这个是重点,面试可能会考) (4):启...
521



被折叠的 条评论
为什么被折叠?



