mysql -- 学习记录
show databases;? //列出所有數據庫
select databases;? //顯示當前數據庫
create database 數據庫名 ;? ?// 創建數據庫
drop database 數據庫名 ;? //刪除數據庫
show full tables ;? // 查看表結構 (顯示所有表)
show open tables ;? // 列舉表緩存中當被代開的非 temporary 表?
show table status ; // 查看表狀態
DDL:
create database test character set utf8 ; // 創建數據庫并設置字符集
alter table 表名 add 列名 數據類型 ;? // 添加一列
desc 表名 ;? // 查看表字段信息
alter table 表名 drop 列名 ;//? 刪除一列
rename table 原始表名 to 修改后的名字 ; //? 修改表名
show cretae table 表名 ; // 查看表的創建語句
alter table 表名 character set 編碼 ; // 修改字符編碼
alter table 表名 change 原始列名 新列名 數據類型 ; // 修改列名?
drop table 表名 ; // 刪除表名
?
DML:
insert into 表名(表字段) values (); // 插入
update 表名 set? 列名=新值 where 條件 ;// 修改
delete from 表名 [ where 列名 = 列值 ] ; // 刪除
truncate table 表名 ;// 清空表
1. delete 刪除表中數據,表結構還在,刪除后的數據可以找回
2. truncate 刪除是吧表直接 drop ,然后在創建一個同樣的新表,刪除的數據不能找回,執行速度比delete快、
執行快的原因:
因為delete執行刪除過程是每次從表中刪除行,并且同時將該行為的刪除操作作為事務記錄再日志中保存以便進行回滾
truncate 則一次性從表中刪除所有數據
?
范式:
第一范式:數據表每一列(屬性)都是不可分割的基本數據項,要求數據的每一每一列都只能存放但單一值
第二范式:要求數據表里的所有數據都要和該數據的主鍵有完全相依關系
第三范式:所有非鍵屬性都只和候選鍵有相關性,也就是說所有非鍵屬性互相之間應該是無關的。
?
反范式:
試圖通過增加冗余數據或通過分組數據來優化數據庫讀取性的過程
?
show varianles like '%query_log%' ; 查看慢日志是否開啟 (所有執行時間超過 log_query_time 秒的 sql 語句都會被記錄在慢查詢日志 中)
?
轉載于:https://www.cnblogs.com/daijiabao/p/11295371.html
總結
以上是生活随笔為你收集整理的mysql -- 学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录call、apply、bind的源码
- 下一篇: 记录常见原型链图