日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL基本操作指令

發布時間:2024/7/5 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL基本操作指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL

注: MySQL對大小寫不敏感, 需要對大小檢索, 使用關鍵字binary, "[]"中內容為可選內容; table_name, tableName表示表名, columnName表示列名, DataType表示表中列數據類型, 粗體部分表示關鍵字

  • 創建數據庫: create database [if not exits] 數據庫名;
  • 刪除數據庫: drop databases 數據庫名;
  • 使用數據庫: use 數據庫名;
  • 創建數據表: create table 數據表(column_name1 column_type,…);
  • column字段添加: not null#不為空, auto_increment#自增, primary key#主鍵, engine#儲存引擎, charset#設置編碼
  • 刪除表: drop table table_name;
  • 表中插入數據:insert into table_name(field1,field2…)values(value1,value2…); 字符串使用雙引號, 插入多條記錄 insert into table_name(field1,field2,…)values(valueA1…),(valueB1…)…;
  • insert ignore into與insert into的區別: 如果當前表限制插入重復數據, 那么insert ignore into會忽略你要插入的重復數據返回以個警告, 而insert into不會忽略, 依舊插入, 直到SQL語句報錯
  • 檢索:select column_name1,column_name2 from table_name[where Clause][limit n][offset m]; limit設定返回記錄數, offet指定select檢索數據開始的偏移量
  • where使用:類似于編程語言中的if, 可使用">,<,!=,>=,<="具有條件性的選取數據, 可用于delete/update(刪除/修改);
  • 修改表中數據:update table_name set field1=new_value1, field2=new_value2…[where Clause]
  • 刪除表中記錄: delete from table_name[where Clause]; 操作行記錄, 沒有where, 表中所有記錄全被刪除
  • 模糊搜索:select field1, filed2…fieldN from table_name where field1 like condition1 [and [or]] field2=‘somevalue’; 通常將like與"% 下劃線"結合使用, “%” 表示任意字符與unix正則表達式中 “*” 差不多, “下劃線"表示字符只出現一次, 不使用”% _“進行模糊判斷時, like的效果與”="一致
  • 連接兩個select語句結果組合到一個集合中(就所謂的求兩個結果在指定詞條下的交集),union具有刪除重復數據的功能: select expression1…expressionN from tables [where conditions] union [all|distinct] select expression1…expressionN from tables [where conditions]; expression1: 要檢索的列, tables:要檢索的數據表, all:返回所有結果集,包含重復數據, distinct: 默認已經刪除重復數據, distinct對結果沒有影響
  • 排序:select field1…fieldN from table_name1…table_nameN order by field,[field2…][asc[desc]] where [like]; 使用任何字段作為排序條件,asc:升序, desc:降序 ; 數據默認為升序排列
  • 根據一個或多個列結果集進行分組: select column_name,function(column_name) from table_name where column_name operator value group by column_name; 在分組的列上我們可以使用count, sum, avg等函數, 例:select name,cout(*) from employee group by name;將employee中name出現的次數做一個統計, 注:可以使用with rollup在實現分組的基礎上再進行統計(sum,avg,count…), group by后面的字段必須與select處的字段一致
  • 數據表連接,在兩個或多個表中查詢數據: inner join(內連接):獲取兩個表中字段關系的記錄可以省略,求交集inner, left join(左連接):獲取左表記錄,即使右表沒有對應匹配的記錄, right join(右連接):與左連接相反
  • null處理: 表中記錄為null時, where只能采用is null或者 is not null 來進行判斷, 而不能使用=null或者!=null判斷
  • MySQL事務: 用于處理操作量大,復雜度高的數據, 維護數據庫完整性
  • 默認情況下,事務自動提交(執行完SQL,自動執行commit), 顯示開啟事務使用begin ,start transaction, set autocommit=0禁止自動提交
  • 回滾結束用戶事務,撤銷正在進行的所有未提交的修改: rollback/rollback work;
  • 在事務中創建一個保存點,允許有多個保存點:savepoint identifier;
  • 刪除事務保存點,沒有指定保存點執行會拋出異常:release savepoint identifier;
  • 把事務回滾到標記點:rollback to identifier;
  • 設置事務隔離級別: set transaction;
  • MySQL Alter 修改數據:
  • 添加表字段: alter table table_name add column_name DataType; #添加后的字段可在DataType后面使用 first/after固定字段在第一列或者在某一列之后
  • 刪除表字段: alter table table_name drop column_name; #數據表中只剩下一個字段無法刪除當前字段
  • 修改字段類型: alter table table_name modify column_name New_DataType;
  • 使用change修改字段名,新字段名后面必須指定類型:alter table table_name change column_name NewColumn_name ColumnDataType;
  • 修改字段后可指定字段是否包含默認值/not null;
  • 設置字段默認值: alter table table_name alter column_name set default value;
  • 刪除字段默認值:alter table table_name alter column_name drop default;
  • 修改表名: alter table table_name rename to Newtable_name;
  • 創建普通索引: create index indexName on table_name(username(length));
  • 修改表結構添加索引: alter table table_name add index indexName(columnName);
  • 單列索引:一個索引只包含單個列; 組合索引: 一個索引包含多個列
  • 創建表的時候直接指定: create table table_name(… index [index_name] (userName(length)));
  • 刪除索引: drop index [indexName] on table_name;
  • 創建唯一索引(索引值必須唯一,可為null) ,組合索引,列值必須唯一: create unique index indexName on tableName(userName(length)); #唯一索引相比于普通索引就添加一個unique, 在唯一索引中插入相同數據會出錯
  • 使用alter添加/刪除索引:alter table tableName add primary key(columnList);#索引值必須唯一不能為空 alter table tableName add unique indexName(columnList);#創建的索引值必須是唯一的 alter table tableName add index indexName(columnList);#添加普通索引,索引值可出現多次 alter table tableName add fulltext indexName(columnList);#指定索引值為fulltext,用于全文索引; 刪除就在index indexName前面添加drop
  • 顯示索引信息:show index from tableName;
  • alter添加/刪除主鍵: 在primary key 主鍵名前面添加 add/drop
  • MySQL臨時表:保存一些臨時數據, 臨時表只在當前連接可見, 關閉連接, MySQL會自動刪除并釋放所有空間
  • 臨時表創建:create temporary table tableName(columnName DataType…); 創建完成后使用show tables是無法查看臨時表, 它只在當前連接可見; 刪除使用drop table tableName
  • 服務器版本信息:select version() 當前數據庫名:select database() 當前用戶名:select user()
  • 服務器狀態: show status; 服務器配置變量: show variables
  • 查看當前數據庫下包含數據表情況:show tables;
  • 查看指定數據表的表結構: desc 表名;
  • 重置序列: 當刪除使用auto_increment列中記錄會導致序列出錯, 需要重寫對該列使用auto_increment, 使用auto_increment=value; 指定開始值
  • 統計重復數據: 首先確定那一列會出現重復記錄,在列選擇列表使用count(*)列出那些列或者使用group by列出那些列, 最后將having子句設置重復數大于1; 例:SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;
  • 過濾重復數據: 使用distinct/group by, 例: select distinct columnName from tableName 或者select columnName from tableName group by columnName;
  • 刪除重復數據: 可以使用為表添加index或者primary key
  • 注: 一部分內容, 在后期進行修改和補充, 有錯誤的地方還請指出

    總結

    以上是生活随笔為你收集整理的MySQL基本操作指令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。