資料庫增刪改查基本操作

来源:https://www.cnblogs.com/cyxy31521/archive/2018/07/27/9378204.html
-Advertisement-
Play Games

一、增加(create add insert )1,create操作庫 create database 庫名 新建庫 create database 庫名 character set 編碼表 2,create 操作表結構 新建表: create table 表名( id int primary ke ...



一、增加(create add insert )
1,create操作庫
create database 庫名 新建庫
create database 庫名 character set 編碼表


2,create 操作表結構
新建表:
create table 表名(
id int primary key auto_increment,
name varchar(20),
………….
);
primary key 主鍵約束(該列唯一值)
auto_increment 主鍵表自動增長
add 添加欄位 alter table 表名 add 列名 數據類型 約束

3,insert 操作表數據內容
insert into 表名(列名1,列名2,列名3)values(值1,值2,值3)
insert into 表名 (列名) values (值)
insert into 表名 values (全列值)
insert into 表名 (列名1,列名,列名) values (值1,值2,值3),(值1,值2,值3)


二、刪除(drop delete truncate)
1,操作庫
drop database 資料庫名

2,操作表結構
drop table 表名 (刪除的是整個表)
alter table 表名 drop 列名 刪除列
3,操作表數據
delete from 表名 where 條件
delete from 表名 (沒有where條件,刪的是表中所有記錄,逐行刪除)
truncate table 表名 (先刪除表,再創建表,等於刪除整個表)

start transaction 開啟事務 執行delete刪除,rollback 事務回滾可找回
start transaction 開啟事務 執行truncate刪除,rollback 事務回滾不可找回

三、修改 (alter modify change rename update)
1,操作庫
use 庫名:更改庫

2,alter 修改表的結構
modify 修改約束類型 alter table 表名 modify tel varchar(50)
change 修改列名 alter table 表名 change 舊列名 新列名 數據類型 約束
rename 修改表名 alter table 舊表名 to 新表名
alter database 資料庫名稱 character set 編碼表

3,update 操作表格數據
update 表名 set 列1 = 值1, 列2 = 值2 where 條件
where 條件:
id=6
id<>6 id 不等於6
id<=6
&& || ! and、or、not
id in(1,3,4,5)
is null為空,is not null 不為空
ifnull(值1,0);若為空,設置值為0;

四、查詢(select show )
1,操作庫
show databases
show create database 庫名: 查看庫編碼表
select database(); 查看正在使用的庫

2,操作表結構
show tables; 查詢表
desc 表名; 查看表結構
show create table 表名; 查看表的編碼

3,操作表數據
select 列名1,列名2 from 表名 查詢指定列的數據
select * from 表名 查詢所有列的數據

關鍵字:
as:重命名
like: 模糊查詢 like%、%like%、like__

格式:
select 列名 as 別名 ,列名 as 別名… from 表名 where 條件1 group by 列名 having 條件2 order by 排序
說明: 條件1 會先執行過濾 -> 進行分組 -> 條件2 進行過濾

順序說明:select …要顯示的內容.. from …表名.. where 條件…. group by …分組的列 …having …分組後的條件… order by …排序?
select …5… from …1.. where …2.. group by ..3…having ..4… order by ...6.

查詢排重:
select distinct 列名 from 表名 where 條件

 

五、聚合函數:
count 統計個數、sum 求和、 avg 平均值、max、 min

分組處理:group by

排序: order by 列名 asc|desc

六、多表設計
1、一對多
比如 一個部門有多個人,一個人只有一個部門
外鍵約束格式:
alter table 從表名稱 add foreign key (外鍵列的名稱) references 主表名稱(主鍵)
創建表時候,直接創建主鍵約束
dept_id int,
foreign key (dept_id) references dept(id)
2、多對多
比如:一個項目被多個程式員寫,一個程式員寫多個項目
3、一對一
比如 一個人只有一份個人檔案,一個檔案對應一個人

七、數據備份及恢復:
1,備份
mysqldump -u 用戶名 -p 資料庫名 > 磁碟SQL文件路徑
mysqldump uroot -p zhangwu> G:\mybases2.sql
Enter password:123

2,恢復
方式一:創建資料庫,導入數據
create database db1:
use db1;
source G://mybases2.sql

方式二:創建資料庫,命令行中輸入
create database db2:
退出資料庫,在dos下輸入
mysql -uroot -p db2 < G://mybases2.sql
Enter password:123


八、範式:
第一範式:1NF:資料庫表的每一列都是不可分割的原子數據項
第一範式每一列不可再拆分,稱為原子性。

第二範式:2NF:第二範式就是在第一範式的基礎上所有列完全依賴於主鍵列
第二範式的特點:
1) 一張表只描述一件事情。
2) 表中的每一列都完全依賴於主鍵

第三範式:3NF:所有列不依賴於其它非主鍵列,也就是在滿足2NF的基礎上,任何非主鍵列不得傳遞依賴於主鍵。
所謂傳遞依賴,指的是如果存在"A → B → C"的決定關係,則C傳遞依賴於A。因此,滿足第三範式的資料庫表應該不存在如下依賴關係:主鍵列 → 非主鍵列x → 非主鍵列y。

示例:學生信息表
學號 姓名 年齡 所在學院 學院地點

滿足第二範式,不滿足第三範式
存在傳遞的決定關係:
學號?所在學院 ? 學院地點

拆分成兩張表
學號 姓名 年齡 所在學院的編號(外鍵)
學院編號 所在學院 學院地點


三大範式小結:
範式 特點
1NF 原子性:表中每列不可再拆分。
2NF 不產生局部依賴,一張表只描述一件事情。白哦中的每一列是完全依賴於主鍵的。
3NF 不產生傳遞依賴,表中每一列都直接依賴於主鍵。而不是通過其它列間接依賴於主鍵。




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

-Advertisement-
Play Games
更多相關文章
  • 先寫一鍵部署腳本,肯定是先要知道如何手動安裝Apache,Mysql,php,phpmyadmin 一 Apache2的安裝 安裝好之後,手動看一下apache的版本 輸入ip(本地的話直接打localhost),瀏覽器打開: ok 安裝完成(或者你把你想展示的網頁放在 var/www裡面就好) 另 ...
  • 需要註意的是: 1.需要在當前目錄下創建hosts.txt文件,文件內容格式為: https://www.baidu.com,百度首頁 https://www.trc.com,泰然城首頁 https://www.jd.com,京東商城 2.ding_url換成自己的釘釘機器人webhook鏈接,也可 ...
  • 昨天已實現一個模擬器的原型. 模擬器的基本原理是, 用另外一種方式實現所有腳本會訪問到的API , 然後把腳本操作的數據, 在網頁上展現出來. 模擬器可以覆蓋大部分開發的情況, 在不使用硬體前就把代碼調試好. 開發速度會更上一個臺階. 下一個階段是完善各種硬體介面, TCP/HTTP/WebSock ...
  • 系列目錄 一、安裝MySql 二、安裝並破解Navicat 三、沒有my.in配置文件怎麼辦 四、設置MySql的大小寫敏感 五、重置MySql登陸密碼 之前說過,Windows操作系統中,我們安裝Mysql有兩個選擇:一是下載MSI點擊運行,利用windows系統安裝程式的方法按部就班的來安裝;二 ...
  • 過程,函數,觸發器是PL/SQL編寫的,存儲在oracle中的.PL/SQL是非常強大的資料庫過程語言. PL/SQL優點:性能,模塊化,網路傳輸量,安全性缺點:移植性不好 簡單分類:塊:過程,函數,觸發器,包 Demo:create or replace procedure sp01 isbegi ...
  • 占座 ...
  • 轉自:http://www.maomao365.com/?p=6965 摘要: 下文將分享兩種將欄位中null值替換為指定值的方法分享,如下所示: 實驗環境:sqlserver 2008 R2 例: ...
  • 一、 約束的含義和分類 1.1約束的含義:是一種限制,用於限製表中的數據,保證數據的完整性和一致性。 1.2約束的分類: ①not null:非空,保證欄位不能為空。違反約束不會報錯,但是會有警告,適用於說有的類型。 ②default:預設約束,當數據插入的時候,指定的欄位如果沒有數據插入,即插入默 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...