Mysql浅析
Mysql淺析
SQL:
- Structured Query Language(結構化查詢語言)
SQL分為三個部分:
- DDL(Data Definition Language)
- 數據定義語言,用來維護存儲數據的結構(數據庫、數據表),代表指令: create、drop、alter 等。
- DML(Data Manipulation Language)
- 數據操作語言,用來對數據進行操作(數據表中的內容),代表指令: insert、delete、update 等。
- 其中DML內部又單獨進行了一個分類DQL(Date Query Language),數據查詢語言。如: select 。
- DCL(Data Control Language)
- 數據控制語言,主要負責權限管理(用戶)。代表指令:grant、revoke。
SQL基本操作(crud)
庫操作
- 新增數據庫:
- 基本語法:create database 數據庫名稱 [庫選項];
- 庫選項:用來約束數據庫,氛圍兩個選項:
- charset/character set,具體字符集(數據庫的編碼格式),例:GBK、UTF8...
- 校對集設定:collate具體校對集。
- 例如:create database my_database charset utf8;
- 注意點:
- 如果想用保留字或者關鍵字當做庫名,需要使用反引號(Tab上面那個鍵)。
- 如果想用中文當庫名,需要加一行set name gbk;
- 每個數據庫下都有一個opt文件:保留了庫選項。
- 查看數據庫:
- 查看所有數據庫:show databases;
- 查看指定部分的數據庫:模糊查詢
- show database like 'pattern';
- pattern:% 表示匹配多個字符, _ 表示匹配單個字符 。
- 例如:查看以information_開頭的數據庫名:
- show databases like 'information\_%';(_需要轉義,用?)
- 查看數據庫創建語句
- show create database 數據庫名;
- 更新數據庫:
- 基本語法:alter database 數據庫名 charset/character [=] 字符集;
- 數據庫名字不可修改,數據庫的修改僅限庫選項:字符集、校對集(依賴于字符集)
- 修改字符集后,校對集自動修改
- 刪除數據庫:
- drop database 數據庫名;
表操作
- 新增數據表:
- 基本語法:
create table [if not exists] 表名 ( 字段名 數據類型, ... 字段名 數據類型 )[表選項]; - if not exists:可選項,如果表不存在就創建,否則不執行創建代碼。
- 表選項:
- 字符集:charset / character set 具體字符集。
- 校對集:collate 具體校對集。
- 存儲引擎:engine 具體存儲引擎(常見為innodb和myisam)。
- 注意:任何一個表都需要制定數據庫。
- 方案一:create table 數據庫名.表名...
- 方案二:use 數據庫名,再創建表。
- 基本語法:
- 查看數據表(跟查看數據庫類似):
- show tables;
- show tables like 'pattern';
- show create table 表名 \g或者\G或者;
- \g:;(分號)。
- \G:將查到的表旋轉90度查看。
- desc 表名; == describe 表名; == show columns from 表名;
- 修改數據表(分兩類修改):
- 修改表本身:表名和表選項
- 表名:rename table 舊表名 to 新表名;
- 表選項:alter table 表名 表選項 [=] 值;
- 例:
- 修改字段(新增、修改、重命名、刪除)
- 新增字段:
- 基本語法:alter table 表名 add [column] 字段名 數據類型 [列屬性][位置];
- 位置:first:第一個位置、after 字段名:在指定字段之后,默認是在最后一個字段之后。
- 例:
- 修改字段(修改列屬性或者數據類型):
- 基本語法:alter table 表名 modify 字段名 數據類型 [列屬性][位置];
- 例:alter table my_class modify name varchar(30) first;
- 重命名字段:
- 基本語法:alter table 表名 change 舊字段名 新字段名 數據類型 [列屬性][位置];
- 例:alter table my_class change name new_name varchar(30) after id;
- 刪除字段:
- 基本語法:alter table 表名 drop 字段名;
- 新增字段:
- 修改表本身:表名和表選項
- 刪除數據表:
- 基本語法:drop table 表名1,表名2,...表名n;
- 可以一次性刪除多張表。
- 基本語法:drop table 表名1,表名2,...表名n;
數據操作
- 新增數據:
- 給全字段插入數據,不需要指定字段列表:要求插入的字段與表中字段順序一致。非數值數據,建議使用單引號。
- 基本語法:insert into 表名 values (值列表)[,(值列表)...];
- 例: insert into my_student values ('zhangsan', 'male', 22, 160, 1);
- 給部分字段插入數據。
- 基本語法:insert into 表名 (字段列表) values (值列表)[,(值列表)...];
- 例:insert into my_student (name, gender, age, height, c_id) values ('zhangsan', 'male', 22, 160, 1);
- 給全字段插入數據,不需要指定字段列表:要求插入的字段與表中字段順序一致。非數值數據,建議使用單引號。
- 查看數據:
- 基本語法:select */字段列表 from 表名 [where條件];
- 例:select * from my_student;
- 更新數據:
- 基本語法:update 表名 set 字段名=字段值 [where條件];
- 例:update my_student set gender='female' where id=1;
- 刪除數據:
- 基本語法:delete from 表名 [where條件];
- 例:delete from my_student where id=1;
轉載于:https://www.cnblogs.com/ronaldo-coder/p/ronaldo.html
總結
- 上一篇: git修改文件权限方式
- 下一篇: JavaScript 函数定义