Mysql基礎01-語法

来源:https://www.cnblogs.com/Open-ing/archive/2019/12/13/12014267.html
-Advertisement-
Play Games

資料庫 數據的存儲:將數據放到表中,表再放到庫中。 一個資料庫中可以有多個表,每個表都有一個名字,用來標識自己。表名具有唯一性。 表由列組成,我們也稱為欄位。每個欄位描述了它所含有的數據的意義表由列組成,我們也稱為欄位。每個欄位描述了它所含有的數據的意義 表中的數據是按行存儲的,一行即為一條記錄。 ...


資料庫

數據的存儲:將數據放到表中,表再放到庫中。

一個資料庫中可以有多個表,每個表都有一個名字,用來標識自己。表名具有唯一性。

表由列組成,我們也稱為欄位。每個欄位描述了它所含有的數據的意義表由列組成,我們也稱為欄位。每個欄位描述了它所含有的數據的意義

表中的數據是按行存儲的,一行即為一條記錄。

MySQL下載安裝略過

MySQL設置命令

net start MySQL服務名        【服務啟動

net stop MySQL服務名        【服務停止】

mysql -u root -p              【進入資料庫】

mysql -h 主機IP地址 -P 埠號 -u 用戶名 -p回車
Enter Password:密碼

除了-p與密碼之間不要空格外,其他的-h,-P,-u與後面的參數值之間可以有空格

exit;                                          【 退出】    

 mysqldump -h主機地址 -P埠號 -u用戶名 -p密碼 --database 數據名 > 文件路徑/文件名.sql  【單個資料庫備份】

source  sql腳本路徑名.sql                        【導入執行備份的sql腳本】

show create table 表名;                         【查看表的引擎,字元集】

show table status\G                           【查看全部表的引擎,字元集】

show engines\G                             【列出資料庫支持的引擎】

alter table 表名 engine=引擎名;                      【修改表引擎】

show create database 資料庫名;                     【 查看字元集】

create database 表名 character set (gbk);                    【修改表字元集】

show character set;                             【查看字元集校隊】

DCL 數據控制
flush privileges;                               【刷新許可權】
create user '用戶名' @'IP地址' identified by '密碼';              【 創建新用戶】
grant 許可權1,... on 資料庫名.* to 用戶名 @ IP地址;                 【用戶授權】
[update,instert,delete...許可權名]
revoke 許可權1,... on 資料庫名.* from 用戶名 @IP地址;                   【撤銷許可權】
所有的資料庫 就用*.* 所有的許可權 就用all
show grants for 用戶名 @IP 地址                      【查看許可權】
drop user 用戶名 @IP地址                         【刪除許可權】
update mysql.user set password=password('新密碼') where user='root';      【 修改密碼】

數據類型

int(M),必須和unsigned zerofill一起使用才有意義

浮點型系列:float,double

double(M,D):表示最長為M位,其中小數點後D位

定點型系列:decimal

decimal(M,D):表示最長為M位,其中小數點後D位

字元串類型:char,varchar(M),text

char如果沒有指定寬度,預設為1個字元

varchar(M),必須指定寬度

其他類型:bit, xxBlob, 枚舉,集合等

運算符

1、算術運算符

加:+
減:-
乘:*
除:/   div(只保留整數部分)
模:%   mod

2、比較運算符

大於:>
小於:<
大於等於:>=
小於等於:>=
等於:=   不能用於null判斷
不等於:!= 或 <>
安全等於:<=> 可以用於null值判斷

3、邏輯運算符(建議用單詞,可讀性來說)

邏輯與:&& 或 and
邏輯或:|| 或 or
邏輯非:! 或 not
邏輯異或:^ 或 or

4、範圍

區間範圍:between  x  and  y
   not between x  and y
集合範圍:in (x,x,x)
   not  in(x,x,x)

5、模糊查詢(只針對字元串類型,日期類型)

like 'xxx'
如果想要表示0~n個字元,用%
如果想要表示確定的1個字元,用_

6、位運算符(很少使用)

左移:<<
右移:>>
按位與:&
按位或:|
按位異或:^

7、特殊的null值處理

#(1)判斷時
xx is null
xx is not null
xx <=> null

#(2)計算時
ifnull(xx,代替值) 當xx是null時,用代替值計算

欄位修飾符

unsigned     (無符號)
zerofill         (使用0填充)
default         (預設值)
comment     (欄位解釋說明)
not null              (非空)
null         (空)
unique         (唯一索引)
index                (普通索引)
primary key      (主鍵)
auto_increment     (自增)
as        (別名)

語法規範和要求

(1)mysql的sql語法不區分大小寫

MySQL的關鍵字和函數名等不區分大小寫,但是對於數據值是否區分大小寫,和字元集與校對規則有關。

ci(大小寫不敏感),cs(大小寫敏感),_bin(二元,即比較是基於字元編碼的值而與language無關,區分大小寫)

(2)命名時:儘量使用26個英文字母大小寫,數字0-9,下劃線,不要使用其他符號

(3)建議不要使用mysql的關鍵字等來作為表名、欄位名等,如果不小心使用,請在SQL語句中使用`(飄號)引起來

(4)資料庫和表名、欄位名等對象名中間不要包含空格

(5)同一個mysql軟體中,資料庫不能同名,同一個庫中,表不能重名,同一個表中,欄位不能重名

(6)標點符號:

必須成對

必須英文狀態下半形輸入方式

字元串和日期類型可以使用單引號'

列的別名可以使用雙引號""

如果列的別名沒有包含空格,可以省略雙引號,如果有空格雙引號不能省略。

(7)SQL腳本中如何加註釋

單行註釋:#註釋內容

單行註釋:--空格註釋內容 其中--後面的空格必須有

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

DDL 數據定義

show databases;              【查看所有資料庫】
use (dataname);               【切換使用資料庫】
create database (dataname);      【創建資料庫】
create database 數據名 charset 'utf8'; 
drop database (dataname);        【刪除資料庫】

--------------------------------------------

show tables ;
show tables from 資料庫名;      【查看所有表格】
create table [數據名.]表名(
欄位名1 數據類型 修飾符,
欄位名2 數據類型 修飾符,
);                   【創建表格】
drop table [資料庫名.]表名稱;      【刪除表格】
describe [資料庫名.]表名稱;
desc [資料庫名.]表名稱;         【查看表結構】
alter table 舊表名 rename 新表名;
rename table 舊表名 to 新表名;     【修改表名稱】

------------------------------------------------------

alter table 表名 add 欄位名 欄位類型 欄位修飾;         【添加欄位】
alter table 表名 add 欄位名 欄位類型 欄位修飾 first;       【添加欄位在首位】
alter table 表名 add 欄位名 欄位類型 欄位修飾 after 欄位名;    【添加新欄位,並定位】
alter table 表名 drop 欄位名;                 【刪除欄位】
alter table 表名change 舊欄位名 新欄位名 欄位類型 欄位修飾;   【修改欄位名】
alter table 表名 modify 欄位名 欄位類型 欄位修飾;         【修改欄位類型及修飾】
alter table 表名 modify 欄位名 欄位類型 欄位修飾 first;        【修改欄位類型設首位】
alter table 表名 modify 欄位名 欄位類型 欄位修飾 after 欄位名;   【修改欄位類型並定位】

DML 數據操作

insert into 表名 values(值1,2,...)
insert into 表名 (欄位名1,2...) values(值1,2,...);
insert into 表名 values(值列表1),(值列表2)...;
insert into 表名 (部分欄位列表) values(值列表1),(值列表2)...;         【添加數據】
update 表名 set 被修改欄位=值,...[多個,號隔開] where (id=1); [判斷條件id=1]    【修改數據】(如果沒有加where條件,表示修改所有行,這個欄位的值)
delete from 表名 where id=1; [判斷條件id=1]                【刪除數據】(如果沒有where條件,表示刪除整張表的數據;)
truncate 表名;

truncate速度快、truncate無法回滾

--------------------------------------------------------

select * from [資料庫名.]表名;                 【查詢整張表所有數據】
select 欄位列表 from [資料庫名.]表名;              【查詢部分列表】
select * from [資料庫名.]表名 [where 條件];
select 欄位列表 from [資料庫名.]表名 [where 條件];


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

-Advertisement-
Play Games
更多相關文章
  • 版本說明:使用cocos2d-lua3.17.2版本 FairyGUI下載好鏈接地址是:https://github.com/fairygui/FairyGUI-cocos2dx 首先創建cocos項目併在VS下運行成功。 開始集成FairyGUI,參考了https://www.jianshu.co ...
  • 今天同事想要通過他的電腦在區域網中調用我本地的介面,理論上我在本地啟起來後給他對應的IP地址和埠號就可以了,所以我在自己電腦上試了一下吧localhost改成IP或127.0.0.1 試了一下......果然還是無法訪問!!!通過localhost訪問是有效的,但是通過本機IP甚至127.0.0. ...
  • 回到目錄 1. 四種BJT模型概述 對BJT晶體管建模的基本思路就是,用電路原理中的五大基本元件(電阻、電容、電感、電源、受控源)構建一個電路,使其在一定工作條件下能等效非線性半導體器件的實際工作。一旦確定了交流等效電路,電路中的BJT就可以用這個等效電路來替代,然後用基本的電路計算方程,就可以大致 ...
  • CentOs系統基本配置,包括修改主機名,創建用戶並授權,ssh免密登錄 1 永久修改主機名 sudo vim /etc/hostname 把原主機名xxx改為master(在從主機上則改為相應的slave) sudo vim /etc/hosts 把/etc/hosts中xxx修改為剛剛改過的主機 ...
  • 字元集修改做過幾次了,這次感覺還是有點不順,走了彎路,再記一遍【概況】準備搭建RAC+RAC DG,發現兩端字元集不大一致,擔心到時出問題。 【目標】將備庫NLS_NCHAR_CHARACTERSET修改成與主庫一致。--備NLS_NCHAR_CHARACTERSET UTF8修改為--主NLS_N ...
  • 安裝MySQL中YUM預設安裝路徑是/var/lib/mysql下,有時候該目錄分配的磁碟空間並不大,需要遷移到新的磁碟目錄 df -h 查看磁碟空間大小 本次遷移到 /home目錄下 1.在home目錄下創建data目錄作為預設路徑 cd /home mkdir data 2.關掉MySQL se ...
  • 前言 Hello我又來了,快年底了,作為一個有抱負的碼農,我想給自己攢一個年終總結。索性這次把資料庫中最核心的也是最難搞懂的內容,也就是索引,分享給大家。 這篇博客我會談談對於索引結構我自己的看法,以及分享如何從零開始一層一層向上最終理解索引結構,書接上文。 多頁模式 在多頁模式下,MySQL終於可 ...
  • 今天學習分散式的項目搭建,第二天使用 intelliJ IDEA 漸漸適應了操作 搭建分散式項目,我把他分為一個父工程和14個子工程 如圖是各項目的關係依賴: idea包結構: 搭建好我們所需要的工程之後,我們就需要配置XML文件和POM.xml文件 父工程的POM文件 <!-- 集中定義依賴版本號 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...