公司网站如何建设教学视频2022年企业所得税政策
公司网站如何建设教学视频,2022年企业所得税政策,哪个网站做设计兼职不用压金,购物网站页面布局一、数据库基础概念
核心三概念 数据库#xff08;DB#xff09;#xff1a;存储数据的仓库#xff0c;数据有组织存储数据库管理系统#xff08;DBMS#xff09;#xff1a;操纵和管理数据库的大型软件SQL#xff1a;结构化查询语言#xff0c;操作关系型数据库的统…一、数据库基础概念核心三概念数据库DB存储数据的仓库数据有组织存储数据库管理系统DBMS操纵和管理数据库的大型软件SQL结构化查询语言操作关系型数据库的统一标准主流关系型 DBMS 及特点名称特点Oracle大型收费Oracle 公司产品MySQL开源免费中小型Sun 收购后被 Oracle 收购有社区版 / 商业版SQL Server微软收费中型适配 C#/.netPostgreSQL开源免费中小型DB2IBM 大型收费SQLite嵌入式微型Android 内置MariaDB开源免费中小型MySQL 衍生版兼容性好共性所有关系型 DBMS 均通过 SQL 统一操作二、MySQL 数据库基础操作一版本与下载版本社区版免费无技术支持、商业版收费30 天试用有技术支持课程采用 MySQL Community Server 8.0.26下载地址MySQL 官方归档地址https://downloads.mysql.com/archives/installer/二安装与配置安装步骤双击 MSI 安装包→选择安装类型Developer Default/Server only 等→检查并解决依赖→安装组件→产品配置核心配置设置端口默认 3306→设置 root 密码→配置 Windows 服务默认名 mysql80开机自启环境变量配置将 MySQL 安装目录下的bin目录添加到系统 Path 变量支持任意目录连接 MySQL三启动与停止以管理员身份执行 cmd 指令启动net start mysql80、停止net stop mysql80服务名可自定义四客户端连接方式 1MySQL 自带命令行工具直接输入密码连接方式 2系统 cmd 指令mysql [-h 主机IP] [-P 端口] -u 用户名 -p本地连接可省略 - h/-P五数据模型关系型数据库RDBMS基于二维表存储数据表由行和列组成可通过列关联其他表格式统一、SQL 操作标准MySQL 层级结构数据库服务器→多个数据库→每个数据库包含多张表→每张表包含多行记录操作逻辑客户端连接 DBMS→通过 DBMS 操作数据库→使用 SQL 操作表结构和数据三、SQL 基础一通用语法语句单行 / 多行书写以分号结尾可通过空格 / 缩进增强可读性MySQL 中 SQL 不区分大小写关键字建议大写注释单行-- 注释/# 注释多行/* 注释 */二SQL 分类分类全称功能DDL数据定义语言定义数据库对象数据库、表、字段DML数据操作语言增删改表中数据DQL数据查询语言查询表中记录DCL数据控制语言管理数据库用户、控制访问权限四、DDL数据定义语言一数据库操作查询所有数据库show databases;查询当前数据库select database();创建数据库create database [if not exists] 库名 [default charset 字符集];避免重复创建删除数据库drop database [if exists] 库名;避免删除不存在的库切换数据库use 库名;操作表前必须切换二表操作1. 基础查询与创建查询当前库所有表show tables;查看表结构desc 表名;查看建表语句show create table 表名;创建表create table 表名(字段1 类型 [comment 注释], ...) [comment 表注释];最后一个字段无逗号2. 数据类型1数值类型类型关键特点适用场景TINYINT1 字节支持无符号年龄tinyint unsignedINT/INTEGER4 字节常用整数类型编号、数量BIGINT8 字节极大整数大数值 IDFLOAT/DOUBLE浮点型精度不同分数double (4,1)DECIMAL高精度小数依赖 M/D金额、高精度数值2字符串类型类型特点适用场景CHAR定长性能高性别char (1)、手机号char (11)VARCHAR变长节省空间姓名varchar (50)、用户名TEXT/BLOB长文本 / 二进制数据大段内容、文件数据3日期时间类型类型格式适用场景DATEYYYY-MM-DD生日、入职日期DATETIMEYYYY-MM-DD HH:MM:SS创建时间、更新时间TIMEHH:MM:SS时间点YEARYYYY年份TIMESTAMPYYYY-MM-DD HH:MM:SS时间戳范围小1970-20383. 表结构修改添加字段alter table 表名 add 字段名 类型(长度) [comment 注释];修改数据类型alter table 表名 modify 字段名 新类型(长度);修改字段名 / 类型alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];删除字段alter table 表名 drop 字段名;修改表名alter table 表名 rename to 新表名;4. 表删除删除表drop table [if exists] 表名;清空并重建表truncate table 表名;数据全删不可恢复三图形化工具DataGrip安装双击 exe→选择安装目录→配置环境变量 / 快捷方式→完成安装使用添加数据源配置主机 / 端口 / 用户名 / 密码测试连接→创建 / 修改数据库 / 表→在 Query Console 编写执行 SQL五、DML数据操作语言一添加数据INSERT指定字段insert into 表名(字段1,字段2) values(值1,值2);所有字段insert into 表名 values(值1,值2,...);字段顺序与表结构一致批量添加insert into 表名(字段1,字段2) values(值1,值2),(值3,值4);注意字段与值顺序一致字符串 / 日期需加引号值在字段规定范围内二修改数据UPDATE语法update 表名 set 字段1值1,字段2值2 [where 条件];注意无 where 条件会修改整张表数据三删除数据DELETE语法delete from 表名 [where 条件];注意无 where 条件会删除整张表数据无法删除单个字段值可用 UPDATE 置为 NULL六、DQL数据查询语言一完整语法plaintextSELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数二基础查询查询指定字段select 字段1,字段2 from 表名;查询所有字段select * from 表名;开发中慎用不直观、效率低字段别名select 字段1 [as] 别名1 from 表名;as 可省略去重select distinct 字段列表 from 表名;三条件查询语法select 字段列表 from 表名 where 条件列表;常用比较运算符//////BETWEEN ... AND .../IN(...)/LIKE_匹配单个字符%匹配任意字符/IS NULL/IS NOT NULL常用逻辑运算符AND/OR||/NOT!四聚合函数概念将一列数据作为整体纵向计算NULL 不参与运算常用函数count()统计数量、max()最大值、min()最小值、avg()平均值、sum()求和语法select 聚合函数(字段列表) from 表名;count (*) 统计总记录数count (字段) 统计非 NULL 记录数五分组查询语法select 字段列表 from 表名 [where 条件] group by 分组字段 [having 分组后条件];where 与 having 区别执行时机where 分组前过滤having 分组后过滤判断条件where 不能使用聚合函数having 可以注意分组后查询字段通常为聚合函数 分组字段支持多字段分组group by 字段1,字段2六排序查询语法select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;排序方式ASC升序默认、DESC降序注意多字段排序时第一个字段值相同时按第二个字段排序七分页查询语法select 字段列表 from 表名 limit 起始索引,查询记录数;MySQL 方言计算起始索引 (页码 - 1)× 每页记录数注意查询第一页时起始索引可省略limit 10八执行顺序from → where → group by → having → select → order by → limit七、DCL数据控制语言一用户管理查询用户select * from mysql.user;HostUser 唯一标识用户localhost仅本机访问% 任意主机创建用户create user 用户名主机名 identified by 密码;修改密码alter user 用户名主机名 identified with mysql_native_password by 新密码;删除用户drop user 用户名主机名;二权限控制常用权限ALL所有、SELECT/INSERT/UPDATE/DELETE增删改查、ALTER修改表、DROP删除、CREATE创建查询权限show grants for 用户名主机名;授予权限grant 权限列表 on 库名.表名 to 用户名主机名;* 通配所有库 / 表撤销权限revoke 权限列表 on 库名.表名 from 用户名主机名;八、MySQL 常用函数一字符串函数函数功能CONCAT(s1,s2,...)字符串拼接LOWER(str)转小写UPPER(str)转大写LPAD(str,n,pad)左填充至 n 位RPAD(str,n,pad)右填充至 n 位TRIM(str)去除首尾空格SUBSTRING(str,start,len)截取子串二数值函数函数功能CEIL(x)向上取整FLOOR(x)向下取整MOD(x,y)取模RAND()生成 0~1 随机数ROUND(x,y)四舍五入保留 y 位小数三日期函数函数功能CURDATE()返回当前日期CURTIME()返回当前时间NOW()返回当前日期时间YEAR/DATE/MONTH(date)获取年 / 日 / 月DATE_ADD(date,INTERVAL expr type)日期加时间间隔DATEDIFF(date1,date2)计算两个日期相差天数四流程函数函数功能IF(value,t,f)条件判断true 返回 tfalse 返回 fIFNULL(v1,v2)v1 非空返回 v1否则返回 v2CASE WHEN val1 THEN res1 ELSE default END多条件判断CASE expr WHEN val1 THEN res1 ELSE default END表达式匹配判断九、约束一约束概述概念作用于表中字段的规则限制存储数据目的保证数据的正确性、有效性、完整性分类MySQL8.0.16 支持 CHECK二主键自增语法字段名 int AUTO_INCREMENT配合主键使用自动生成唯一 ID三外键约束概念让两张表建立连接子表外键关联主表主键添加外键创建表时create table 表名(字段名 类型, constraint 外键名 foreign key(外键字段) references 主表(主键字段));修改表时alter table 子表 add constraint 外键名 foreign key(外键字段) references 主表(主键字段);删除外键alter table 表名 drop foreign key 外键名;alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);外键删除 / 更新行为| 行为 | 说明 ||------|------|| NO ACTION/RESTRICT | 主表操作时子表有关联数据则禁止默认 || CASCADE | 主表操作时子表关联数据同步操作 || SET NULL | 主表操作时子表关联外键置为 NULL外键需允许 NULL || SET DEFAULT | 主表操作时子表外键置为默认值InnoDB 不支持 |语法alter table 子表 add constraint 外键名 foreign key(外键字段) references 主表(主键字段) on update 行为 on delete 行为;十、多表查询一多表关系一对多多对一如部门 - 员工多的一方建外键关联一的一方主键多对多如学生 - 课程建立中间表含两个外键分别关联两方主键一对一如用户 - 用户详情单表拆分一方外键关联另一方主键并设置UNIQUE二多表查询概述笛卡尔积多张表查询时的所有数据组合需通过连接条件消除无效笛卡尔积分类连接查询内连接、外连接、自连接、联合查询、子查询三连接查询1. 内连接查询两张表交集数据两种语法隐式内连接select 字段 from 表1,表2 where 连接条件;显式内连接select 字段 from 表1 [inner] join 表2 on 连接条件;表别名表名 别名简化 SQL别名生效后不可用原表名指定字段2. 外连接左外连接select 字段 from 表1 left [outer] join 表2 on 连接条件;查询左表所有数据 交集数据右外连接select 字段 from 表1 right [outer] join 表2 on 连接条件;查询右表所有数据 交集数据特点左 / 右外连接可相互替换只需调整表顺序3. 自连接概念一张表与自身连接查询必须使用表别名语法select 字段 from 表名 别名1 join 表名 别名2 on 连接条件;支持内连接 / 外连接如查询员工及其领导信息四联合查询UNION/UNION ALL语法将多次查询结果合并select 字段 from 表1 union [all] select 字段 from 表2;要求多张表查询的列数一致、字段类型一致区别UNION去重UNION ALL直接合并性能更高五子查询概念SQL 中嵌套 SELECT 语句外部语句可为 INSERT/UPDATE/DELETE/SELECT分类按结果类型1标量子查询结果为单个值常用操作符/////示例select * from emp where dept_id (select id from dept where name销售部);2列子查询结果为一列常用操作符IN/NOT IN/ANY/SOME/ALL示例select * from emp where salary all (select salary from emp where dept_id3);3行子查询结果为一行常用操作符//IN/NOT IN示例select * from emp where (salary,managerid) (select salary,managerid from emp where name张无忌);4表子查询结果为多行多列常用操作符IN示例select * from emp where (job,salary) in (select job,salary from emp where name in(鹿杖客,宋远桥));可作为临时表select e.* from (select * from emp where age30) e;十一、事务一事务概念一组操作的集合不可分割的工作单位操作要么同时成功要么同时失败解决问题避免多步操作中部分成功部分失败导致的数据不一致如转账MySQL 默认自动提交事务一条 DML 语句执行后立即提交二事务操作1. 方式 1修改自动提交行为查看自动提交select autocommit;1 为自动提交0 为手动设置手动提交set autocommit 0;提交事务commit;回滚事务rollback;2. 方式 2手动开启事务推荐开启事务start transaction;/begin;提交事务commit;所有操作成功时执行回滚事务rollback;操作失败时执行恢复到事务开始前状态三事务四大特性ACID原子性Atomicity不可分割要么全成要么全败一致性Consistency事务完成后数据保持一致状态隔离性Isolation事务在独立环境运行不受外部并发操作影响持久性Durability事务提交 / 回滚后数据修改永久生效四并发事务问题脏读一个事务读取到另一个事务未提交的数据不可重复读一个事务先后读取同一条记录两次数据不同因其他事务更新提交幻读一个事务按条件查询无数据插入时却发现数据已存在因其他事务插入提交五事务隔离级别四级隔离级别从低到高安全性提升性能降低操作语句查看隔离级别select transaction_isolation;设置隔离级别set [session/global] transaction isolation level 级别;session 仅当前会话global 全局