mysql練手數據_MySQL新手練習

操作

插入數據 的語法 :INSERT INTO 表名稱 VALUES(值1,值2,......);

修改數據 的語法:UPDATE 表名稱 SET 字段名1 = 值1, 字段名2=值2,...... 【WHERE 條件】;

刪除數據 的語法:delete from 表名 【[where 條件】;

delete 表1,表2,....... from 表1,表2,...... 【where 條件】;

查詢數據 的語法:

SELECT 查詢列表

FROM 表名或視圖列表

【WHERE 條件表達式】

【GROUP BY 字段名 【HAVING 條件表達式】】

【ORDER BY 字段 【ASC|DESC】】

【LIMIT m,n】;

別名 的語法 : AS 別名;

去重 的語法 :distinct id

著重號 的語法 : 例如:select name from t_stu;

MySQL運算符:

算數運算符 : + - * / %

比較運算符 : = > >= < <= != <=>

邏輯運算符 :&&(and) ||(or) not xor

范圍: between....and...(》=...and表達式a<=....)

not between...and...(<...>

集合 :in not in

模糊查詢 : like not like %表示0-n個字符 _表示一個字符

位運算符: &(按位與) |(按位或)^(按位異或)~(按位取反)>>(右移)<

NULL值判斷: is NULL is not NULL

關聯查詢 聯合查詢

內連接 :inner join cross join

外連接 :左外連接(LEFT OUTER JOIN)、右外連接(RIGHT OUTER JOIN)、全外連接(FULL OUTER JOIN)

自聯結 :當table1和table2本質上是同一張表,只是用取別名的方式虛擬成兩張表以代表不同的意義

迪卡爾積:

定義:將兩(或多)個表的所有行進行組合,連接后的行數為兩(或多)個表的乘積數.

關聯條件:表連接的約束條件可以有三種方式:WHERE, ON, USING

WHERE:適用于所有關聯查詢

ON:只能和JOIN一起使用,只能寫關聯條件。雖然關聯條件可以并到WHERE中和其他條件一起寫,但分開寫可讀性更好。

USING:只能和JOIN一起使用,而且要求兩個關聯字段在關聯表中名稱一致,而且只能表示關聯字段值相等

select 的5個子句:

1 、 where 條件查詢;

2 、 group by 分組查詢;

3 、 聚合函數

avg()平均值;

countI() 返回非NULL值得數目;

min() 返回最小值;

max() 返回最大值;

sum()返回總和;

4 、 having 篩選;

5 、 order by 排序 默認升序 加 DESC 降序

6 、 limit m,n 分頁 #m表示從下標為m的記錄開始查詢,第一條記錄下標為0,n表示取出n條出來,如果從m開始不夠n條了,就有幾條取幾條。m=(page-1)*n

事務

GRANT:授予訪問權限

REVOKE:撤銷訪問權限

COMMIT:提交事務處理

ROLLBACK:事務處理回退

SAVEPOINT:設置保存點

LOCK:對數據庫的特定部分進行鎖定

特性:

原子性(Atomicity):原子意為最小的粒子,或者說不能再分的事物。數據庫事務的不可再分的原則即為原子性。 組成事務的所有SQL必須:要么全部執行,要么全部取消(就像上面的銀行例子)。

一致性(Consistency):指數據的規則,在事務前/后應保持一致

隔離性(Isolation):簡單點說,某個事務的操作對其他事務不可見的.

持久性(Durability):當事務提交完成后,其影響應該保留下來,不能撤消

用法:

開啟事務(start transaction)

執行sql操作(普通sql操作)

提交/回滾(commit/rollback)

數據庫得隔離:

Oracle 支持的 2 種事務隔離級別:READ COMMITED, SERIALIZABLE. Oracle 默認的事務隔離級別為: READ COMMITED

Mysql 支持 4 中事務隔離級別. Mysql 默認的事務隔離級別為: REPEATABLE-READ

每啟動一個 mysql 程序, 就會獲得一個單獨的數據庫連接. 每個數據庫連接都有一個變量 @@tx_isolation, 表示當前的事務隔離級別.

l 查看當前的隔離級別: SELECT @@tx_isolation;

l 查看全局的隔離級別:select @@global.tx_isolation;

l 設置當前 mySQL 連接的隔離級別: set tx_isolation ='repeatable-read';

設置數據庫系統的全局的隔離級別: set global tx_isolation ='read-committed';

權限系統的工作原理:

MySQL的權限系統通過下面兩個階段進行認證:

對連接到數據庫的用戶進行身份認證,以此來判斷此用戶是否屬于合法的用戶,合法的用戶通過認證,不合法的用戶拒絕連接

對通過認證的合法的用戶則賦予相應的權限,用戶可以在這些權限范圍內對數據庫做相應的操作

用戶表user

user表有39個字段。這些字段可以分為4類:

l 用戶列:host,user,password三個字段

l 安全列:ssl_type、ssl_cipher、x509_issuer、x509_subject

n ssl用于加密;x509標準可以用來標識用戶。普通的發行版都沒有加密功能。可以使用SHOW VARIABLES LIKE 'have_openssl'語句來查看是否具有ssl功能。如果取值為DISABLED,那么則沒有ssl加密功能。

l 資源控制列:max_questions(每小時可以允許執行多少次查詢)、max_updates(每小時可以允許執行多少次更新)、max_connections(每小時可以建立多少連接)、max_user_connections(單個用戶可以同時具有的連接數)

n 默認值為0,表示無限制。

示例:

例1:創建用戶admin,權限為可以在所有數據庫上執行所有權限,但只能從本地進行連接

GRANT ALL PRIVILEGES ON . TO admin@localhost;

可以發現除了Grant_priv權限外,所有權限在user表里面都是Y.

例2:在例1基礎上,增加對admin的grant權限

GRANT ALL PRIVILEGES ON . TO admin@localhost WITH GRANT OPTION;

例3:在例2基礎上,設置密碼為“123”

GRANT ALL PRIVILEGES ON . TO admin@localhost IDENTIFIED BY '123' WITH GRANT OPTION;

例4:創建新用戶chai,可以從任何IP進行連接,權限為對test數據庫的所有表進行SELECT、UPDATE、INSERT、DELETE操作,初始密碼為“123”

GRANT SELECT,INSERT,UPDATE,DELETE ON test.* TO 'chai'@'%' IDENTIFIED BY '123';

發現此例,user表中權限都是N,db表中增加的記錄權限則都是Y

注意:

mysql數據庫的user表中user的值為空,表示所有用戶都可以連接(此處不能用,表示用戶名為*的用戶了)

mysql數據庫的user表中host的值為*或空,表示所有外部IP都可以連接,但是不包括本地服務器localhost,因此如果要包括本地服務器,必須單獨為localhost賦予權限。如果host的值為%,表示所有IP,包括本地服務器localhost。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277572.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring security config

spring secuirty 相關的配置解析 permitAll()與web.ignoring() ingore是完全繞過了spring security的所有filter&#xff0c;相當于不走spring securitypermitall沒有繞過spring security&#xff0c;其中包含了登錄的以及匿名的。轉載于:https://www.cnblogs.com/MND1024/p/10…

TSPITR方式數據庫找回誤操作丟失的數據

一、TSPITR介紹 TSPITR全稱是Tablespace Point In Time Recover&#xff08;表空間基于時間點的不完全恢復&#xff09;。原理是通過輔助實例基于時間還原出誤操作前的數據通過DataPump將數據導入到目標數據庫。TSPITR的最大好處是不需要生產庫停機。 二、適用場景 表空間時點恢…

烏班圖系統的MySQL_烏班圖系統mysql主從備份

一&#xff0e;準備系統&#xff1a;ubuntu 14.04.2 LTSMysql: server version 5.5.43兩臺主機可以互相通信&#xff1a;192.168.1.11 master192.168.1.12 slave二&#xff0e;步驟Master部分&#xff1a;1.創建備份帳號&#xff1a;slave密碼&#xff1a;slaveGrant repl…

mysql table alter_MySQL-ALTER TABLE命令學習[20180503]

學習ALTER TABLE刪除、添加和修改字段和類型CREATE TABLE alter_tab01(id int,col01 char(20))enginInnoDB default charsetutf8;刪除字段ALTER TABLE DROP ;mysql> alter table alter_tab01 dropcol01;Query OK, 0 rows affected (0.01sec)Records: 0 Duplicates: 0 Warnin…

時間戳轉換

13 位時間戳轉換 1 通過java&#xff0c;如下&#xff1a; public static String timeStamp2Date(String time) {Long timeLong Long.parseLong(time);SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要轉換的時間格式Date date;try {date …

React.Component(V16.8.6)

組件的生命周期 掛載 當組件實例被創建并插入 DOM 中時&#xff0c;其生命周期調用順序如下&#xff1a; constructor()static getDerivedStateFromProps()render()componentDidMount()componentWillMount() 之后將廢棄 更新 當組件的 props 或 state 發生變化時會觸發更新。組…

mysql date類型加一個月jdbc_JDBC操作數據庫Date類型數據

JDBC操作數據庫Date類型數據由于java原生的工具類java.util提供的Date對象與JDBC提供的Date對象并不相同分別是java.util.Date和java.sql.Datejava.sql.Date是java.util.Date的子類所以在進行增刪改查部分操作中&#xff0c;不能直接將原生工具類的Date對象直接運用到JDBC中可以…

使用深度學習TensorFlow框架進行圖片識別

Apsara Clouder大數據專項技能認證&#xff1a;使用深度學習TensorFlow框架進行圖片識別本認證系統的介紹了深度學習的一些基礎知識&#xff0c;以及Tensorflow的工作原理。通過阿里云機器學習PAI基于經典的CIFAR-10數據集實現圖片識別。學員可以通過本實驗&#xff0c;對深度學…

刪除開發分支 新建另一個開發分支

//查看狀態 git status //查看分支 會有一個分支git branch -d wlh-dev git branch //刪除wlh-dev 分支 git branch -d wlh-dev //再次查看分支 git branch //拉代碼 git pull //查看狀態 git status //新分支創建的同時切換分支 git checkout -b wlh-dev1222 //…

ES語法及-IK分詞器

{"query": {"query_string": {"default_field": "title",//全文搜索"query": "器大"}} } "id":1, "title":"Elasticsearch是一個基于Lucene的搜索服務器", "content":&q…

Git倉庫配置

安裝git依賴包 yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 源碼安裝 wget https://github.com/git/git/archive/v2.7.4.zip unzip v2.7.4.zip cd git-2.7.4 make prefix/usr/local/git all make prefix/usr/l…

python3 tkinter電子書_Python3 Tkinter-Text

1.創建from tkinter import *rootTk()tText(root)t.pack()root.mainloop()2.添加文本from tkinter import *rootTk()tText(root)t.insert(1.0,0123456789)t.insert(1.0,ABDCEFGHIJ)t.pack()root.mainloop()3.設置添加位置from tkinter import *rootTk()tText(root)for i in ran…

問題 1: 區間交集

問題 1: 區間交集 題目描述 輸入 5 個正整數 a1、b1、a2、b2 和 c&#xff0c;如果 c 在區間[a1, b1]內 并且 c 也在區間[a2, b2]內&#xff0c;輸出”in”&#xff0c;否則輸出”out”。 注意&#xff1a;方括號表示的是閉區間&#xff0c;[a, b]是包括 a 和 b 的。 輸入 一行…

python倒三角形粉色填充筆的形狀海龜_Python001-Turtle(海龜繪圖)詳解

一、簡介Turtle庫是Python語言中的一個繪制圖像的函數庫。詳細文檔&#xff1a; https://docs.python.org/zh-cn/3/library/turtle.html二、使用1.畫布設置(canvas)(1)設置畫布大小turtle.screensize(canvwidthNone, canvheightNone, bgNone)參數分別為畫布的寬(單位像素), 高,…

Python 提取數據庫(Postgresql)并郵件發送

剛入門python&#xff0c;發現確實是一個不錯的語言。業務部門要求將將某一個數據庫中的表&#xff0c;定期發送到相關部門人員郵箱。其實整個業務需求很簡單&#xff0c;實現起來也不難。但是由于剛入門python&#xff0c;所以還是借鑒了不上網上的內容&#xff0c;也得到了許…

4.Python的不堪一擊到初學乍練(列表,元組)

Python(列表,元組) 一.列表 列表初識 列表是python的基礎數據類型之一,其他編程語言也有類似的數據類型. 比如JS中的數組, java中的數組等等,它是以[ ]括起來, 每個元素用","隔開并且可以存放各種數據類型.列表相比于字符串,不僅可以存放不同的數據類型,并且可以存放…

【前端工程師手冊】說清楚JavaScript中的相等性判斷

有哪些判斷相等性的方法 JavaScript現在提供了三種方法來判斷相等性&#xff1a; &#xff0c;三個等號即嚴格相等&#xff0c;兩個等號即寬松相等Object.is()&#xff0c;ES6中用來判斷相等的方法判斷相等性的細節 &#xff08;嚴格相等&#xff09; 被比較的兩個數不會進行類…

python多任務編程_python線程的多任務編程

多任務多任務介紹對于人來說&#xff0c;一邊聽歌&#xff0c;一邊跳舞就是多任務。對于電腦&#xff0c;簡單的說&#xff0c;同一時間執行多個程序處理數據叫做多任務多任務理解單核CPU單核cpu在處理多任務的時候是根據時間片輪轉的方式進行的&#xff0c;比如執行QQ1us&…

列舉python的5個數據類型_python公開課|新公布的5個python核心數據類型,這些細節你難道還不不知道嗎...

【摘要】在這個科學技術高速發展的時代&#xff0c;越來越多的人都開始選擇學習編程軟件&#xff0c;那么首先被大家選擇的編程軟件就是python&#xff0c;也用在各行各業之中&#xff0c;并被大家所熟知&#xff0c;所以也有越來越多的python學習者關注python就業方向問題&…

selenium3 + python - page_source頁面源碼

前言&#xff1a; 有時候通過元素的屬性的查找頁面上的某個元素&#xff0c;可能不太好找&#xff0c;這時候可以從源碼中爬出想要的信息。selenium的page_source方法可以獲取到頁面源碼。 本次以博客園為例&#xff0c;先爬取頁面源碼&#xff0c;通過re正則表達式爬取出url&a…