mysql資料庫常用操作

来源:https://www.cnblogs.com/yc-c/archive/2018/04/17/8867239.html
-Advertisement-
Play Games

目前最流行的資料庫: oracle、mysql、sqlserver、db2、sqline --:單行註釋 #:也是單行註釋 /* 註釋內容*/:多行註釋 mysql -uroot -p密碼:登錄mysql service mysqld restart重啟mysql /etc/my.cnfmysql的 ...


 

 

目前最流行的資料庫:

oracle、mysql、sqlserver、db2、sqline

--:單行註釋

#:也是單行註釋

/* 註釋內容*/:多行註釋

mysql -uroot -p密碼:登錄mysql

service mysqld restart
重啟mysql

/etc/my.cnf
mysql的配置文件

/var/lib/mysql
mysql資料庫的資料庫文件存放位置

/var/log
mysql的資料庫的日誌輸出存放位置

create database 庫名 default character set =utf8;:創建資料庫

show databases:查看所有資料庫

drop database 資料庫名:刪除數據

備份的語法一:
Mysqldump –uroot –p 要備份哪個資料庫 > 備份到哪去的路徑;

備份語法二:
Mysqldump –uroot –p - -database 要備份哪個資料庫 > 備份到哪去的路徑;

source+sql文件:恢複數據庫

use 資料庫名稱:使用業務資料庫

show tables:查看業務資料庫下有多少張表格

desc 表名:描述表結構

建表語法:
create table 表名字 (列名 數據類型,l列名2 數據類型,…,列名n 數據類型)Engine=INNODB charset=utf8;

表創建好過後添加一列或者多列:
ALTER TABLE 表名 ADD (列名 數據類型,…,列名n 數據類型);

換列名語法:
Alter table 表名 change column 原有的列名 新的列名 對應的數據類型

刪除列:
alter table 表名 drop column 要刪除的列

給列添加註釋:
Alter table 表名 modify column 列名 對應數據類型 comment ‘你要註釋的內容’

添加數據語法:
insert into 表名(列1,列2...列n) values(值1,值2,...值n)

一次增加多條數據:
Insert into 表名(列1,列2,..,列n) values (值1,值2,…..,值n), (值1,值2,…..,值n)

修改數據:
update 表名 set 列名=值 where 條件

Update 可以一次修改多列:
Update 表名 set 列1=值1,列2=值2 where 條件

刪除數據:
delete from 表名 where 條件

刪除整張表的數據:
truncate table 表名

刪除資料庫:
drop

添加預設值:
create table 表名(列名稱 數據類型 default 預設值)

添加非空約束的語法:
alter table 表名modify column 列名 對應的數據類型 not null;

給表添加主鍵約束:
Alter table表名 add constraint primary key PK_表名_需要添加約束的列名 (要添加約束的列)

給表添加外鍵約束:
alter table 表名add constraint foreign key fk_表名 _列名 (需要添加約束的列)references 引用的表 (引用的是哪一列)

Select * from 表名: 查詢這張表裡面的所有數據

Select 列名1,…,列名n from 表名:多列查詢

select 列名 from 表名:單列查詢

Select 列名1 as 別名1,列名n as 別名n from 表名:查詢的時候命名別名

Select distinct(需要去除重覆的列) from 表名:去重查詢(只能是單列去除重覆)

select * from 表名 where 條件:帶條件查詢

 

SQL一共由四個部分組成:

DQL 數據查詢語言 select

DML 數據操作語言 insert,update,delete

DDL 數據定義語言 create,drop,alter

DCL 數據控制語言 grant,revoke,commit,rollback


Between and : 在……之間

Select * from 表名 where 列名 in (範圍):在範圍內取值

Select * from 表名 where 列名 is null:判斷該列是否有空值

Select * from 表名 where 列名 is not null:判斷該列是否有非空的值;

select * from 表名 where 列名 like ‘_或者%值’:模糊查詢
_只匹配一個字元
%匹配任意個字元

資料庫裡面的排序order by
Order by後面可以跟上兩個單詞 ASC DESC
語法:select * from 表名 order by 要排序的列;

select * from 表名 limit m,n:從m行開始 取n行顯示

表連接語法:
內鏈接語法:Select * from 表1 join 表2 on 主鍵=外鍵
左外鏈接語法:Select * from 表1 left join 表2 on 主鍵=外鍵
右外鏈接語法:Select * from 表1 right join 表2 on 主鍵=外鍵

 

表連接:

第一步:看這幾張有沒有相同的列
第二步:確定這個列是哪張表的主鍵
第三步:確定好了過後直接寫on 主鍵=外鍵
第四步:修改*,把*號換成一些需要顯示列

自連接:

第一步:將張表以命名別名的方式拆分成兩張表
第二步:找準篩選出垃圾數據的關係
第三步:分清左邊的數據來自於哪張表,右邊的數據來自於哪張表
第四步:才開始寫 on 主鍵=外鍵
第五步:換*號,顯示需要展示出來數據

字元函數:
concat(列1,'字元'); 合併函數
select concat(userName,userPwd) '用戶名和密碼' from user;
select concat('Hello','World') from dual;

日期函數:
sysdate(); 查詢當前系統時間函數
select sysdate() from dual;
select * from user;
dual??
dual是資料庫為了讓我們試驗函數的作用或者功能所提供的一張偽表;
偽表就是實際上不存在,但是在資料庫當中依然可以使用,表名就叫dual
轉換函數

數字函數

其它函數

統計函數,又稱聚合函數,專門為了統計某一列的值而研發出來的函數
count 統計某一列的非空總行數
sum 統計某一列的總和
max 統計某一列的最大值
min 統計某一列的最小值
avg 統計某一列的平均值

count可以忽略列的數據類型
avg sum max min 只能用於數字類型只上;


having 與where的區別:
相同點:having和where都是用於條件篩選
不同點:having多與group by 結合使用,用於分組過後的條件篩選where用於分組之前的篩選

 

子查詢語法:
Select * from 表名 where 列名 in (Select 相同列 from 表名)
Select * from 表名 where 列名 比較運算符 (select 數字列 from 表名)
註意點:如果在where後面嵌套了子查詢,一定要記得把 * 號換成where 後面的那個列名

 

添加索引的語法:
Alter table 表名 add 索引的類型 索引的名字 (需要添加索引的列)
ALTER TABLE `orderdetail`
ADD INDEX `orderdetailNum` (`orderdetailNum`) ;
刪除索引的語法:
Alter table 表 drop 索引類型 索引的名字

 

事務:
Set autocommit=0;
關閉自動提交,開啟事務
Set autocommit=1;
開啟自動提交,關閉事務;
start transaction; -- 開啟一個事務點;記錄原有表中的數據,如果一旦出錯,直接回到這個事務點之上
set autocommit=0; -- 開啟事務

 

視圖:就是一張虛擬表格裡面存儲了查詢結果;
特點:隱藏真正的表名,讓人不知道你的表名或者列名真正叫什麼

創建試圖的語法:create view 視圖名字 as 查詢語句

刪除視圖語法:drop view 視圖名字

 

 

 

 mysql查詢表內所有列名,並用逗號分隔:

SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = '資料庫名稱' AND TABLE_NAME = '表名'

 

 

當行內容過長時,尾部+\G 將結果以垂直方向輸出。

mysql> select * from db_archivelog\G

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Enumerable.Distinct 方法 是常用的LINQ擴展方法,屬於System.Linq的Enumerable方法,可用於去除數組、集合中的重覆元素,還可以自定義去重的規則。 有兩個重載方法: // // 摘要: // 通過使用預設的相等比較器對值進行比較返回序列中的非重覆元素。 // / ...
  • 使用MySQL 5.6,搭建主從複製。關於5.6的安裝,可以參考《MySQL 5.6 rpm安裝方法和碰見的問題》。 主庫創建slave用戶,設置複製許可權, mysql> create user 'slave'@'1.1.1.2' identified by 'root'; Query OK, 0 ...
  • 今兒有位同事提出,一套MySQL 5.6的環境,從資料庫伺服器本地登錄,一切正常,可是若從遠程伺服器訪問,就會報錯, ERROR 1045 (28000): Access denied for user 'bisal'@'x.x.x.x' (using password: YES) 我才開始接觸My ...
  • 本文內容: 系統變數 用戶變數 局部變數 局部變數 首發日期:2018-04-18 系統變數: 系統變數就是系統已經提前定義好了的變數 系統變數一般都有其特殊意義。比如某些變數代表字元集、某些變數代表某些mysql文件位置 系統變數中包括會話級變數(當次會話連接生效的變數,如names),以及全局變 ...
  • 本文目錄:1.創建、修改視圖2.視圖演算法merge、temptable3.刪除、查看視圖信息4.檢查無效視圖 視圖是表表達式的一種,所以它也是虛擬表。對視圖操作的時候會通過語句動態的從表中臨時獲取數據。 1.創建、修改視圖 當使用or replace時,如果視圖存在則此語句相當於alter view ...
  • ################# HA 即 High Available 高可用。# 其作用是為了減少主從結構的單點故障,而設置備用節點,既然學習了Hadoop生態圈,那麼HA配置也是必須要掌握的。# 因為生產環境中,一定會設置HA,減少故障率。 # 參考了好幾處的教程,自己動手實踐了下,成功。 ...
  • 本文目錄:1.創建觸發器2.insert觸發器3.delete觸發器4.update觸發器5.通過on duplicate key update分析觸發器觸發原理6.replace to演算法驗證7.查看、刪除觸發器 觸發器用來實現在永久表上進行某些操作時觸發啟動另一操作。 1.創建觸發器 以下是Ma ...
  • 大家都知道,在MySQL中刪除一個表中的記錄有兩種方法,一種是DELETE FROM TABLENAME WHERE... , 還有一種是TRUNCATE TABLE TABLENAME。 DELETE FROM 從 MySQL 數據表中刪除數據,如果沒有指定 WHERE 子句,MySQL 表中的所 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...