首页
关于
Search
1
中兴2.5G光猫F7607p/G7615折腾
512 阅读
2
itv源地址
232 阅读
3
网盘相关参数获取
229 阅读
4
PS3游戏合集
137 阅读
5
创造球会2002
123 阅读
公共服务
游戏分享
PC
PS1
PS2
PS3
Switch
FC/SFC
Wii/U/NGC/N64
MD/SS/DC
软件资源
学习资料
操作系统
工业软件
学习园地
人工智能
程序设计
数据库
虚拟化
容器
运维
登录
Search
Tom
累计撰写
22
篇文章
累计收到
8
条评论
首页
栏目
公共服务
游戏分享
PC
PS1
PS2
PS3
Switch
FC/SFC
Wii/U/NGC/N64
MD/SS/DC
软件资源
学习资料
操作系统
工业软件
学习园地
人工智能
程序设计
数据库
虚拟化
容器
运维
页面
关于
搜索到
3
篇与
的结果
2024-09-09
数据库知识要点
MySQL简介MySQL是一个关系型数据库管理系统(RDBMS),以其高效、易用、开源等优点广泛应用于Web开发、数据存储和管理等领域。数据库的基本概念数据库:数据的有序集合,可以看作一个电子化的文件柜。表:数据库的基本存储结构,由行(记录)和列(字段)组成。字段:表的列,每一列有一个名称,指定了数据的类型。记录:表中的一行数据。-- 创建数据库 CREATE DATABASE school; -- 使用数据库 USE school; 数据类型数值类型:INT, FLOAT, DOUBLE, DECIMAL等。字符类型:CHAR, VARCHAR, TEXT等。日期和时间类型:DATE, TIME, DATETIME, TIMESTAMP等。布尔类型:BOOLEAN,通常用TINYINT(1)实现。-- 创建学生表,包含不同数据类型 CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, score DECIMAL(5, 2), birth_date DATE );基本表操作创建表:使用CREATE TABLE语句。修改表:使用ALTER TABLE语句,可以增加、删除、修改字段。删除表:使用DROP TABLE语句删除整个表结构和数据。-- 添加新字段 ALTER TABLE students ADD COLUMN email VARCHAR(100); -- 修改字段 ALTER TABLE students MODIFY COLUMN age TINYINT; -- 删除字段 ALTER TABLE students DROP COLUMN email; -- 删除表 DROP TABLE students; 插入数据使用INSERT INTO语句将数据插入到表中,可以插入单条或多条记录。-- 插入单条记录 INSERT INTO students (name, age, score, birth_date) VALUES ('张三', 18, 85.50, '2005-09-01'); -- 插入多条记录 INSERT INTO students (name, age, score, birth_date) VALUES ('李四', 17, 90.00, '2006-08-15'), ('王五', 18, 78.00, '2005-07-20'); 查询数据基本查询:使用SELECT语句查询表中的数据。条件查询:WHERE子句用于筛选记录。排序:ORDER BY用于按指定列排序。分组:GROUP BY用于对查询结果进行分组。分页:LIMIT用于限制查询结果的数量。-- 查询所有学生 SELECT * FROM students; -- 条件查询,查找年龄大于17的学生 SELECT * FROM students WHERE age > 17; -- 按成绩降序排序 SELECT * FROM students ORDER BY score DESC; -- 分组统计各年龄的学生数量 SELECT age, COUNT(*) AS count FROM students GROUP BY age; -- 分页查询,获取前两条记录 SELECT * FROM students LIMIT 2; 更新数据使用UPDATE语句更新表中的数据,需要结合WHERE子句指定更新条件。-- 更新学生成绩 UPDATE students SET score = 88.50 WHERE name = '张三'; -- 批量更新,将所有学生年龄增加1岁 UPDATE students SET age = age + 1; 删除数据使用DELETE语句删除表中的记录,谨慎使用WHERE子句,否则会删除整张表的数据。-- 删除指定学生 DELETE FROM students WHERE name = '李四'; -- 删除所有记录(不删除表结构) DELETE FROM students; 常用函数字符串函数:CONCAT(), UPPER(), LOWER(), SUBSTRING()等。数学函数:ABS(), ROUND(), CEIL(), FLOOR()等。日期函数:NOW(), CURDATE(), DATE_ADD(), DATEDIFF()等。聚合函数:COUNT(), SUM(), AVG(), MIN(), MAX()等。-- 使用字符串函数将姓名拼接 SELECT CONCAT(name, '同学') AS new_name FROM students; -- 数学函数,取绝对值 SELECT ABS(-10) AS absolute_value; -- 日期函数,计算两个日期之间的天数 SELECT DATEDIFF('2024-09-01', '2024-08-01') AS days_diff; -- 聚合函数,计算平均成绩 SELECT AVG(score) AS avg_score FROM students; 联合查询(JOIN)在关系型数据库中,连表查询(Join)是用来从多个表中提取数据的操作。主要的连表方式有三种:内连接(INNER JOIN)、左连接(LEFT JOIN) 和 右连接(RIGHT JOIN)。每种连接方式的区别在于它们对匹配和不匹配数据的处理方式。区别内连接(INNER JOIN)只返回两个表中符合连接条件的匹配记录。如果没有匹配的记录,结果中不会包含这些记录。左连接(LEFT JOIN)返回左表的所有记录,以及左表中每条记录对应的右表的匹配记录。如果左表中的记录在右表中没有匹配,结果中该记录的右表字段为 NULL。右连接(RIGHT JOIN)返回右表的所有记录,以及右表中每条记录对应的左表的匹配记录。如果右表中的记录在左表中没有匹配,结果中该记录的左表字段为 NULL。示例表格表 1: students(学生信息表)student_idnameclass_id1Alice1012Bob1023Charlie1034DavidNULL表 2: classes(班级信息表)class_idclass_name101Mathematics102Science104Literature查询及结果1. 内连接(INNER JOIN)SELECT students.name, classes.class_name FROM students INNER JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScience说明:仅返回 students.class_id 和 classes.class_id 匹配的记录。Charlie 和 David 的记录因为没有匹配的 class_id,被排除。2. 左连接(LEFT JOIN)SELECT students.name, classes.class_name FROM students LEFT JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScienceCharlieNULLDavidNULL说明:返回 students 表的所有记录。Charlie 和 David 的 class_name 为 NULL,因为没有匹配的 class_id。3. 右连接(RIGHT JOIN)SELECT students.name, classes.class_name FROM students RIGHT JOIN classes ON students.class_id = classes.class_id;结果:nameclass_nameAliceMathematicsBobScienceNULLLiterature说明:返回 classes 表的所有记录。class_id = 104 的记录没有匹配的学生,name 为 NULL。总结表格操作返回的数据INNER JOIN两表中满足条件的匹配记录LEFT JOIN左表的所有记录 + 匹配的右表记录 (无匹配填 NULL)RIGHT JOIN右表的所有记录 + 匹配的左表记录 (无匹配填 NULL)这种不同的连接方式根据查询需求使用,可以灵活提取数据。索引定义:索引用于提高查询效率,可以在表的列上创建索引。类型:PRIMARY KEY(主键索引)、UNIQUE(唯一索引)、INDEX(普通索引)。创建与删除索引:使用CREATE INDEX和DROP INDEX语句。-- 创建索引 CREATE INDEX idx_name ON students (name); -- 查询使用索引 SELECT * FROM students WHERE name = '张三'; -- 删除索引 DROP INDEX idx_name ON students; 视图定义:视图是基于SQL查询结果的虚拟表,不存储实际数据。优点:简化复杂查询、提高数据安全性。创建与删除视图:使用CREATE VIEW和DROP VIEW语句。-- 创建视图 CREATE VIEW student_view AS SELECT name, age FROM students WHERE age >= 18; -- 查询视图 SELECT * FROM student_view; -- 删除视图 DROP VIEW student_view; 存储过程定义:存储过程是存储在数据库中的一组SQL语句,可以接收参数并执行复杂的逻辑。优点:提高代码重用性、封装逻辑、减少与数据库的交互次数。创建与调用存储过程:使用CREATE PROCEDURE和CALL语句。-- 创建存储过程 DELIMITER // CREATE PROCEDURE GetStudentByAge(IN min_age INT) BEGIN SELECT * FROM students WHERE age >= min_age; END // DELIMITER ; -- 调用存储过程 CALL GetStudentByAge(18);
2024年09月09日
53 阅读
1 评论
1 点赞
2024-03-06
数据库基本操作
以下是MySQL数据库操作的基本命令及其说明文档:连接到MySQL服务器:mysql -u username -p-u选项用于指定用户名。-p选项提示输入密码。创建数据库:CREATE DATABASE database_name;创建一个名为database_name的新数据库。使用数据库:USE database_name;切换到指定的数据库。查看所有数据库:SHOW DATABASES;显示MySQL服务器上的所有数据库列表。创建表:CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... );CREATE TABLE users ( id INT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE ); 创建一个名为table_name的新表,定义列名、数据类型和约束。查看表结构:DESCRIBE table_name;或SHOW COLUMNS FROM table_name;显示指定表的列名、数据类型和约束。插入数据:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);INSERT INTO users (username, email) VALUES ('tom', '10@163.com');向指定表中插入一条新记录。查询数据:SELECT column1, column2, ... FROM table_name WHERE condition;从指定表中检索数据,可以使用WHERE子句进行条件过滤。更新数据:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;更新表中已有的数据。删除数据:DELETE FROM table_name WHERE condition;从指定表中删除符合条件的数据。删除表:DROP TABLE table_name;删除指定的表及其所有数据。删除数据库:DROP DATABASE database_name;删除指定的数据库及其中的所有表和数据。退出MySQL命令行:EXIT;或QUIT;退出MySQL命令行客户端。主键(Primary Key)和唯一约束(UNIQUE Constraint)是用于确保数据表中数据唯一性的两种方式,但它们有一些重要的区别:唯一性保证:主键:主键是表中的一列或一组列,其值在整个列中必须是唯一的,即不允许有重复值存在。每个表只能有一个主键,且主键列不能为空(NOT NULL)。唯一约束:唯一约束也确保列中的值是唯一的,但与主键不同的是,唯一约束可以应用于表中的多个列,而且可以允许空值。索引:主键:主键自动创建一个唯一性索引,以加速数据检索和唯一性检查。唯一约束:唯一约束也创建唯一性索引,但它允许多个NULL值。如果唯一约束应用于多个列,那么这些列的组合值必须是唯一的。用途:主键:主键通常用作表中的唯一标识符,用于唯一地标识每一行数据。唯一约束:唯一约束用于确保列中的值在整个表中是唯一的,但不一定是用作表的标识符。综上所述,主键和唯一约束都用于确保表中的数据唯一性,但它们的约束和用途略有不同。主键是唯一标识表中每个行的列或列组合,而唯一约束只是确保列中的值是唯一的,不一定是用作标识符。
2024年03月06日
80 阅读
0 评论
1 点赞
2024-03-03
操作数据表格练习
操作数据表格练习表格名称:学生成绩表属性类型可选项默认值ID数字主键NULL学生姓名字符串不为空NULL班级字符串不为空NULLmôn字符串不为空NULL成绩数字不为空NULL步骤一:创建表格在数据库管理系统中创建新的表格。根据上表结构的字段和类型创建表格。步骤二:录入数据在表格中录入学生姓名、班级、 môn和成绩。角色为每列添加适当的约束,例如:主键约束、唯一约束等。验证录入的数据是否符合要求。示例数据:ID学生姓名班级môn成绩1李华1班语文902张华2班数学853王小明1班地理95练习任务:根据上面的表格结构,创建并实现一个数据库表格。在表格中录入至少 5 名学生的成绩。验证录入的数据是否符合要求。注意事项:使用合适的数据类型。添加适当的约束和索引。注意数据完整性和一致性。
2024年03月03日
42 阅读
0 评论
0 点赞