MySQL資料庫基本操作

来源:https://www.cnblogs.com/HuiH/archive/2019/10/22/11720342.html
-Advertisement-
Play Games

########################## 今天來說一下MySQL資料庫的一些基本操作 ########################## 1.創建資料庫 create database db1; //db1是資料庫名 2.查看當前存在的資料庫 show database db1; 3. ...


##########################

今天來說一下MySQL資料庫的一些基本操作

##########################

1.創建資料庫

  create database db1;  //db1是資料庫名

2.查看當前存在的資料庫

  show database db1;

3.查看資料庫定義

  show create database db1;

4.選擇資料庫

  use db1;

5.刪除資料庫

  drop database db1;

6.創建表(一個表描述的是一件事情)

  create table 表名

  (

    列名 數據類型 [約束],

    ...

  );

  列名:命名規則同Java;數據類型:參見列表;約束:約束的是值,分為主鍵約束、外鍵約束、非空約束、唯一約束、預設約束

  1)主鍵約束:要求主鍵列的數據是唯一,且不允許為空。

      單欄位主鍵:欄位名 數據類型 primary key

      多欄位聯合主鍵:primary key [欄位1,...,欄位n]

  2)外鍵約束:用來在兩個表之間建立連接。

      格式:constraint 外鍵名 foreign key 欄位名 references 主表名(主鍵列)

 1 CREATE TABLE classinfo
 2 (
 3    classid INT PRIMARY KEY,
 4    classname VARCHAR(6)
 5 );
 6 CREATE TABLE stuinfo
 7 (
 8    stuid INT PRIMARY KEY,
 9    stuname VARCHAR(6),
10    stusex CHAR(1),
11    classid INT,
12    ##添加外鍵
13    FOREIGN KEY(classid) REFERENCES classinfo(classid)    
14 );
15 COMMIT;
16 ROLLBACK;

  3)非空約束:指欄位值不能為空。

      格式:欄位名 數據類型 not null

  4)唯一約束:要求該列值唯一,允許為空,但只能出現一個空值。

      格式:欄位名 數據類型 unique

  5)預設約束:指定某列的預設值。

      格式:欄位名 數據類型 default 預設值

  6)設置表的屬性值自增:一個表只能有一個欄位使用自增約束,且該欄位必須為主鍵的一部分。

      格式:欄位名 數據類型 auto_increment

1 CREATE TABLE students
2 (
3    stu_no INT PRIMARY KEY AUTO_INCREMENT,    ##標識列    incremeny
4    stu_name VARCHAR(4) NOT NULL,
5    stu_sex CHAR(1) CHECK(stu_sex=''OR stu_sex=''),
6    stu_age INTEGER,
7    stu_phone VARCHAR(11) UNIQUE NOT NULL,
8    stu_bri DATE 
9 );

7.創建臨時表

  create temporary table a ();

8.查看表基本結構語句

  describe 表名 / desc 表名

  查看表的詳細結構語句:show create table \G 表名

9.修改表名

  alter table 舊表名 rename 新表名;

10.修改欄位的數據類型

  alter table 表名 modify 欄位名 數據類型

11.修改欄位名

  alter table 表名 change 舊欄位名 新欄位名 新數據類型;

12.修改表語句

  alter table 表名 add 新欄位名 數據類型 [約束條件] [first | after 已存在欄位名];

  alter table 表名 drop 欄位名;

13.修改欄位的排列位置

  alter table 表名 modify 欄位1 數據類型 first | after 欄位名2;

14.更改表的存儲引擎

  alter table 表名 engine=更改後的存儲引擎名;

15.刪除表的外鍵約束

  alter table 表名 drop foreign key 外鍵約束名;

16.刪除表

  drop table 表名;

17.插入數據

#單行插入:INSERT  INTO  表名  (列欄位列表)  VALUES(值內容列表);
#1.按照列欄位順序插入
  INSERT INTO students(stu_no,stu_sex,stu_name,stu_age)VALUES(NULL,'','李四',23);
#2.按照物理順序插入
  INSERT INTO students VALUES(3,'王五','',22);
#3.插入部分列的數據,其他列必須允許為空
  INSERT INTO  students(stu_name,stu_phone)  VALUES('馬六','13477778888');
#多行插入:註意標識列不支持
  INSERT   INTO   表名  (列欄位列表)  VALUES(),...,();
  INSERT   INTO   表名  (列欄位列表) SELECT  值內容列表 FROM 表名 WHERE 條件;

18.更新數據

1 UPDATE 表名 SET  列名 = 值 , ....列名 =WHERE 條件;
2   例:UPDATE students SET stu_age=21 ,stu_bri='1997-09-11' WHERE stu_no=6;

19.刪除數據

1 DELETE FROM 表名 WHERE 條件;
2     例:DELETE FROM students WHERE stu_no>3;

20.表的複製

1 #1.創建表複製
2   CREATE TABLE 新表 AS SELECTFROM 舊表 [WHERE 條件];
3   CREATE TABLE new_user AS SELECT userid,username,useraddress FROM userinfo WHERE userage>30; 
4 #2.插入數據時複製
5   INSERT INTO  新表 (列欄位) SELECT 列欄位 FROM 舊表 [WHERE 條件];
6   INSERT INTO new_user SELECT userid,username,useraddress FROM userinfo ;

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

-Advertisement-
Play Games
更多相關文章
  • 第一步: 添加GitLab的官方存儲庫: curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash 第二步: 安裝最新版本的GitLab Runner ...
  • top n:選出查詢結果的前n項,可改為 top n percent 形式:選出查詢結果的前百分之n項; inner join:內連接查詢,可改為left join(左連接)、right join(右連接); ...
  • DCL(Data Control Language)語句:數據控制語句,用於控制不同數據段直接的許可和訪問級別的語句。這些語句定義了資料庫、表、欄位、用戶的訪問許可權和安全級別。 ...
  • mysql查看資料庫性能常用命令 mysql> show global status; 可以列出MySQL伺服器運行各種狀態值,另外,查詢MySQL伺服器配置信息語句: mysql> show variables; 一、慢查詢 mysql> show variables like '%slow%'; ...
  • 之前寫過一篇博客“SQL Server中是否可以準確獲取最後一次索引重建的時間?“,裡面主要講述了三個問題:我們能否找到索引的創建時間?最後一次索引重建(Index Rebuild)的時間? 最後一次索引重組(INDEX REORGANIZE)的時間呢?,當時得出的結論,答案是我們無法準確的找到索引... ...
  • server has gone away: 如下圖 執行以下命令 @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = ON: 如下圖 修改要導入的sql數據文件(data.sql),註釋或者去掉類似以下內容的代碼: SET @ ...
  • 有兩張表,info1, info2 。 info1: info2: 現在,要用info2中的數據更新info1中對應的學生信息,sql語句如下: 運行結果如下: 更新過的info1: 至於效率問題,之前我有三張表,都在40萬左右。需要將 table2 中的兩個欄位(step1),table3 中的一 ...
  • 1、 在百度搜索mysql,點擊mysql官網上下載mysql的地址 在url直接輸入mysql的下載地址也可以:https://dev.mysql.com/downloads/mysql/ 如圖: 因為下載的是免費版,所有隻選擇 Community_Server 點開後,在“Select Oper ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...