倍速播放:Console
document.querySelector("video").playbackRate="3"
数据库概念
- DB - Database 数据库
- DBMS - Database Management System 数据库管理系统
- 关系型数据库 RDBMS:Oracle(收费)、MySQL
- 使用表结构存储数据,格式统一 ;使用SQL语句操作;在磁盘中存储数据
- 非关系型数据库 NoSQL
- 数据结构灵活,伸缩性强
- 关系型数据库 RDBMS:Oracle(收费)、MySQL
- SQL - Structured Query Language 结构化查询语言
- MySQL (https://www.mysql.com/)
- MySQL community 社区版免费
- 启动:运行→services.msc→找到MySQL80,选择启动停止(默认开机自启)
- 命令行:
- net stop mysql80
- net start mysql80
- 命令行:
- 连接:MySQL x.x Command Line Client
- 命令行:mysql [-h 127.0.0.1] [-p 3306] -u root -p (需要配置环境变量
- 图形化界面:Sqlyog、Navicat、DataGrip
- 启动:运行→services.msc→找到MySQL80,选择启动停止(默认开机自启)
- MySQL community 社区版免费
SQL通用语法
分号结尾,不区分大小写,注释: #,多行注释:/*CONTENT*/
-
DDL - Data definition language 定义语句:定义表、字段、数据库
数据库 | |
创建 | create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]; utf8(三个字节)/ utf8mb4(默认,四个字节) |
查询 | 查询所有:show databases; 查询当前数据库:select database(); |
删除 | drop database [if exists] 数据库名; |
使用 | use 数据库名; |
表 | |
创建表 | create table 表名( 字段1 类型 [comment '字段注释1'], 字段2 类型 [comment '字段注释2'] ) [comment '表注释']; 类型:tinyint unsigned / int / float / double(位数,小数位数) / 定长字符串 char(1) / 变长 varchar(10) 二进制数据 blob / 长文本数据 text 日期 date / time / year / datetime / timestamp |
查询表 | 查询所有:show tables; 查询表结构:desc 表名; select * from 表名; 查询注释:show create table 表名; |
修改表名 | alter table 表名 rename to 新表名 |
删除表 | drop table [if exists] 表名; truncate table 表名; #删除表中数据并重新创建空表 |
字段 | |
添加字段 | alter table 表名 add 字段名 类型(长度) [comment '字段注释'] [约束]; |
修改字段 | 修改数据类型:alter table 表名 modify 字段名 类型(长度) 修改字段名&类型:alter table 表名 change 旧字段名 新字段名 类型(长度) comment |
删除字段 | alter table 表名 drop 字段名 |
-
DML - Data manipulation language 操作语言:对数据库中表的数据进行增删改
添加 | 指定字段:insert into 表名 (字段1,字段2,...) values (值1,值2,...); 全部字段:insert into 表名 values (值1,值2,...); 批量添加:insert into 表名 (字段1,字段2,...) values (值1,值2,...) , (值1,值2,...) , ...; insert into 表名 values (值1,值2,...) , (值1,值2,...) , ...; |
修改 | update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [where 条件]; --没有where则修改字段的全部内容 update empoly set workid = lpad(workid, 5, '0'); |
删除 | delete from 表名 [where 条件]; |
-
DQL - Data query language 查询语言
查询 | select [distinct #去除重复记录] 字段列表(* #所有字段) from 表名列表 where 条件列表,eg: where name like '___' group by 分组字段 having 分组后条件列表 order by 字段1 排序方式1, 字段2 排序方式2 # ASC:升序,DESC:降序,按字段顺序排序 limit #分页查询 起始索引, 查询记录数 #起始索引从0开始,=(查询页码-1)*每页记录数 eg: select workaddress, count(*) from emp where age between 20 and 50 and gender = '男' and name like '___' group by workaddress having count(*)>=3 order by age ASC, entrydate DESC limit 5; |
聚合 | select 聚合函数 (字段 / *) from 表名 count 计数 / max / min / avg / sum,NULL不参与计算 |
-
DCL - Data control language 控制语言:控制用户和访问权限(主要由DBA使用 database administrator)
控制用户 | |
查询用户 | use mysql; select * from user; |
创建用户 | create user '用户名'@'主机名' identified by '密码'; 主机名'%'表示用任意主机访问 |
修改用户 | alter user '用户名'@'主机名' identified with mysql_native_password by '新密码'; |
删除用户 | drop user '用户名'@'主机名'; |
控制权限 | all, all privieges 所有权限;select 查询数据;insert 插入数据;update 修改数据;delete 删除数据;alter 修改表;drop 删除数据库/表;create 创建数据库/表 |
查询权限 | show grants for '用户名'@'主机名'; |
授予权限 | grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; |
撤销权限 | revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; |
-
函数:select 函数名(参数)
字符串函数 | |
concat(str1,str2,...) | 字符串拼接 |
lower(str) | 字符串转为小写 |
upper(str) | 字符串转为大写 |
lpad(str,n,pad) | 用pad填充str左边,达到n个字符长度 |
prad(str,n,pad) | 用pad填充str右边,达到n个字符长度 |
trim(str) | 去掉字符串头部和尾部空格(不去除中间 |
substring(str,start,len) | 返回str从start开始len个长度的字符串 |
数值函数 | |
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
mod(x,y) | 返回模(取余) |
rand | 返回0~1随机数 |
round(x,y) | x的四舍五入,保留y位小数 |
日期函数 | |
curdate() / curtime() / now() | 返回当前日期/时间/日期和时间 |
year(date) / month(date) / day(date) | 获取年份/月份/日期 |
date_add(date,interval expr type) | 返回date加上expr后的时间(type:year/month/day eg: date_add(now(), interval 30 day) |
datediff(date1,date2) | 返回date1和date2之间间隔天数(date1-date2) |
流程函数 | |
if(value,t,f) | 如果value,则t,否则f |
ifnull(value1,value2) | 如果value1不为空,则value1,否则value2 |
case when [val1] then [res1] ... else [default] end | 如果val1,则res1,...,否则default eg: select name, (case workaddress when 'beijing' then '一线' when '上海' then '一线' else '二线' end) '工作地址' from emp; |
case [expr] when [val1] then [res1]...else [default] end | 如果expr=val1,则res1,...,否则default |
-
约束
- 约束