SQL-DDL语句DQL语句

news2024/11/14 10:22:16

SQL学习笔记

DDL语句--操作数据表

/*
    快捷键:
        insert键              在插入 和 替换模式之间切换
        ctrl + 字母z          撤销上一步操作
        tab                  往后缩进(默认4个空格)
        shift + tab          往前缩进(默认4个空格)
        ctrl + alt + 字母L    格式化(对其)代码
*/
# 场景3: DDL操作 数据表
# 1. 创建day02数据库
create database day02;
# 2. 切换到day02数据库.
use day02;
# 3. 查询指定数据库下, 所有的数据表.
show tables;

# 扩展:
#   计算机存储数据(编码): '中' => 十进制的整数, 例如: 55653 => 转成二进制, 例如: 0b00110110 => 存储到计算机中.
#   计算机读取数据(解码): 读取二进制 => 转成十进制 => 找到对应的字符 => 显示
#   问题: '中' 这个字符 应该对应哪个数字呢? 码表说了算, 即: 码表就是维护 字符 和 数字之间的关系的.
#   结论: GBK主要针对于国内, UTF-8是国际通用码表, 也叫万国码.

# 4. 查看指定表的信息.
# 4.1 查看数据表的码表等信息(没什么用, 了解)
show create table student;

# 4.2 查看具体表的信息.
desc student;       -- 查看表结构信息.


# 5. 创建数据表.
/*
    格式:
        create table 表名 (
            字段名1 数据类型 [约束],
            字段名2 数据类型 [约束],
            字段名3 数据类型 [约束]
        );
    格式解释:
        字段名:  方便我们快速查找某列数据的, 一般要做到: 见名知意.
        数据类型: 标记着这一列能放什么形式的数据, 例如: 整数, 小数, 时间格式, 字符串等等...
            常用的数据类型(目前先了解, 稍后解释):
                整数: int,
                字符串: varchar(长度), 长度的意思是, 这里可以存多少个字符.      '张', '三', '0'等都是1个字符,  '张三' 就是字符串.
        约束:    这里的[]表示可选项, 它(约束)是基于数据类型之外, 加强的规范和规则.
*/
# 需求: 创建学生表, 字段有: 学生编号, 姓名, 性别, 详细信息(describe)
create table if not exists student
(
    id     int not null, # 字段名:id, 整数类型, 约束: 非空约束
    name   varchar(20),  # 字段名: name, 字符串类型, 无约束.
    gender varchar(10),   # 字段名: gender, 字符串类型, 无约束
    `desc` varchar(20)      # 细节: 如果非得要用关键字做字段名, 记得用``包裹该词, 这样它就是1个普通的字符串了.
);

# 6. 修改数据表,  即: 修改表名, 格式为: rename table 旧表名 to 新表名;
rename table student to stu;

# 7. 删除数据表. 格式: drop table 数据表名;
drop table stu;

数据类型和约束介绍

  • 数据类型

    用来限定该列值的类型的, 即: 能存什么样的数据, 不能存什么样的数据.

    常用的数据类型有:

    • 整数: int

    • 字符串: varchar(长度)

    • 日期: datetime

    • 枚举: enum

  • 约束

    就是在数据类型的基础上, 额外增加的规则.

    常用的约束:

    • 单表约束

      • 主键约束: primary key, 默认: 非空, 唯一. 一般要结合自增(auto_increment)一起使用.

      • 非空约束: not null

      • 唯一约束: unique

      • 默认约束: default

    • 多表约束

      • 外键约束

        • foreign key, 有外键列的表叫: 外表, 有主键列的表叫主表.

        • 特点: 外表的外键列不能出现主表的主键列没有的数据.

  • 结论

    数据类型和约束保证了表中数据的准确性和完整性.

DDL语句--操作字段

# ------------------------------------------- 以下内容是DDL操作 字段 -------------------------------------------
# 场景3: DDL操作 字段
# 1. 查看(某表的)所有的字段信息.
desc student;

# 2. 添加列. 添加地址列, address varchar(30) 非空约束
# 格式: alter table 表名 add 字段名 数据类型 [约束];
alter table student add address varchar(30) not null;

# 3. 修改列.
# 3.1 修改address列的 数据类型为 int
# 格式: alter table 表名 modify 字段名 数据类型 [约束];
alter table student modify address int;     -- 细节: 因为没写非空约束, 所以约束没了.

# 3.2 修改address列的名字为 addr, 类型为 date, 非空约束.
# 格式: alter table 表名 change 旧字段名 新的字段名 数据类型 [约束];
alter table student change address addr date not null;

# 4. 删除列.
# 格式: alter table 表名 drop 字段名;
alter table student drop addr;      -- 删除addr列
alter table student drop `desc`;      -- 删除desc列

# 简化记忆格式:
# alter table 表名 add/modify/change/drop 字段名 [新的字段名] 数据类型 约束;

DML--操作表数据

# DML语句, 主要是对表数据进行更新操作的, 更新操作 = 增, 删, 改.
# 快捷键: alt + shift + ↑/↓    代码的上下移动
# 快捷键: shift + 回车          快速向下插入一行
# ----------------------------------以下是DML语句之 添加表数据 ----------------------------------
# 1. 切库.
use day02;
# 2. 查看数据表.
show tables;
# 3. 查询表数据, 这个先了解, 稍后详解.
# 格式: select * from 表名;
select * from student;      # 查询表中所有的数据.

# 查看学生表的字段信息.
desc student;

# 4. 添加表数据, 方式1: 不指定字段, 添加一条.
# 格式: insert into 表名 value(值1, 值2, 值3...);      要求: 因为没有指定字段, 默认是全列名, 所以必须给每一列值赋值.
# 细节1: 值的个数 和 类型, 必须和 列的 个数和类型保持一致.
# 细节2: 数字可以直接写, 其它类型用引号包裹, 单双引号均可, 建议: 单引号.
insert into student value(1, '乔峰', '男');

# 5. 添加表数据, 方式2: 指定字段, 添加一条.
# 格式: insert into 表名(列名1, 列名2...) value(值1, 值2...);
insert into student(id, gender) value(2, '女');

-- 报错, 因为id列我们设置了非空约束, 因为只写了gender列, 所以只会给该列添加值, 其它的列会默认用null填充.
insert into student(id, gender) value(null, '女');     # 报错.

# 6. 添加表数据, 方式3: 不指定字段, 添加多条.
# 格式: insert into 表名 value(值1, 值2, 值3...), (值1, 值2, 值3...), (值1, 值2, 值3...);
insert into student value(1, '虚竹', '男'), (3, '段誉', '男');

# 7. 添加表数据, 方式4: 指定字段, 添加多条.
# 格式: insert into 表名(列名1, 列名2...) value(值1, 值2...), (值1, 值2...), (值1, 值2...);
insert into student(id, gender) values(4, '保密'), (5, '萨瓦迪卡');

总结(细节)

  1. 如果不指定字段, 则默认是全列名.

  2. 无论是否指定字段, value后边写的值的个数和类型, 必须和字段的个数和类型保持一致

一定一定要写where条件, 否则是修改所有.

# ---------------------以下是DML语句之 修改表数据 ----------------------
# 非常非常非常重要的内容, 一个老屌丝的含泪忠告, 当你在进行删除或者修改操作的时候, 一定一定一定要加where条件.
# 格式: update 表名 set 列名1=值1, 列名2=值2 where 条件;
# 需求: 修改id为2的数据, 姓名为: 许文杰, 男
update student set name='许文杰', gender='男' where id=2;

# 这个动作看看就行了, 很危险, 别碰.   因为没有写where, 会一次性修改表中所有的数据.
update student set name='许文杰', gender='男';

select * from student;

一定一定要写where条件, 否则是删除所有.

# ---------------------以下是DML语句之 删除表数据 ------------------------------
# 格式: delete from 表名 where 条件;
# 细节: 不能值删除某个字段的值, 是以 行为单位进行删除的.
delete from student where id=1;     # 删除id=1的数据.
delete from student where id>=3;     # 删除id 大于3的数据.

# 这个动作看看就行了, 很危险, 别碰.   因为没有写where, 会一次性修改表中所有的数据.
delete from student;

SQL约束--增强

主键约束

/*
    约束:
        概述/作用:
            是基于数据类型之上, 对某列的数据做要求的, 保证数据的完整性和安全性.
        分类:
            单表约束:
                主键约束    primary key
                    特点:
                        非空, 唯一, 一张表中, 主键列最多只能有1列.
                        一般要结合 自增(自动增长, auto_increment)一起使用.
                非空约束
                    not null
                唯一约束
                    unique
                默认约束
                    default
            多表约束:
                主外键约束,  foreign key
*/
# 1. 创建员工表 employee, 字段: 员工id(主键), 姓名, 性别, 工资, 部门
# 为了防止建表的时候, 建错库, 要么记得use 切库, 要么写: 数据库名.数据表名
create table if not exists day02.employee(
    id int primary key ,        # 员工id(主键)
    name varchar(20),           # 姓名
    gender varchar(10),         # 性别
    salary decimal(5, 3),       # 工资
    dept varchar(10)            # 部门
);

# 2. 设置id列为主键列.
# 2.1 方式1: 创建表的时候, 直接设置主键.
# 参考上述代码.

# 2.2 方式2: 创建表之后, 设置主键.
# 格式: alter table 表名 add primary key(主键列);
alter table day02.employee add primary key(id);
alter table day02.employee add primary key(name);       # 报错, 一张表主键只能有1个.

# 3. 往员工表中添加表数据.
insert into employee value(1, '乔峰', '男', 66.123, '丐帮');
# insert into employee value(1, '洪七公', '男', 33.33, '丐帮');     # 报错, 主键必须唯一.
# insert into employee value(null, '洪七公', '男', 33.33, '丐帮');    # 报错, 主键不能为空.
insert into employee value(2, '洪七公', '男', 33.33, '丐帮');
insert into employee value(4, '黄蓉', '女', 55.33, '丐帮');

# 4. 查询结果.
select * from day02.employee;

# 5. 查看表结构.
desc day02.employee;

-- 6. 删除主键.
alter table day02.employee drop primary key ;
alter table day02.employee modify id int;

-- 7. 实际开发中, 主键约束一般要结合自动增长(auto_increment)一起使用, 因为主键仅仅是1个标记, 标记着这条数据的唯一性, 不参与业务.
drop table day02.employee;

create table if not exists day02.employee(
    id int primary key auto_increment,        # 员工id(主键)
    name varchar(20),           # 姓名
    gender varchar(10),         # 性别
    salary decimal(5, 3),       # 工资
    dept varchar(10)            # 部门
);

# 查询表数据
select * from day02.employee;

# 有了自增后, 主键添加数据的方式如下, 只要传入null即可, 至于具体的数字是谁, 程序(计算机)会自动生成.
insert into employee value(1, '乔峰', '男', 66.123, '丐帮');
insert into employee value(null, '洪七公', '男', 33.33, '丐帮');    # 不报错, 有自增, 主键会自动生成.

insert into employee value(1, '洪七公', '男', 33.33, '丐帮');     # 报错, 主键必须唯一.

# 细节: 此时删除了id 为 5的数据, 之后再填加数据, 主键从几开始.
delete from day02.employee where id = 5;

# 扩展: delete from 和 truncate table 之间的区别是什么?
# delete from 会清除表数据, 不会重置主键id. 属于DML语句, 一般可以结合事务一起使用.
delete from day02.employee;

# truncate table 会清除表数据, 会重置主键id, 相当于把表摧毁了, 然后创建一张和该表一模一样的表. 属于DDL语句.
truncate table day02.employee;      -- 这个table可以省略.

 约束总结

   

/*
    约束:
        概述/作用:
            是基于数据类型之上, 对某列的数据做要求的, 保证数据的完整性和安全性.
        分类:
            单表约束:
                主键约束    primary key
                    特点:
                        非空, 唯一, 一张表中, 主键列最多只能有1列.
                        一般要结合 自增(自动增长, auto_increment)一起使用.
                非空约束
                    not null
                唯一约束
                    unique
                默认约束
                    default
            多表约束:
                主外键约束,  foreign key
*/
# 1. 创建员工表 employee, 字段: 员工id(主键), 姓名, 性别, 工资, 部门
# 为了防止建表的时候, 建错库, 要么记得use 切库, 要么写: 数据库名.数据表名
create table if not exists day02.employee(
    id int primary key ,        # 员工id(主键)
    name varchar(20),           # 姓名
    gender varchar(10),         # 性别
    salary decimal(5, 3),       # 工资
    dept varchar(10)            # 部门
);

# 2. 设置id列为主键列.
# 2.1 方式1: 创建表的时候, 直接设置主键.
# 参考上述代码.

# 2.2 方式2: 创建表之后, 设置主键.
# 格式: alter table 表名 add primary key(主键列);
alter table day02.employee add primary key(id);
alter table day02.employee add primary key(name);       # 报错, 一张表主键只能有1个.

# 3. 往员工表中添加表数据.
insert into employee value(1, '乔峰', '男', 66.123, '丐帮');
# insert into employee value(1, '洪七公', '男', 33.33, '丐帮');     # 报错, 主键必须唯一.
# insert into employee value(null, '洪七公', '男', 33.33, '丐帮');    # 报错, 主键不能为空.
insert into employee value(2, '洪七公', '男', 33.33, '丐帮');
insert into employee value(4, '黄蓉', '女', 55.33, '丐帮');

# 4. 查询结果.
select * from day02.employee;

# 5. 查看表结构.
desc day02.employee;

-- 6. 删除主键.
alter table day02.employee drop primary key ;
alter table day02.employee modify id int;

-- 7. 实际开发中, 主键约束一般要结合自动增长(auto_increment)一起使用, 因为主键仅仅是1个标记, 标记着这条数据的唯一性, 不参与业务.
drop table day02.employee;

create table if not exists day02.employee(
    id int primary key auto_increment,        # 员工id(主键)
    name varchar(20),           # 姓名
    gender varchar(10),         # 性别
    salary decimal(5, 3),       # 工资
    dept varchar(10)            # 部门
);

# 查询表数据
select * from day02.employee;

# 有了自增后, 主键添加数据的方式如下, 只要传入null即可, 至于具体的数字是谁, 程序(计算机)会自动生成.
insert into employee value(1, '乔峰', '男', 66.123, '丐帮');
insert into employee value(null, '洪七公', '男', 33.33, '丐帮');    # 不报错, 有自增, 主键会自动生成.

insert into employee value(1, '洪七公', '男', 33.33, '丐帮');     # 报错, 主键必须唯一.

# 细节: 此时删除了id 为 5的数据, 之后再填加数据, 主键从几开始.
delete from day02.employee where id = 5;

# 扩展: delete from 和 truncate table 之间的区别是什么?
# delete from 会清除表数据, 不会重置主键id. 属于DML语句, 一般可以结合事务一起使用.
delete from day02.employee;

# truncate table 会清除表数据, 会重置主键id, 相当于把表摧毁了, 然后创建一张和该表一模一样的表. 属于DDL语句.
truncate table day02.employee;      -- 这个table可以省略.

# ----------------------------------------- 单表约束总结 -----------------------------------------
# 创建英雄表hero, 字段: id, 姓名, 技能, hp血量, mp蓝量
create table hero(
    id int primary key auto_increment,      # 主键, 自增
    name varchar(20) unique ,               # 姓名, 唯一约束
    skill varchar(20) not null unique,      # 技能, 伪主键(即: 非空 + 唯一)
    hp int default 100,                     # 血量, 默认是100
    mp int default 10                       # 蓝量, 默认是10
);

# 添加数据.
insert into hero(id, name, skill) value(null, '典韦', '疯魔');      # 测试 默认约束.
insert into hero value(null, '典韦', '吸血', 6666, 20);             # 报错, 姓名要求唯一.
insert into hero value(null, '典韦2', '疯魔', 6666, 20);            # 报错, 技能要求唯一.
insert into hero value(null, '典韦2', null, 6666, 20);             # 报错, 技能要求不能为空.

insert into hero value(null, '吕布', '天魔乱舞', 10000, 0);

# 查询表数据.
select * from hero;

DQL语句

简单查询

# DQL语句主要是针对于 表数据 进行查询操作的.
# 0. 准备数据, 即, 直接执行如下的内容即可, 这样就有表以及数据了.
use day02;
# 创建表
CREATE TABLE product        # 商品表
(
    pid         INT PRIMARY KEY,        # 商品id, 主键.
    pname       VARCHAR(20),            # 商品名
    price       DOUBLE,                 # 价格, 小数
    category_id VARCHAR(32)             # 商品所属的类别id
);
# 插入记录
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,null);
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'海澜之家',1,'c002');
# ---------------------------------------- 以下是具体的查询动作 简单查询 ----------------------------------------
# 1. 查询数据表中所有的数据, 格式: select * from 表名;
select pid, pname, price, category_id from product;     # 查询所有的列
select * from product;      # 如果查询的是所有的列, 则: 可以用*替代所有的列名.
# 2. 获取所有商品的名称和价格
select pname,price from product;
# 3. 获取所有商品的名称和电商价(电商价 = 价格 + 10), 数值列可以直接运算.
select pname,price + 10 from product;
# 4. 给列起别名, 注意: 别名只是为了查询方便做的, 表中真实的列名并没有被修改.
# 格式: as 别名,  且 as 可以省略不写.
select pname as '商品名称',price + 10 as '我是修改后的价格' from product;
select pname '商品名称',price + 10  '我是修改后的价格' from product;        --  as 可以省略不写

条件查询

# ---------------------------------------- 以下是具体的查询动作 条件查询 ----------------------------------------
/*
    DQL中的条件查询指的是 where条件, 即: 写了where之后, 只会筛选出我们要的数据.

    格式:
        select * from 表名 where 条件;

    where后边可以写:
        1. 比较运算符
        2. 逻辑运算符
        3. 模糊查询
        4. 范围查询
        5. 空判断
 */
# 需求0: 查询所有.
select * from product;

# 需求1. 比较运算符, 查询id是偶数的数据.
# 比较运算符: >, >=, <, <=, =, !=
select * from product where pid % 2 = 0;

# 查询id不为3的数据.
select * from product where pid != 3;

# 需求2. 逻辑运算符
# and(逻辑与, 并且的意思, 要求条件都要满足), or(逻辑或, 或者的意思, 只要满足任意1个条件即可), not(取反的意思),  这三个运算符都要和 真(true), 假(false) 一起使用.
# 查询售价在 1000以上 且 分配id是c001的商品.
select * from product where price > 1000 and category_id = 'c001';

# 查询分类id是c001 或者 c003的商品信息.
select * from product where category_id = 'c001' or category_id = 'c003';

# 需求3. 模糊查询, 格式: like '内容',  _ 表示1个占位符,  %表示多个占位符
# 查找以 香开头的商品名.
select * from product where pname like '香_';    # _表示1个占位符, 所以这里只能匹配 香后边跟1个字的.
select * from product where pname like '香%';    # %表示多个占位符, 所以这里是 以香开头, 后边是啥无所谓.
select * from product where pname like '%香%';   # 只要包含香字即可.
select * from product where pname like '%霸';   # 以 霸 结尾的.

# 需求4. 范围查询, between ... and ...
# 固定区间: 查找价格区间在 200 ~ 5000之间的商品信息.
select * from product where price >= 200 and price <= 5000;     # 比较运算符.
select * from product where price between 200 and 5000;         # 范围查询, 包左也包右.

# 不固定区间, 查找pid为3, 5, 6的数据.
select * from product where pid = 3 or pid = 5 or pid = 6;      # 比较运算符.
select * from product where pid in (3, 5, 6);                   # 范围查询.
select * from product where pid not in (3, 5, 6);               # 范围查询.


# 需求5. 空判断, is null,  is not null
# 查找 分类id 为null的数据.
select * from product where category_id is null;

# 查找 分类id 不为null的数据.
select * from product where category_id is not null;

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

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

相关文章

SpringBoot配置文件和日志

目录 SpringBoot配置文件 SpringBoot配置文件的作用 项目中的重要数据写在配置文件当中 降低代码耦合 SpringBoot配置文件的格式 properties配置文件 读取配置文件中的内容&#xff08;Value注解使用${}格式读取&#xff09; properties优缺点 yml配置文件 yml特…

ChatGPT官方APP正式发布!附安装使用教程

目录 前言 APP功能演示 1.与机器人聊天&#xff0c;询问问题 2.语音输入&#xff0c;人机交互 3.聊天历史&#xff0c;新建聊天分组 安装教程 1.下载应用 2.登录账号 3.愉快的玩耍吧 总结 写到最后 大家好&#xff0c;我是大侠&#xff0c;AI领域的专业博主 前言 …

Docker安装常用软件-Kafka集群

零、为了方便开发调试&#xff0c;使用kafka部署一套kafka环境&#xff0c;进行功能调试&#xff0c;方便快捷 一、部署zookeeper 1、下载镜像 docker pull wurstmeister/zookeeper 2、运行zookeeper镜像 docker run -d --restartalways --log-driver json-file --log-op…

(转载)从0开始学matlab(第10天)—自顶向下的编程思想

在前面的内容中&#xff0c;我们开发了几个完全运转的 MATLAB 程序。但是这些程序都十分简单&#xff0c;包括一系列的 MATLAB 语句&#xff0c;这些语句按照固定的顺序一个接一个的执行。像这样的程序我们称之顺序结构程序。它首先读取输入&#xff0c;然后运算得到所需结果&a…

QT学习记录(三)绘图

按照下面两个教程学习 QT学习教程&#xff08;全面&#xff09;_Strive--顾的博客-CSDN博客_qt学习 天山老妖S的博客_QT开发(3)_51CTO博客 1、绘图 VC项目右键增加QT GUI Class&#xff0c;在QT Designer中编辑DlgDraw.ui 在DlgDraw中重载函数 void DlgDraw::paintEvent(Q…

Flutter控件之图片Image封装

Flutter控件之基类Widget封装 Flutter控件之文本Text封装 为什么要进行繁琐的封装&#xff1f;直接用也挺好啊&#xff0c;这个回答一点毛病没有&#xff0c;大部分视图都可以原生绘制&#xff0c;可在Flutter中偏偏原生的控件&#xff0c;少了很多需要又常用的属性&#xff…

最小生成树—Kruskal算法和Prim算法

1.最小生成树 连通图&#xff1a;在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则称顶点v1与顶点v2是连通的。如果图中任 意一对顶点都是连通的&#xff0c;则称此图为连通图。 生成树&#xff1a;一个连通图的最小连通子图称作该图的生成树。有n个顶点的连通…

Java基础-面向对象总结(3)

本篇文章主要讲解Java面向对象的知识点 面向对象的三大特性类的扩展(抽象类,接口,内部类,枚举) 目录 面向对象和面向过程的区别? 面向对象的五大基本原则 面向对象三大特性 继承 怎么理解继承 ? 继承和聚合的区别&#xff1f; 封装 多态 什么是多态 什么是运行时多…

面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生

测试员可以先在大厂镀金&#xff0c;以后去中小厂毫无压力&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓大厂镀金只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大厂出来…

MySQL数据库基础4-内置函数

文章目录 日期函数字符串函数数学函数其他函数 日期函数 函数名称描述current date()当前日期current time()当前时间current timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date add(date, interval d_value type)在date中添加日期或时间&#xff0c;interv…

GitHub Actions Error “Waiting for a runner to pick up this job”

GitHub Actions Error “Waiting for a runner to pick up this job” 什么是GitHub Actions GitHub Actions 是一个 CI/CD&#xff08;持续集成和持续部署&#xff09;平台&#xff0c;可以让您自动化工作流程并与 GitHub 存储库中的代码集成。使用 GitHub Actions&#xff…

智能排班系统 【数据库设计】

文章目录 数据库设计规范ER图物理模型数据表登录日志表操作日志表菜单表角色表企业表门店表省市区表门店节日表消息表职位表排班规则表排班任务表排班结果存储scheduling_date排班日表scheduling_shift排班班次表shift_user班次员工中间表 定时通知表用户表中间表role_menu角色…

适合小白的网络安全书籍推荐

学习的方法有很多种&#xff0c;看书就是一种不错的方法&#xff0c;但为什么总有人说&#xff1a;“看书是学不会技术的”。 其实就是书籍没选对&#xff0c;看的书不好&#xff0c;你学不下去是很正常的。 一本好书其实不亚于一套好的视频教程&#xff0c;尤其是经典的好书…

MATLAB系列(2)——plot画图函数

一、plot plot画的是折线图。plot可以画出多种线类型的图&#xff0c;比如实线、虚线、星线、圆圈线等,一个图里可以画多条折线&#xff0c;方便对比。 1.1 设置坐标轴标签 和 图名 使用xlabel 和ylabel&#xff0c;title设置图名&#xff0c;fontsize设置名字字体大小 1.2 …

Netty核心技术三--NIO编程

1. JAVA NIO基本介绍 Java NIO 全称 java non-blocking IO&#xff0c;是指 JDK 提供的新API。从 JDK1.4 开始&#xff0c;Java 提供了一系列改进的输入/输出的新特性&#xff0c;被统称为 NIO(即 New IO)&#xff0c;是同步非阻塞的 NIO 相关类都被放在 java.nio 包及子包下&…

【软件测试基础】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1、什么是软件测试(CASE) 1.1 软件测试就是验…

亲测解决:项目无法编译/打包,提示找不到符号的问题

我在对服务进行打包的过程中遇到了“Error…找不到符号”的问题&#xff0c;但是我的项目是能够正常启动的&#xff0c;为什么会出现这个问题呢&#xff1f; 有的博主说是因为我没有正常打包&#xff0c;然后我又学习了一遍如何对项目进行打包…但是然并卵&#xff08;然而并没…

【Java数据结构】——第十节(下).选择排序与堆排序

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;Java初阶数据结构 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目…

一文3000字从0到1手把手教你基于PostMan的接口自动化测试

临近下半年&#xff0c;公司任务也不是很多&#xff0c;趁这个机会老大让我研究了一下PostMan的脚本自动化测试。作为一个前端开发&#xff0c;说实话&#xff0c;对于PostMan的操作&#xff0c;仅仅限于新建请求->填写url地址和参数->send发送&#xff0c;然后看看返回值…

智能排班系统 【开源说明】

文章目录 引言说明讲讲开源开源要做什么了解开源协议项目的信息脱敏写好项目说明文档修改.gitignore 项目不完善点说明管理系统前端页面自适应做得不好部分页面体验不好 管理系统后端接口缺乏数据校验数据管理接口查询不够完善接口可以更加完善 开源仓库地址其他文章引用说明前…