mysql 先刪后增 更新_MySQL 高級操作——新增數據、更新數據、刪除數據、查詢數據...

新增數據

多數據插入

只要寫一次insert指令,但是可以插入多條記錄

語法:insert into?表名 [(字段列表)] values (值列表1),(值列表2),(值列表3);

主鍵沖突

主鍵沖突,在有的表中,使用的是業務主鍵(字段有業務含義),但是往往在進行數據插入的時候,又不確定數據表中是否已經存在對應的主鍵

解決方案:

1、主鍵沖突更新

類似插入語法,如果插入過程中主鍵沖突,那么采用更新方法分

insert into?表名 [(字段列表)]?values (值列表) on duplicate key?update?字段 =?新值;

2、主鍵沖突替換

當主鍵沖突之后,干掉原來的數據,重新插入進去

replace into [(字段列表)] values (值列表);

蠕蟲復制

一分為二,成倍增加。從已有的數據中獲取數據,并且將獲取到的數據插入到數據表中。

語法:insert into 表名 [(字段列表)] select? */字段列表 from?表;

1、蠕蟲復制的確通常是復制數據,沒有太大業務數據:可以在短期內快速增加表的數據量,從而測試表的壓力,還可以通過大量數據來測試表的效率(索引)

2、蠕蟲復制,要注意主鍵沖突。

更新數據

1、在更新數據的時候,要注意通常一定是跟隨條件更新

update?表名 set?字段名 =?新值 where?判斷條件l

2、如果沒有條件,是全表更新數據,但是可以使用limit來限制更新的數量

update?表名 set?字段名 =?新值 [where?判斷條件] limit?數量;

刪除數據

1、刪除數據的時候,盡量不要全部刪除,應該使用where進行判定

2、刪除數據的時候可以使用limit來限制要刪除的具體數量

delete?刪除數據的時候,無法重置auto_increment

重置語法:trunacate?表名

查詢數據

完整的查詢指令:

select select選項?字段列表?from?數據源 where?條件 group by?分組 having?條件 order by?排序?limit?數量限制;

select選項:系統該如何對待查詢得到的數據

all:默認的,表示保存所有的記錄

distinct:去重,去除重復的記錄,只保留一條(滿足重復:所有的值都相同)

字段列表:

有的時候需要從多張表獲取數據,在獲取數據的時候,可能存在不同表中有同名字段,需要將同名的字段命名成不同名的,

基本語法:?字段名 [as]?別名

from數據源

from是為前面的查詢提供數據:數據源只要是一個符合二維表結構的數據即可

單表數據:from?表名

多表數據:from?表名1 , 表名2

結果是兩張表的記錄數相乘,字段數拼接。得到的結果在數學上叫”笛卡爾積“,這個結果除了給數據庫造成壓力,沒有其他意義,應該盡量避免出現笛卡爾積。

動態數據:from (select?字段列表 from?表) [as] 別名

from后面跟的數據不是一個實體表,而是一個從表中查詢出來得到的二維結果表

where子句

用來從數據表獲取的時候,進行條件篩選,使用過運算符進行結果比較來判斷數據。

數據獲取原理:針對表去對應的磁盤處獲取所有的記錄(一條條),where的作用是在拿到一條結果之后就開始進行判斷,判斷是否符合條件,如果符合就保存,不符合就舍棄(不放在內存中)

group?by子句

分組的恨意:根據指定的字段,將數據進行分組:分組的目標是為了統計(如根據性別將男女分組)

分組統計:group?by?字段名;

group?by?只能幫助數據分組統計,并不能將分組情況展示,在分組之后只會保留每組的第一條記錄

利用一些統計函數:(聚合函數)

count():統計每組中的數量,如果統計目標是字段,那么不統計為空NULL字段

avg():求平均值

sum():求和

max():求最大值

min():求最小值

多分組:

將數據按照某個字段進行分組后,對已經分組的數據進行再次分組

基本語法:group by?字段1,字段2;? //先按照字段1進行分組,結果再 按照字段2分組

分組排序:

MySQL中分組默認有排序的功能:按照分組字段進行排序:默認為升序

語法:group by?字段1 [asc|desc] , [字段2[asc|desc]] ;(asc為升序,desc為降序)

回溯統計:

當分組進行多分組之后,往上統計的過程中,需要進行層層上報,將層層上報統計的過程稱之為回溯統計:每一次分組向上統計的過程都會產生一次新的統計數據,而且當前數據對應的分組字段為NULL

語法:group by?字段 [asc|desc] with rollup;

51871caaae967de66d8d98c4e835957c.png

having子句

本質和where一樣,用來進行數據條件篩選。

1、having實在group子句之后,可以針對分組數據進行統計篩選,但是where不行,where不能使用聚合函數

2、having在group?by?分組之后,可以使用聚合函數或者字段別名(where是從表中取出數據,別名是在數據進入到內存之后才有的)

order by子句

排序,根據校對規則對數據進行排序

基本語法:order by?字段 [asc|desc] ;

也可以像group?一樣進行多字段排序:先按照第一個字段進行排序,再按照第二個字段進行排序

語法:order by?字段1 [asc|desc] ,?字段2[asc|desc]?;

limit子句

limit限制子句:主要是用來限制記錄數量獲取

記錄數限制:

純粹的限制獲取的數量:從第一條到指定的數量

語法:limit?數量;

limit通常在查詢的時候如果限定為一條記錄的時候,使用的比較多,有時候獲取多條記錄并不能解決業務問題,但是會增加服務器的壓力

分頁:(減輕服務器壓力,減少用戶端響應時間)

利用limit限制獲取指定區間的數據

語法:limit offset , length;? ? ? ? ? ? //offset:偏移量,從哪開始? ? ?length:最多獲取多少條記錄,但是如果數量不夠,系統不會強求

MySQL中記錄的數量從0開始

五種子句都不是必要存在,但是存在的子句需要按照順序書寫

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

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

相關文章

nltk和python的關系_NLTK學習筆記(一):語言處理和Python

目錄nltk資料下載import nltknltk.download()其中,download() 參數默認是all,可以在腳本里面加上nltk.download(需要的資料庫) 來進行下載文本和詞匯首先,通過from nltk.book import * 引入需要的內置9本書搜索文本上下文:Text.concordance(monstrous) &…

python七段數碼管倒計時_python實現七段數碼管和倒計時效果

8是典型的七段數碼管的例子,因為剛好七段都有經過,這里我寫的代碼是從1開始右轉。這是看Mooc視頻寫的一個關于用七段數碼管顯示當前時間# -*-coding:utf-8 -*-import turtle as timport timedef drawGap():t.penup()t.fd(5)def drawLine(draw):drawGap()…

rda分析怎么做_數量生態學筆記||冗余分析(RDA)

上一節數量生態學筆記||冗余分析(RDA)概述中,我們回顧了RDA的計算過程,不管這個過程我們有沒有理解透徹,我希望你能知道的是:RDA是響應變量矩陣與解釋變量之間多元多重線性回歸的擬合值矩陣的PCA分析。本節我們就是具體來看一個RD…

mysql 服務器管理員_mysql 查看數據庫管理員

mysql 查看數據庫管理員云服務器(Elastic Compute Service,簡稱ECS)是阿里云提供的性能卓越、穩定可靠、彈性擴展的IaaS(Infrastructure as a Service)級別云計算服務。云服務器ECS免去了您采購IT硬件的前期準備,讓您像使用水、電、天然氣等公共資源一樣…

python中有哪些重要的書寫規則_一文讀懂Python代碼的書寫規范

Python代碼的書寫規范1. 一致性的建議打破一條既定規則的兩個好理由當應用這個規則將導致代碼可讀性下降,即使對于某人來說他已經習慣于按照這條規則來閱讀代碼了為了和周圍的代碼保持一致而打破規則(也許是歷史原因)2. 代碼的布局縮進4個空格代碼行行最大長度 : 79字符推薦長度…

二進制文件mysql創表_MySQL_MYSQL中如何存取二進制文件,首先創建測試表testtable CREATE TA - phpStudy...

MYSQL中如何存取二進制文件首先創建測試表testtableCREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB );將文件存入表中mysql_connect( "localhost", "root", "password"); //連接數據…

樹莓派 php mysql 中文_使用樹莓派(raspberry pi)搭建網站(nginx+php+mysql+ddclient)

標簽: 樹莓派 raspberrypi php 網站 mysql分類: Linux技術最近在研究學習PHP,有時候想隨時就學習,所以就決定搭建一個網站,隨時可以進行學習,因為要24小時在線,要低功耗和安靜,所以選…

mysql從庫應用負載_線上MySQL數據庫高負載的解決思路--再次論程序應用索引的重要性...

前言:過去的筆記整理而得,未免丟失,發布個人博客。[2012年的資料筆記]場景:數據庫的負載飆升,CPU高達99%。查看進程。通過猜測推理,定位了一些select語句363478427 | apps_read | 192.168.1.113:48945 …

python獲取方法的裝飾方法_python中的方法和裝飾器

[TOC]裝飾器python中的裝飾器(decorator)是在pep 318中被首次引入,它的本質是一個函數這個函數是接受其它參數為參數,并且用一個新的,修改后的函數作為替換,最常見的裝飾器就classmethod和staticmethoddef happy(f):return lambda…

一幫一python_[python]L1-030?一幫一?(15分)

L1-030 一幫一 (15分)“一幫一學習小組”是中小學中常見的學習組織方式,老師把學習成績靠前的學生跟學習成績靠后的學生排在一組。本題就請你編寫程序幫助老師自動完成這個分配工作,即在得到全班學生的排名后,在當前尚未分組的學生中&#xf…

java書面_Java程序猿的書面采訪String3

public class SameString {//思想二:每個字符都相應著自己的ASC碼,第一個思想的算法復雜度為O(nlogn)。一般能夠利用空間來減少時間復雜度//能夠開辟一個大小為256的數組空間,而且將256個數組元素都置為0,然后遍歷第一個字符串把字…

java fangfa_daicanfangfa java中的方法 剛入門的分不清帶參方法的作用和用處 這個可以詳細的講解如何使用帶參方法 - 下載 - 搜珍網...

第14章 帶參數的方法/01 教學演示示例/示例1:帶一個參數的方法/StudentsBiz.java第14章 帶參數的方法/01 教學演示示例/示例1:帶一個參數的方法/TestAdd.java第14章 帶參數的方法/01 教學演示示例/示例2:帶多個參數的方法/StudentsBiz.java第…

java sqlite 工具類_Java 工具類 - JDBC通用操作基類 BaseDao

封裝了增刪改查功能適用于MySQL、Oracle、SQLServer、DB2、Sybase、JTDS、PostgreSql、SQLite、Derby、H2、HSQLDB、ODBC 等等數據庫,有需要的還可以自己增加。package com.tgb.hz.jdbc;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.namin…

java 跨域 下載文件_文件下載重命名(可跨域)

一、正常情況下,我們都如此下載文件并修改文件名,在a標簽上面添加download屬性var link document.createElement(a);link.href file.url;link.download file.name;link.target"_blank";link.click();由于a.download跨域會失效,上…

java hibernate 插入數據_[Java教程]hibernate 返回新插入數據的Id

[Java教程]hibernate 返回新插入數據的Id0 2015-08-28 10:00:11例如 表明 studentInfoString sql"set set nocount on studentInfo(列名,列名) values(值,值);select identity as inserId";java代碼:public int executeCount(String sql, Map paramMap) {…

java輸入行數打印菱形_JAVA題,輸入行數,輸入列數,輸出一個菱形

展開全部1,冒泡排序1. /**2. * JAVA排序算法實現代碼-冒泡(Bubble Sort)排序。3. *4. *5. *6. */7. public class Test {8. public static void main(String[] args) {9. int[] a ;10.11. System.out.print("排序前: ");12.13. for (int i 0; i < a.length; i)1…

mysql 密碼大小寫_MySQL數據庫加密和解密~認證登陸密碼(mysql.user)和MySQL不區分大小寫...

MySQL數據庫認證密碼有兩種方式:1&#xff1a;MySQL 4.1版本之前是MySQL323加密2&#xff1a;MySQL 4.1和之后的版本都是MySQLSHA1加密還有函數:AES_ENCRYPT()加密函數和AES_DECRYPT()解密函數和MD5()加密。MySQL數據庫中自帶old_password(str)和password(str)函數,前者是MySQL…

三星手機 java_如何在三星手機上安裝Java ME應用程序?

我的手機應該可以運行&#xff1a;JavaTM&#xff1a;MIDP 2.0,基于CLDC 1.1的應用程序.但是,無論我嘗試在其上安裝哪個應用程序,我都會收到錯誤&#xff1a;已下載的JAR無效我已經嘗試在Netbeans上構建Java ME項目,使用指定的MIDP 2.0和CLDC 1.1.這些應用程序很簡單,使用Netbe…

openshift 3 mysql_最新OpenShift免費空間申請與使用教程-1G內存1G空間支持PHP和MysqL

一、OpenShift空間申請使用前必備工具1、OpenShift官網&#xff1a;1、官方網站&#xff1a;https://www.openshift.com/2、OpenShift V3&#xff1a;https://manage.openshift.com/2、Github賬號(或者其他的git倉庫也可以..)。注冊git倉庫是為了方便的實現代碼的同步&#xff…

python 簡單web音頻_Python Twisted web服務器音頻fi

我嘗試用python中的twisted創建一個簡單的web服務器。不過&#xff0c;我無法提供m4a音頻文件。在在當前程序中&#xff0c;當我加載http://localhost:8880/mp3.html時&#xff0c;它可以正常工作。它顯示音頻播放器和mp3播放。此外&#xff0c;程序同時打印“/mp3.html”和/測…