发帖
 找回密码
 立即注册
搜索
0 0

分享 第十一课 数据库基础

技术分享 968 0 2025-3-30 20:58:43
1. 课程内容概要(简要概括本次课程的主要内容,不需要太详细,但要能快速回忆起本节课的知识点)

        主要知识点1:数据库安装及命令操作





2.重点知识与细节(针对本节课的核心内容进行详细记录,包含公式、代码、重要原理等)
开启外联命令


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; flush privileges;


数据库管理软件
navicat

sqlynx


逻辑运算符
and 与

or   或
not  非



语句
create database yijin; #创建数据库drop database yijin; #删除数据use yijin; #使⽤数据
create table test(id INT(8),pass CHAR(255)); #创建数据表drop table test; #删除数据表
#插⼊数据
insert into test (id,pass) values(1,"admin");
insert into test values(2,"demo"); insert into test values(2,"demo",3); insert into test(id,pass) values(2);
insert into test (id,pass) values(3,"1admin"); insert into test (id,pass) values(4,"1dmin"); insert into test (id,pass) values(5,"config"); insert into test (id,pass) values(6,"11config");
#查询
SELECT column1, column2, ... FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]] [LIMIT number];
#查询指定字段
select pass from test;



select pass from yijin.test;
#查询所有字段信息select * from test;
#简单指定条件查询
select * from test where id=2; select * from test where pass="505";
#组合条件查询
select * from test where id=1 and pass="admin"; #and:需要同时满⾜左右两边的条件,才能够得到对应结果
select * from test where id=1 or pass="505"; #or:只需要满⾜任意⼀个条件,就可以执⾏得到结果#order by 排序
select * from test ORDER BY pass ;#默认升序
select * from test ORDER BY pass DESC;#降序select * from test ORDER BY 1;
select * from test ORDER BY 2;
select * from test ORDER BY 3; #可以⽤于渗透测试中,对于服务器数据表字段的猜测#limit 数据分⻚
select * from test limit 0,3;
select * from test limit 1,3; #⽤于对数据进⾏分⻚select * from test limit 2,3; #⽤于对数据进⾏分⻚
#添加字段
alter table test add user char(255);
alter table test add patch char(255),add img char(255); insert into test(id,pass,user) values(2,"demo","hello");#追加
#更新数据 `UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;` update test set user="xiaoqiang" where id=3 and pass="1admin";
#删除数据`DELETE FROM 表名 WHERE 条件;` delete from test where user="hello";
#ascii
select ascii(1); select ascii("A"); select ascii("a"); select ascii("'"); select ascii('"'); select ascii("!");
#length
select length("abcdefg"); #concat
SELECT CONCAT(1,2,3,4);
SELECT CONCAT((SELECT pass from test WHERE id = 5),1); #substr
SELECT SUBSTR("hello world!!",1,10);
SELECT SUBSTR("hello world!!",3,5);
#sleep
SELECT SLEEP(5); SELECT SLEEP(10);
#其他函数SELECT USER();
SELECT DATABASE(); SELECT VERSION();




MySQL 命令⼤全
基础命令

操作 命令
连接到 MySQL 数据库 mysql -u ⽤户名 -p
查看所有数据库 SHOW DATABASES;
选择⼀个数据库 USE 数据库名;
查看所有表 SHOW TABLES;
查看表结构 DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名;
创建⼀个新数据库 CREATE DATABASE 数据库名;
删除⼀个数据库 DROP DATABASE 数据库名;
创建⼀个新表 CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...);
删除⼀个表 DROP TABLE 表名;
插⼊数据 INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
查询数据 SELECT 列1, 列2, ... FROM 表名 WHERE 条件;
更新数据 UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
删除数据 DELETE FROM 表名 WHERE 条件;
创建⽤户 CREATE USER '⽤户名'@'主机' IDENTIFIED BY '密码';
授权⽤户 GRANT 权限 ON 数据库名.* TO '⽤户名'@'主机';
刷新权限 FLUSH PRIVILEGES;
查看当前⽤户 SELECT USER();
退出 MySQL EXIT;




操作 命令
创建数据库 CREATE DATABASE 数据库名;
删除数据库 DROP DATABASE 数据库名;
修改数据库编码格式和排序规则ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 编码格式 DEFAULT COLLATE排序规则;
查看所有数据库 SHOW DATABASES;
查看数据库详细信息 SHOW CREATE DATABASE 数据库名;
选择数据库 USE 数据库名;
查看数据库的状态信息 SHOW STATUS;
查看数据库的错误信息 SHOW ERRORS;
查看数据库的警告信息 SHOW WARNINGS;
查看数据库的表 SHOW TABLES;
查看表的结构 DESC 表名; DESCRIBE 表名; SHOW COLUMNS FROM 表名; EXPLAIN 表名;
创建表 CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...);
删除表 DROP TABLE 表名;
修改表结构 ALTER TABLE 表名 ADD 列名 数据类型 [约束]; ALTER TABLE 表名 DROP 列名; ALTER TABLE 表名 MODIFY 列名 数据类型 [约束];
查看表的创建 SQL SHOW CREATE TABLE 表名;




操作
命令
创建表
CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...);
删除表
DROP TABLE 表名;
修改表结
添加列: ALTER TABLE 表名 ADD 列名 数据类型 [约束]; 删除列: ALTER TABLE 表名 DROP 列名;修改列: ALTER TABLE 表名 MODIFY 列名 数据类型 [约束]; 重命名列: ALTER TABLE 表名


CHANGE 旧列名 新列名 数据类型 [约束];
查看表结构DESC 表名; DESCRIBE 表名; SHOW COLUMNS FROM 表名; EXPLAIN 表名;
查看表的创建SQLSHOW CREATE TABLE 表名;
查看表中的所有数据SELECT * FROM 表名;
插⼊数据 INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
更新数据 UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
删除数据 DELETE FROM 表名 WHERE 条件;
查看表的索引SHOW INDEX FROM 表名;
创建索引 CREATE INDEX 索引名 ON 表名 (列名);
删除索引 DROP INDEX 索引名 ON 表名;
查看表的约束SHOW CREATE TABLE 表名; (约束信息会包含在创建表的 SQL 中)
查看表的统计信息SHOW TABLE STATUS LIKE '表名';


操作 命令
开始事务 START TRANSACTION; 或 BEGIN;
提交事务 COMMIT;
回滚事务 ROLLBACK;
查看当前事务的状态SHOW ENGINE INNODB STATUS; (可查看 InnoDB 存储引擎的事务状态)
锁定表以进⾏事务操作LOCK TABLES 表名 WRITE; 或 LOCK TABLES 表名 READ;
释放锁定的表 UNLOCK TABLES;
设置事务的隔离级别SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;


作业

一、 什么是数据库?为什么使用数据库?
存放数据的仓库被称为数据库,

  • ‌数据组织与管理‌:数据库系统能够有效地组织和管理大量数据,使数据存储更加系统化和结构化。通过使用表、视图、索引等数据结构,数据库使得数据的存储和检索更加高效‌
  • ‌数据安全性‌:数据库系统通过用户权限管理、数据加密、访问控制等手段,确保数据的安全性。例如,可以为不同的用户分配不同的访问权限,防止未经授权的访问‌

  • ‌数据一致性‌:数据库通过事务管理、约束条件、触发器等机制,确保数据在任何时刻都是准确和可靠的。事务是一组要么全部执行、要么全部不执行的操作,通过事务管理,可以确保在并发操作的情况下,数据的一致性不会被破坏‌。


  • ‌数据共享与协作‌:数据库系统支持多个用户同时访问和操作数据,实现数据的共享与协作。通过锁机制等并发控制机制,确保多个用户同时操作数据时的一致性和完整性‌

  • ‌数据备份与恢复‌:数据库系统提供了强大的备份与恢复功能,确保数据在发生意外时能够迅速恢复。通过定期备份和快速恢复,最大限度地减少数据丢失和停机时间‌

  • ‌高效的数据访问‌:数据库系统通过索引、哈希等数据结构,实现对数据的快速访问,大大提高了数据访问的效率‌。

  • ‌数据查询和分析‌:数据库系统提供了强大的查询和分析功能,使得用户可以快速地从大量数据中提取有价值的信息。通过结构化查询语言(SQL),用户可以方便地进行数据查询、更新和删除操作‌










二、 实操题。用命令的方式新建一个学生信息表。数据库名为xuesheng。表名为xuesheng_user。表中的字段为 id ,username , phone , address ,age。其中id类型为int设置为主键,自增,不能为空的约束条件,username、address为字符串设置不能为空的约束条件。Phone设置为int设置不能为空的约束条件。Age设置为int 不能为空的条件。(命令截图)
三、 基于上面的数据库,新增一个int类型chengji的字段设置不能为空的约束条件。然后在表中插入以下数据
Username = 张三   phone = 13888888888   address= 福建  age = 18  chengji = 0
(步骤命令截图)


──── 0人觉得很赞 ────

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明:
1、本论坛中所有用户发布的内容仅代表作者个人观点,与本网站立场无关,本站不对其真实性、完整性或观点承担任何责任。
2、本论坛所提供的全部信息与内容,不保证其准确性、完整性或时效性。因阅读或使用本站内容而产生的任何误导、损失或风险,本站概不承担任何连带或法律责任。
3、当国家司法、行政机关依照法定程序要求本论坛披露用户信息时,本站予以配合并因此免责。
4、因网络线路故障、技术问题、不可抗力或本站无法控制的其他原因导致的服务中断或暂停,本站不承担由此造成的任何直接或间接损失。
5、对于任何通过技术手段破坏、攻击本论坛系统或扰乱正常秩序的行为,本站有权采取包括但不限于限制账号、封禁账号、追究法律责任等措施。
您需要登录后才可以回帖 立即登录
高级模式
返回