【Mysql】數據庫基礎與基本操作

🌇個人主頁:平凡的小蘇
📚學習格言:命運給你一個低的起點,是想看你精彩的翻盤,而不是讓你自甘墮落,腳下的路雖然難走,但我還能走,比起向陽而生,我更想嘗試逆風翻盤
🛸Mysql專欄Mysql內功修煉基地
> 家人們更新不易,你們的👍點贊👍和?關注?真的對我真重要,各位路 過的友友麻煩多多點贊關注。 歡迎你們的私信提問,感謝你們的轉發! 關注我,關注我,關注我,你們將會看到更多的優質內容!!

在這里插入圖片描述

1、什么是數據庫

數據庫的缺點

  • 文件的安全性問題

  • 文件不利于數據查詢和管理

  • 文件不利于存儲海量數據

  • 文件在程序中控制不方便

為了解決上述問題,專家們設計出更加利于管理數據的東西——數據庫,它能更有效的管理數據。數據庫的水平是衡量一個程序員水平的重要指標

2、連接服務器

mysql -h 127.0.0.1 -P 3306 -uroot -p //回車后需要輸入密碼

在這里插入圖片描述

3、庫的操作

3.1、創建數據庫

create database [if not exists] 數據庫名 【指定數據庫采用的字符集】 【指定數據庫字符集的校驗規則】

說明:

【】:表示可選項

指定數據庫采用的字符集:charset=utf8

指定數據庫字符集的校驗規則:collate utf8_general_ci

3.2、創建數據庫案例

  • 創建名為 db1 的數據庫
create database db1;

說明:當我們創建數據庫沒有指定字符集和校驗規則時,系統使用默認字符集:utf8,校驗規則是:utf8_ general_ ci

  • 創建一個使用utf8字符集的 db2 數據庫
create database db2 charset=utf8;

創建一個使用utf字符集,并帶校對規則的 db3 數據庫。

create database db3 charset=utf8 collate utf8_general_ci;

3.3、字符集和校驗規則

3.3.1、查看系統默認字符集和校驗規則

show variables like 'character_set_database';
show variables like 'collation_database';

在這里插入圖片描述

3.3.2、查看數據庫支持的字符集

show charset;

字符集主要是控制用什么語言。比如utf8就可以使用中文。

3.3.3、查看數據庫支持的字符集校驗規則

show collation;

3.3.4、校驗規則對數據庫的影響

  • 不區分大小寫

創建一個數據庫,校驗規則使用utf8_ general_ ci[不區分大小寫]

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 區分大小寫

創建一個數據庫,校驗規則使用utf8_ bin[區分大小寫]

create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 進行查詢

不區分大小寫的查詢以及結果
在這里插入圖片描述

區分大小寫的查詢以及結果

在這里插入圖片描述

  • 結果排序

不區分大小寫排序以及結果:

在這里插入圖片描述

區分大小寫排序以及結果:

在這里插入圖片描述

3.4操縱數據庫

3.4.1、查看數據庫

show databases;

3.4.2、顯示創建語句

show create database 數據庫名;

MySQL 建議我們關鍵字使用大寫,但是不是必須的。

數據庫名字的反引號``,是為了防止使用的數據庫名剛好是關鍵字

3.4.3、修改數據庫

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]

對數據庫的修改主要指的是修改數據庫的字符集,校驗規則

示例:

將d1數據庫字符集改成gbk

在這里插入圖片描述

3.4.4、刪除數據庫

DROP DATABASE [IF EXISTS] db_ name;

執行刪除之后的結果:

  • 數據庫內部看不到對應的數據庫

  • 對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪

注意:不要隨意刪除數據庫

3.4.5、備份和恢復

備份

 mysqldump -P3306 -u root -p 密碼 -B 數據庫名 > 數據庫備份存儲的文件路徑

示例:

mysqldump -P3306 -u root -p -B d1 > Mysql/d1.sql

在這里插入圖片描述

還原

source Mysql/d1.sql;

注意事項

  • 如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據庫,再使用source來還原。

  • 如果備份的不是整個數據庫,而是其中的一張表

    # mysqldump -u root -p 數據庫名 表名1 > Mysql/d1.sql
    

    3.4.6、查看連接情況

    show processlist
    

在這里插入圖片描述

4、表的操作

4.1、創建表

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校驗規則 engine 存儲引擎;

說明:

  • field 表示列名

  • datatype 表示列的類型

  • character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集為準

  • collate 校驗規則,如果沒有指定校驗規則,則以所在數據庫的校驗規則為準

4.2、創建表例子

create table users (
id int,
name varchar(20) comment '用戶名',
password char(32) comment '密碼是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

說明:

不同的存儲引擎,創建表的文件不一樣.

users 表存儲引擎是 MyISAM ,在數據目中有三個不同的文件,分別是:

  • users.frm:表結構

  • users.MYD:表數據

  • users.MYI:表索引

4.3、查看表結構

desc 表名;

在這里插入圖片描述

4.4、修改表

在項目實際開發中,經常修改某個表的結構,比如字段名字,字段大小,字段類型,表的字符集類型,表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表。

  • 在users表添加二條記錄
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');

在這里插入圖片描述

  • 修改name,將其長度改成60
alter table users modify name varchar(60);
  • 刪除password列

    注意:刪除字段一定要小心,刪除字段及其對應的列數據都沒了

alter table users drop password;
  • 修改表名為employee
alter table users rename to employee;

to:可以省掉

  • 將name列修改為xingming
alter table employee change name xingming varchar(60); //新字段需要完整定義

4.5、刪除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

drop table users;

4.5.1、刪除某一行數據

delete from 表名稱 where 字段名 = 表值

4.5.2、刪除整個表的數據

delete from 表名稱

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

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

相關文章

Centos 7 出現 write error (disk full?)

問題 mysql 導入任務時,由于導出的 sql 文件是在很大 (30G),利用 SQLDumpSpliter 切割工具 切成幾個 1G 大小的 sql 文件 結果在導入大半天,突然報錯 (另一個服務器上更慘,都導入兩天快完成的…

一分鐘上手Vue VueI18n Internationalization(i18n)多國語言系統開發、國際化、中英文語言切換!

這里以Vue2為例子 第一步:安裝vue-i18n npm install vue-i18n8.26.5 第二步:在src下創建js文件夾,繼續創建language文件夾 在language文件夾里面創建zh.js、en.js、index.js這仨文件 這仨文件代碼分別如下: zh.js export de…

在Eclipse在Java里面調用Python腳本的方法

由于項目中需要用到Java調用Python的腳本,來實現一些功能,就對jython做了一些了解,通過jython可以實現java對python腳本的調用。Java調用Python開發環境配置(EclipseJythonPyDev) 1、Jython是什么 Java可以使用Jython庫來調用Python庫。Jyt…

你不得不懂的IT知識-《敏捷項目管理》

國林哥在IBM時,幾乎每天都會收到關于“敏捷”相關的郵件,公司鼓勵我們去學習郵件里的知識,參加敏捷相關的認證和培訓。剛開始我和大多數同事一樣不管不顧,后來隨著PBC里要求加上成長目標,比如要獲得一個認證&#xff0…

React使用antd的圖片預覽組件,點擊哪個圖片就預覽哪個的設置

使用了官方推薦的相冊模式的預覽,但是點擊預覽之后,每次都是從圖片列表的第一張開始預覽,而不是點擊哪張就從哪張開始預覽: 所以這里我就封裝了一下,對初始化預覽的列表進行了邏輯處理: 當點擊開始預覽的…

加載并繪制時間域內的心電圖信號,并實施Q因子為1的陷波濾波器以去除50 Hz頻率研究(Matlab代碼實現)

💥💥💞💞歡迎來到本博客????💥💥 🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ??座右銘&a…

一篇打通,pytest自動化測試框架詳細,從0到1精通實戰(一)

目錄:導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結(尾部小驚喜) 前言 pytest單元測試框…

redis學習筆記(七)

文章目錄 zset(有序集合)(1)添加成員(2)獲取score在指定區間的所有成員(3)獲取集合長度(4)獲取指定成員的權重值(5)獲取指定成員在集合…

2308C++簡單異步改造網絡庫

用簡單異步可以輕松改造同步網絡庫從而獲得大幅性能提升,用它改造異步回調網絡庫可以讓我們以同步方式寫代碼,讓代碼更簡潔,可讀性更好,還能避免回調地獄的問題. 本文通過兩個例子分別來介紹如何用簡單異步改造基于asio的同步網絡庫和異步回調網絡庫. 示例依賴了獨立版的asio(…

JavaWeb_總體介紹

文章目錄 1.總括2.JavaWeb項目架構 1.總括 2.JavaWeb項目架構

request.post,json和data

參考 https://zhuanlan.zhihu.com/p/140372568 https://zhuanlan.zhihu.com/p/140372568 介紹 這兩條請求語句使用了不同的參數傳遞方式,有以下區別:1. requests.post(urlhttp://xx.8.84.xx:8000/inference, jsondata)這個語句使用了 json 參數&#…

js設置css變量控制頁面一行展示指定個數的元素

前置知識: CSS變量之var()函數的應用——動態修改樣式 & root的使用 flex相關知識 場景: 動態設置給父元素內子元素設置每行排列幾個 通過 document.body.style.setProperty(--itemNum, 5)設置樣式變量,然后通過給父元素設置display: f…

RocketMQ發送消息失敗:error CODE: 14 DESC: service not available now, maybe disk full

在執行業務時,發現MQ控制臺沒有查詢到消息,在日志中發現消息發送失敗,報錯error CODE: 14 DESC: service not available now, maybe disk full 分析報錯應該是磁盤空間不足,導致broker不能進行正常的消息存儲刷盤,去查…

MySQL 窗口函數是什么,有這么好用

先看這段像天書一樣的 SQL ,看著就頭疼。 SELECTs1.name,s1.subject,s1.score,sub.avg_score AS average_score_per_subject,(SELECT COUNT(DISTINCT s2.score) 1 FROM scores s2 WHERE s2.score > s1.score) AS score_rank FROM scores s1 JOIN (SELECT subject, AVG(sco…

Android 13 MTK平臺添加自定義按鍵,以及CTS問題解決

添加自定義按鍵流程 一般來說上層添加以下幾處修改 驅動層的鍵值上報,讓驅動處理好即可 frameworks / base/core/java/android/view/KeyEvent.java public static final int KEYCODE_DEMO_APP_4 = 304;/** add by songhui for fingerprint Key code */+ public static fina…

IntelliJ IDEA Bookmark使用

1 增加 右鍵行號欄 2 查看 從favorite這里查看 參考IntelliJ IDEA 小技巧:Bookmark(書簽)的使用_bookmark idea 使用_大唐冠軍侯的博客-CSDN博客

neo4j的CQL命令實例演示

天行健,君子以自強不息;地勢坤,君子以厚德載物。 每個人都有惰性,但不斷學習是好好生活的根本,共勉! 文章均為學習整理筆記,分享記錄為主,如有錯誤請指正,共同學習進步。…

07-2_Qt 5.9 C++開發指南_二進制文件讀寫(stm和dat格式)

文章目錄 1. 實例功能概述2. Qt預定義編碼文件的讀寫2.1 保存為stm文件2.2 stm文件格式2.3 讀取stm文件 3. 標準編碼文件的讀寫3.1 保存為dat文件3.2 dat文件格式3.3 讀取dat文件 4. 框架及源碼4.1 可視化UI設計4.2 mainwindow.cpp 1. 實例功能概述 除了文本文件之外&#xff…

pve和openwrt以及我的電腦中網絡的關系和互通組網

情況1 一臺主機 有4個口,分別eth0,eth1,eth2,eth3 pve有管理口 這個情況下 ,沒有openwrt 直接電腦和pve管理口連在一起就能進pve管理界面 情況2 假設pve 的管理口味eth0 openwrt中橋接的是eth0 eth1 eth2 那么電腦連接eth3或者pve管理口設置eth3&#xf…

【C#】設置有線網卡IP地址,子網掩碼,網關,DNS

方法 public partial class ComputerInfo{/// <summary>/// 設置IP地址&#xff0c;子網掩碼&#xff0c;網關&#xff0c;DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, stri…