标签:幻读 table myisam handler 数据库 最快 替换 一个 排它
information_schema: 数据库的所有信息,表,数据库名称,类型等等performance_schema: 收集数据库服务器性能参数sys: 把performance_schema的复杂度降低mysql:核心数据库,用户,权限,关键字等net start mysqlnet stop mysqlmysql -u 用户名 -p 密码show databasesuse 数据库名称show tablesselect * from 表名exit;quit;create database 数据库名称drop database 数据库名称innodb(mysql默认的存储引擎):myisam:memory:merge:archive:federated:blackhole:show engines;show variables like ‘%storage_engine%‘set default_storage_engine=<存储引擎名称>create table 表名(字段 类型 长度)drop table 表名alter table old表名 rename new表名alter table 表名 change old字段名称 new字段名称 数据类型alter table 表名 add 新字段名称 数据类型....alter table 表名 drop 字段名称desc 表名|describe 表名|explain 表名|show columns form 表名insert into 表名(列名....) value|values(值...),(值......)update 表名 set 列=value ,列2 = value2 where.....delete from 表名 where ....truncate table 表名 √DROP,TRUNCATA,DELETE区别
delete 删除数据,保留表结构,可以回滚,如果数据量大,很慢truncate 删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快drop 删除数据和表结构,删除速度最快sql语句定界符,一般默认的定界符是分号: √
\g : ;\G:将查到的结构旋转90度变成纵向int,float,double,decimaldate,time,year,datetime,timestampchar,varchar,blob,textenumsetnot nullunique keyprimary keyforeign keycheckauto_incrementalter table 表名 add constrain 唯一约束名称 unique (<列名>)constraint <外键名> foreign key 列名 references 主表名称 主键列select 字段1,字段2.... from 表名
where:过滤条件distinct:排重between and:在...和...之间in:list比较like:模糊匹配,%,_is null:为空order by:排序limit:分页group by:分组having:分组条件过滤>,>=,=,<,<=)and,or,not,!)union:连接两个查询结果。数量相同,类型相似,且自动去掉重复字段。如果要全部显示,则使用allselect * from a,b|select * from a class join b 笛卡尔积inner join,取都满足条件的数据left join,展示左表所有数据right join,展示右表所有数据any,some:满足其中任何一个all:满足所有in:多个匹配相等exists:如果有返回值,继续查询。否则没有查询结果regexp:正则表达式,^ $concat: 链接字符串lower: 小写upper: 大写length: 长度char_length: 字符长度trim: 去掉空格repeat: 重复的次数replace: 替换substring: 截取substr: 截取rand:随机数curdate: 当前日期curtime:当前时间now:当前日期和时间week: 周year: 年date_format: 格式化data_add: 添加时间datediff: 时间差if(a,b,c): 如果a成立,返回b,否则返回cifnull(a,b): 如果a为null返回b,否则返回acase 表达式case 表达式
when value1 then result1
when value2 then result2
....
else result1
end:表达式和那个value相等,返回对应的result
md5:加密count:个数avg:平均数sum:总和max:最大min:最小优点:
设计原则:
自动创建索引:主键
手动创建索引:
index 索引名称alter table 表名 add index 索引名称(属性名称 长度 asc|desc)create index 索引名称 on 表 (属性名 长度 排序,....)删除索引:
alter table 表名 drop index 索引名称drop index索引名称 on 表名索引分类:
普通索引、唯一索引、主键索引、单索引、组合索引、全文索引、空间索引
create view 视图名称 as select语句select * from 试图名称alter view 视图名称 as select语句drop view 视图名称CREATE
[DEFINER = user]
TRIGGER trigger_name
`trigger_time` `trigger_event`
ON tbl_name FOR EACH ROW
[`trigger_order`]
trigger_body
`trigger_time`: { BEFORE | AFTER }
`trigger_event`: { INSERT | UPDATE | DELETE }
`trigger_order` { FOLLOWS | PRECEDES } other_trigger_name
create trigger `触发器名称` `time` `事件`
on `表名` for each row
trigger_sql
`time`:before|after
`事件`:insert|delete|update
`trigger_sql`:
begin
...
end
删除触发器:drop trigger if exists 触发器名称
修改结尾符号:
delimiter
语法:
create 用户定义 procedure 存储过程名称(参数)
特性 存储过程sql
参数:in、out、inout
存储过程sql:begin end
-- CREATE PROCEDURE and CREATE FUNCTION Syntax
CREATE
[DEFINER = user]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
CREATE
[DEFINER = user]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT ‘string‘
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement
调用存储过程:call 存储过程名称
语法:
create function 函数名称(参数)
returns type 特性 函数sql
参数:只有in,可以忽略不写
type:mysql任意类型
调用:select 函数名称(参数)
声明:
declare 变量名称 type [default value](只能在begin和end之间定义局部变量)set @[变量名称] = value赋值:set 变量名称 = 值
使用:select 表达式 into 变量名称 from 表名
declare 条件名称 condition for [type]
type:字符串错误码,数值型错误码
declare [action] handler for [type] begin ... end
action:continue,exit
type:字符串错误码
数值型错误码
条件名称:SQLWARNING,NOT FOUND,SQL EXCEPTION
declare 游标名称 cursor for select语句open 游标名称fetch 游标名称 into 变量名称close 游标名称select语句返回个数和变量个数相同fetch就会报错1329-- if:
if 条件表达式 then sql1
elseif 条件表达式2 then sql2
else sql3
endif;
-- case:
case 表达式
when value1 then 语句块1
when value2 then 语句块2
.....
else 语句块n
end case;
-- repeat:
repeat
循环体
until 条件表达式
end repeat
-- while:
while 条件表达式 do
循环体
end while
-- loop:
loop
循环体
leave;
end loop
-- `leave`:跳出当前循环体
-- `iterate`:结束本次循环,进入下一次循环
commitrollbackbegin,start transactionautocommit savepoint [保存点名称];
release savepoint [保存点名称];
rollback to savepoint [保存点名称];
表级锁
lock table 表名 readlock table 表名 write行级锁:
select * ...lock in share modeselect * ...for updateinsert、delete、update连表查询
存储引擎
主外键
like
where
having
commit
标签:幻读 table myisam handler 数据库 最快 替换 一个 排它
原文地址:https://www.cnblogs.com/holm/p/12890620.html