show engines 查询存储引擎
describe 数据表名 查看表结构,简写desc 查看单列 desc 数据表名 列名
modify 修改子句定义字段
show variables like “%char%”;------查看数据库编码
新建数据库
create database new_databases;
删除数据库
drop database new_database;
操作数据表
show tables;(需指定数据库,use 数据库)
show columns from 数据表 显示数据表属性,类型等其它信息
新建数据表
use new_databases; create table new_table( -> id int, -> username char(10));
if not exists 屏蔽错误
查询指定行 select * from 数据表 where 条件表达式
删除数据表
drop table new_table;
复制表
create table 数据表名
as like 源数据表名
不加as只是复制表的结构不复制内容
删除表
drop table 数据表名
删除多张数据表可用逗号“,”分隔
重命名表
rename table 源数据表名 to 新数据表名
可对多个数据表进行重命名,多个表之间用逗号“,”分隔
查看表数据
select * from 数据表
运算符
^开头
$结尾
mysql> select id=2,id,name,pwd from tb_admin;
±-----±—±----------±----+
| id=2 | id | name | pwd |
±-----±—±----------±----+
| 0 | 1 | mr | 111 |
| 1 | 2 | 肖承聪 | 222 |
| 0 | 3 | 张三 | 333 |
±-----±—±----------±----+
查看id等于2的,id等于2返回值为1,否则0
插入数据
- insert into 数据表 values(值1,值2…);-----------------------(完整插入)
insert into 数据表 (列1,列2…)values(值1,值2…);------------(部分插入)
insert into 数据表 (列1,列2,列3…)
values(值1,值1,值1)
,(值2,值2,值2)
,…
- insert into 数据表
set id=8,name=‘xiao’,pwd=888;-------------------(指定插入)
- 插入查询结果
insert into 数据库名.插入到的表
(列1,列2…)
select 列1,列2 from 插入到的表
修改数据
update 数据表 set 列=666 where 条件表达式
查询指定行 select * from 数据表 where 条件表达式
删除数据
delete from 数据表 where 条件表达式
truncate table 数据表名--------------清空数据表内容
更新数据
update new_table -> set id=2,username=“cat” -> where id =1;
数据查询
*代表所有列,可单独查列1,列2 之间用逗号隔开
查询一个数据表
select * from 数据表
查询表中的一列或多列
select 列1,列2 from 数据表
从一个表或者多个表获取数据
select 数据表1.列,数据表1.列,数据表2.列,数据表2.列 from 数据表1,数据表
查询指定数据
select * from 数据表 where 列=‘查询的内容’
select *from 表名 where 列 [not] in (元素1,元素2…)—not可选项 ,相反的意思
去空格查询
rtim
BETWEEN范围查询
select *from 数据表 where 列 [not] between 取值1 and 取值2
LIKE字符匹配查询
select * from 数据表 where 列 like ‘内容%’----------- %匹配一个或多个---------------- _匹配一个
IS NULL查询空值
select * from 数据表 where 列 is null
AND,OR多条件查询
select * from 数据表 where 条件1 and 条件2…-----需两个都满足
select * from 数据表 where 条件1 or 条件2…-----满足一个即可
DISTINCT去除结果中的重复行
select distinct 列 from 数据表
ORDER BY对查询结果排序
order by 字段名 [asc(升)|esc(降)]
GROUP BY 分组查询
in 查询(规定多值)=规定一个值
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,…);
LIMIT限制查询结果数量
select * from 数据表 order by id asc limit 3;
按照id 编号进行升序排序,显示前3条记录
select * from 数据表 order by id asc limit 1,2;
从编号1开始,查询两条记录
count()函数 查看()有多少记录
sum()函数 计算字段数值总和
avg( )函数 求表中某个字段取值的平均值
max()函数 求最大值
min()函数 最小值
连接查询
EXISTS 子查询 ,返回一个真假值,判断括号内的子查询是否真,真就执行外层查询
select *from 数据表 where exists (select * from 数据表 where id =27)
查询表中是否存在id值为27,存在则执行括号外层数据表内容
当exists与其它查询条件一起使用时,需使用and或者or来连接表达式exists关键字
UNION合并查询
select user from数据表1
union
select user from 数据表2---------------合并表1和表2user的内容去除重复值
union all 不去除重复项
定义表和字段的别名
为表取别名
select * from tb_program p where p.talk=‘PHp’;
tb_program表的别名为p;p.talk表示tb_program表中的talk字段
为字段取别名
select talk AS new from tb_program
正则表达式
字段名 regexp ‘匹配方式’
* 任意多少个
^开头
$结尾
. 匹配任意字符包括回车换行符
[字符集合] 匹配字符集中任意一个字符
[^字符集合] 匹配除字符集合以外的任意一个字符
s1|s2|s3 匹配s1,s2和s3中的任意一个字符串
+ 匹配多个该字符之前的字符,包括一个-----------‘j+a’;查询字段中a字符前面至少一个j字符的记录
字符串{n}匹配字符串出现n次
字符串{m,n}匹配字符串出现至少m次,最多n次
CREATE TABLE 时的 SQL PRIMARY KEY 约束
下面的 SQL 在 “Persons” 表创建时在 “P_Id” 列上创建 PRIMARY KEY 约束:
MySQL:CREATE TABLE Persons
( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (P_Id) )
SQL Server / Oracle / MS Access:CREATE TABLE Persons
( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
ALTER TABLE 时的 SQL PRIMARY KEY 约束
当表已被创建时,如需在 “P_Id” 列创建 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
如需命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
撤销 PRIMARY KEY 约束
如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
常用函数
备份数据库
备份一个数据库(终端操作无需进入mysql)
mysqldump -uroot -p dbname table1 table2…>BackuoName.sql
dbname:数据库的名称
table1和table2参数表示表的名称,没有该参数时将备份整个数据库
BackNme.sql 参数表示备份文件的名称,文件名前可加一个绝对路径
使用rot用户备份tes数据库下的studen表
mysqldump -uroot -p test student >D:\student.sql
备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 >BackName.sql
加上databases这个选项,后面可以加上很多数据库的名称
备份所有数据库
mysqldump -u root -p --all -databases >D:\all.sql
数据恢复
mysql -uroot -p [dbname]
dbname 参数表示数据库名称
指定数据库名,表示还原该数据库下的数据表,不指定数据库名时,表示还原特定一个数据库
mysql -u root -p
表的导入与导出
musqldump
mysqldump -u root -p --xml dbname table >D:/name.xml
将website数据库下的jsj表导出为xml格式到D盘,文件名为xsgl.xml
mysqldump -u root -p --xml website jsj >D:/xsgl.xml
mysql
mysql -u root -p -e “select * from 语句” dbname >D:/sfzh.txt
使用-e选项就可执行sql语句,select用来查询记录
mysql -u root -p -e “select * from sfzh” website >D:/sfzh.txt
可用mysql导出xml文件和htnl文件
mysql -u root -p --xml或html -e “select * from sfzh” website >D:/sfzh.txt
存储过程与存储函数
创建存储过程
create procedure proc_name ([proc_parameter[…]])
[characteristic…] routine_body
sp_name参数时存储过程的名称;proc_parameter 表示存储过程的参数列表;characteristic参数指定存储过程的特性;routine_body 参数时sql代码的内容,可以用begin…end来标识sql代码的开始和结束。
proc_parameter中的参数由3部分组成,它们分别时输入输出类型,参数名称和参数类型。其中形式为[in | out | inout ]param_name type。param_name 参数时存储过程的参数名称;type参数指定存储过程的参数类型,可以为mysql数据库的任意类型。
mysql存储过程的语句块以begin开始,以end结束。内部以分号结束,分号“;”应更改为其它字符,更改结束标志可以用关键字delimiter定义,例如:将myql结束符设置为//
- mysql>delimiter //
定义一个输出变量count_num,存储过程应用select语句从jsj表中获取记录总数,最后将结果传递给变量count_num。
show create count_of_student 查看存储过程
创建存储函数
create function sp_name ([proc_parameter[,…]])
returns type
[characteristic…] routine_body
参数 | 说明 |
sp_name | 存储函数的名称 |
fun_parameter | 存储函数的参数列表 |
returns type | 指定返回值的类型 |
characteristic | 指定存储过程的特性 |
routine_body | sql代码的内容 |
变量的应用
1.局部变量
declare a int
使用default为变量指定默认值
declare a int default 10
2全局变量(会话变量)
会话变量名以字符’@‘作为起始符
光标的应用
创建触发器
create trigger 触发器名 before | after 触发事件
on 表名 for each row 执行语句
for each row 表示任何一条记录上的操作满足触发事件都会触发该触发器(包括插入,更新,删除)
执行语句指触发器被触发后执行的程序
例:
创建一个由插入命令insert触发的触发器auto_save_time
(1)创建一个名称为timelog的表格
(2)创建名称为auot_save_time的触发器
定义了结束符为//
接下来通过向jsj表插入一条信息来查看触发器的作用
创建具有多条执行语句的触发器
create trigger 触发器名 before | after 触发事件
on 表名 for each row 执行语句
begin
执行语句列表
end
begin与end之间的多条执行语句需以结束分隔符“;”分开
创建一个delete触发多条执行语句的触发器delete_time_info
------创建timeinfo数据表
create table timeinfo( id int(11) primary key auto_increment, info varchar(50) not null )//
-------创建由delete触发多条执行语句的触发器 delect_time_info
create trigger delect_time_info after delete on jsj for each row begin insert into timelog(savetime)values(now()); insert into timeinfo(info)values(‘deleteact’); end //
---------执行delete并查看触发结果
查看触发器
show triggers;-------选择xsgl数据库查看该数据库中存在的触发器
select * from information_schema.triggers;-------查看数据库中所有触发器的详细信息
information_schema是mysql中默认存在的库
select * from information_schema.reiggers where trigger_name=‘触发器名称’;---------查看指定触发器内容
删除触发器
drop trigger 触发器名称;
事务的应用
MyISAM类型的数据表不能支持事务,只有InnoDB或BDB
create table table_name(field_defitions)type=innodb/bdb
table_name为表名,而field_defitions为表内定义的字段等属性,type指定数据表的类型,既可以是inodb也可以是bdb类型
alter table table_name type=innodb/bdb;----------在原有的数据表中可以更改支持的事务处理的类型
初始化事务
start transaction
创建事务
向名称为jsj的数据表插入一条记录,讲解事务的从创建。首先打开数据库,选定某个数据库,然后初始化事务,最后创建事务,向指定的数据表中添加记录
在用户插入新表为innodb类型或更新原来表类型为innodb时,输入命令却提示“The InnoDB feature is disabled;you need ‘InnoDB’ to have it working”警告,则说明InnoDB表类型并没有被开启,用户需要在MySQL文件目录下找到my.ini文件,定位skip_innodb选项位置,改为#skip_innodb后保存文件,重新启动MySQL服务器,即可令数据库支持innodb类型表。
提交事务
commit
因为事务具有孤立性,并未把结果写入磁盘中
撤销事务
rollback
如果执行一个回滚操作,则在start transction(初始化事务)命令后的所有SQL语句都将执行回滚操作。如果用户开启事务后,没有提交事务,则默认为自动回滚状态,既不保留用户之前的任何操作
事务的存在周期
从start transction指令开始直到用户输入commit结束
事务不支持嵌套,在多个事务中,它自动默认会提交前一个事务,在MySQL中很多命令都隐藏执行commit命令
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
Vue 面试题
1.Vue 双向绑定原理
2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
3.你是如何理解 Vue 的响应式系统的?
4.虚拟 DOM 实现原理
5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
6.Vue 中 key 值的作用?
7.Vue 的生命周期
8.Vue 组件间通信有哪些方式?
9.watch、methods 和 computed 的区别?
10.vue 中怎么重置 data?
11.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
…
算法
- 冒泡排序
- 选择排序
- 快速排序
- 二叉树查找: 最大值、最小值、固定值
- 二叉树遍历
- 二叉树的最大深度
- 给予链表中的任一节点,把它删除掉
- 链表倒叙
- 如何判断一个单链表有环
- 给定一个有序数组,找出两个数相加为一个目标数
…
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666
…(img-YYAi2U2N-1712098218751)]
[外链图片转存中…(img-g0rh3QBk-1712098218751)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-9gnwkhL2-1712098218751)]
Vue 面试题
1.Vue 双向绑定原理
2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
3.你是如何理解 Vue 的响应式系统的?
4.虚拟 DOM 实现原理
5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
6.Vue 中 key 值的作用?
7.Vue 的生命周期
8.Vue 组件间通信有哪些方式?
9.watch、methods 和 computed 的区别?
10.vue 中怎么重置 data?
11.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
…
[外链图片转存中…(img-wfvwP7HZ-1712098218752)]
算法
- 冒泡排序
- 选择排序
- 快速排序
- 二叉树查找: 最大值、最小值、固定值
- 二叉树遍历
- 二叉树的最大深度
- 给予链表中的任一节点,把它删除掉
- 链表倒叙
- 如何判断一个单链表有环
- 给定一个有序数组,找出两个数相加为一个目标数
…
[外链图片转存中…(img-Vb6okpHg-1712098218752)]
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666