MySQL_6.MySQL常用創建語句

1.數據庫創建,查詢,刪除
(1)創建一個test數據庫

CREATE DATABASE test?;
CREATE DATABASE IF NOT EXISTS test;

# default character set :默認字符集

CREATE DATABASE IF NOT EXISTS test?default character set UTF8;
# default collate:默認排序規格
# utf8_general_ci:不區分大小寫
# utf8_general_cs:區分大小寫?? ??? ??? ?
CREATE DATABASE IF NOT EXISTS tkjy default character set UTF8 default collate utf8_general_ci; ?

(2)切換數據庫

use test;

(3)查詢數據庫

show databases;?


# 如果有很多數據庫,模糊查詢某個數據庫

show databases like '%test%';


# 查詢創建數據庫的語句

show create database test;


# 更新數據庫選項信息(操作需要謹慎)

alter database test?character set gbk;

(4)刪除數據庫

drop database test;
drop database if exists test;

(5)使用mysqladmin工具創建、刪除數據庫

mysqladmin create test? -uroot -p123456
mysqladmin drop test? -uroot -p123456

2.mysql約束對應的五大關鍵詞

NOT NULL:?? ??? ?如果在列上定義了 not null,那么當插入數據時,必須為列提供數據
UNIQUE:?? ??? ???當定義了唯一約束后,該列值是不能重復的,但是可以為null
Primary Key:?? ?用于唯一的標識表行的數據,當定義主鍵約東后,該列不但不能重復而且不能為NULL。
Foreign Key:?? ?用于定義主表和從表之間的關系,外鍵約束要定義在從表上,主要則必須具有主鍵約束或是 uniques約束,當定義外鍵約束后,要求外鍵列數據必須在主表的主鍵列存在或是為NULL
CHECK:?? ??? ???用于強制行數據必須滿足的條件

3.創建表,修改表,刪除表等操作
(1)在test數據庫下面創建一張student學生表

use test;
create table if not exists student(id int(5) unsigned auto_increment primary key comment '學生表主鍵',name varchar(20) not null comment '學生姓名',age tinyint ?not null comment '學生年齡',admission_time datetime comment '入學時間',gender enum('男','女','保密') comment '學生性別',student_id int(10) UNIQUE comment '學生編號'
) engine=innodb ?default charset=utf8 ?comment '學生表';# auto_increment :?? ??? ??? ?主鍵自增(可選操作)
# engine :?? ? ? ? ?? ??? ??? 表使用存儲引擎(可選操作)
# comment :?? ? ? ? ?? ? ?? ? 注釋(可選操作)
# default charset :?? ??? ?   表的字符集(可選操作)

(2)使用like 關鍵字通過舊表創建新表 ( 包括舊表的 結構 + 信息 + 索引 )

create table <table_name> like <old_table_name>;
create table a like student;

(3)使用as 關鍵字通過舊表創建新表 ( 包括舊表的 結構 + 信息 )

create table <table_name> as select * from <old_table_name>;
create table b as select * from a;

(4)查看表、表結構、表創建語句

show tables;
show tables from test;?
show tables like '%stud%';
desc student;
show create table student \G;

(5)刪除表

drop table student;

(6)重命名表

rename table student to new_student;

(7)截斷表

truncate table new_student;

(8)修改表結構

alter table <table_name> add/drop/modify/change


# 增加列、增加主鍵

alter table new_student add student_from varchar(10) not null;
alter table new_student add (phone int unique not null,email varchar(20));
alter table new_student add primary key (id);

# 刪除列、刪除主鍵約束、刪除自增的主鍵約束

alter table new_student drop email;
alter table new_student drop primary key;
alter table new_student change id id int;?
alter table new_student drop primary key;

# 重命名列

alter table new_student change student_from st_from varchar(10);

# 修改表字段屬性

alter table new_student modify st_from varchar(15) unique ;

# 修改字符集,有數據不能改

alter table new_student character set gbk;
alter table new_student character set utf8;

(9)在test數據庫創建包含外鍵的員工表(YG)和工資表(gz)

# 創建工資表

create table if not exists test.gz(id int(5) primary key comment '工資表主鍵',salary int(7) not null comment '薪水',job varchar(10) ?not null comment '工作崗位',department varchar(5) not null comment '工作部門'
)?
engine=innodb ?default charset=utf8 ?comment '員工表';

# 工資表插入數據

insert into test.gz values (1,10000,'銷售','銷售部');
insert into test.gz values (2,15000,'Oracle DBA','技術部');
insert into test.gz values (3,20000,'mysql DBA','技術部');
insert into test.gz values (4,18000,'java','研發中心');
insert into test.gz values (5,30000,'C++','研發中心');
insert into test.gz values (6,16000,'python','研發中心');
commit;

# 查看工資

select * from test.gz;

# 創建員工表

create table if not exists test.yg(id int(5) unsigned auto_increment primary key comment '員工表主鍵',name varchar(7) not null comment '員工姓名',age tinyint ?not null comment '員工年齡',entry_time year comment '入職時間',gender enum('男','女','保密') comment '員工性別',gz_id int(5) not null,foreign key (gz_id) references tkjy.gz (id)
)?engine=innodb ?default charset=utf8 ?comment '員工表';

# 外鍵必須是主表的主鍵或者唯一鍵,如果是另外一張表主鍵的話,該表主鍵不允許帶有auto_increment 自增長屬性。
# 主表記錄刪除時 on delete cascade / 更新時的動作 on update cascade?
# 創建表以后再增加外鍵也可以

?alter table tkjy.yg add foreign key (gz_id) references test.gz (id);

#插入數據測試(在主表間鍵值內成功)

insert into test.yg values (1,'春野櫻',18,2015,'女',1);
insert into test.yg values (2,'漩渦鳴人',18,2016,'男',2);
insert into test.yg values (3,'宇智波佐助',18,2017,'男',2);
insert into test.yg values (4,'第一代火影',65,1970,'男',3);
insert into test.yg values (5,'第二代火影',60,1975,'男',4);
insert into test.yg values (6,'第三代火影',38,2000,'男',5);
insert into test.yg values (7,'第四代火影',38,2000,'男',6);
commit;
select * from test.yg;

#插入數據測試(在主表間鍵值外失敗)

insert into tkjy.yg values (8,'宇智波斑',28,2020,'男',7);


外鍵總結:mysql數據庫不建議使用外鍵、會極大影響數據庫運行性能(并發訪問)。

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

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

相關文章

前端知識(七)———HTTPS:保護網絡通信安全的關鍵

當談到網絡通信和數據傳輸時&#xff0c;安全性是一個至關重要的問題。在互聯網上&#xff0c;有許多敏感信息需要通過網絡進行傳輸&#xff0c;例如個人身份信息、銀行賬戶信息和商業機密等。為了保護這些信息不被未經授權的人訪問和篡改&#xff0c;HTTPS&#xff08;超文本傳…

AI:大語言模型LLM

LLM 大語言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一種利用大量文本數據進行訓練的自然語言處理模型&#xff0c;其評價可以從多個方面進行。 以下是一些主要的評價方面&#xff1a; 語言理解和生成能力&#xff1a;評價大語言模型在自然語言理…

模型評價指標

用訓練好的模型結果進行預測&#xff0c;需要采用一些評價指標來進行評價&#xff0c;才可以得到最優的模型 常用的指標&#xff1a; 1.分類任務 ConfusionMatrix 混淆矩陣Accuracy 準確率Precision 精確率Recall 召回率F1 score H-mean值ROC Curve ROC曲線PR …

PostgreSQL pgvector:如何利用向量數據庫提升搜索效率和精度

LLMs模型實戰教程 文章來源&#xff1a;https://zhuanlan.zhihu.com/p/641516393 Kevin 一、介紹 隨著基礎模型的興起&#xff0c;向量數據庫的受歡迎程度也飆升。事實上&#xff0c;在大型語言模型環境中&#xff0c;向量數據庫也很有用。 在機器學習領域&#xff0c;我們經…

天池SQL訓練營(三)-復雜查詢方法-視圖、子查詢、函數等

-天池龍珠計劃SQL訓練營 SQL訓練營頁面地址&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicampsql 3.1 視圖 我們先來看一個查詢語句&#xff08;僅做示例&#xff0c;未提供相關數據&#xff09; SELECT stu_name FROM view_students_info;單從表面上看起來…

C#反射加載程序集并使用

具體實現參考&#xff1a; C# 動態加載DLL通過反射調用參數、方法、窗體_c#反射加載dll并傳入參數-CSDN博客 C#進階學習--反射(Reflection) - 知乎 走進C#反射機制 - 知乎 1.使用過程 //創建數據集 Assembly outerAsm Assembly.LoadFile("D:/your.dll");//獲取…

rancher harvester deploy demo 【部署 harvester v1.2.1】

簡介 Harvester 是一個現代的、開放的、可互操作的、基于Kubernetes的超融合基礎設施(HCI)解決方案。它是一種開源替代方案&#xff0c;專為尋求云原生HCI解決方案的運營商而設計。Harvester運行在裸機服務器上&#xff0c;提供集成的虛擬化和分布式存儲功能。除了傳統的虛擬機…

pgsql存儲過程

由于部分企業數據庫從aws遷移到騰訊云&#xff0c;導致有一個定時任務&#xff08;從詳情表匯總數據到統計表中&#xff09;錯過了觸發&#xff0c;所以這部分企業的數據需要觸發重新刷一下&#xff0c;但是又有規定白天不允許上線&#xff0c;只能把定時任務的邏輯用存儲過程&…

SQL SELECT 語句

SELECT 語句用于從數據庫中選取數據。 SQL SELECT 語句 SELECT 語句用于從數據庫中選取數據。 結果被存儲在一個結果表中&#xff0c;稱為結果集。 SQL SELECT 語法 SELECT column1, column2, ... FROM table_name; 與 SELECT * FROM table_name; 參數說明&#xff1a; …

五花八門客戶問題(BUG) - 用好strace

strace簡介 strace是一個用于跟蹤系統調用和信號傳遞的Linux命令,它是一個集診斷、調試、統計于一體的工具。strace可以監控用戶空間進程和內核的交互,比如系統調用、信號傳遞、進程狀態變更等。它底層使用內核的ptrace特性來實現其功能。 strace最簡單的用法是執行一個指定…

二分查找|雙指針:LeetCode:2398.預算內的最多機器人數目

作者推薦 本文涉及的基礎知識點 二分查找算法合集 滑動窗口 單調隊列&#xff1a;計算最大值時&#xff0c;如果前面的數小&#xff0c;則必定被淘汰&#xff0c;前面的數早出隊。 題目 你有 n 個機器人&#xff0c;給你兩個下標從 0 開始的整數數組 chargeTimes 和 runnin…

Django回顧7

一.Django緩存 1.緩存介紹 在動態網站中,用戶所有的請求,服務器都會去數據庫中進行相應的增,刪,查,改,渲染模板,執行業務邏輯,最后生成用戶看到的頁面. 當一個網站的用戶訪問量很大的時候,每一次的的后臺操作,都會消耗很多的服務端資源,所以必須使用緩存來減輕后端服務器的壓力…

算法:最長公共前綴(橫向掃描和縱向掃描)

橫向掃描 時間復雜度 O(m * n)&#xff0c;空間復雜度O(1) /*** param {string[]} strs* return {string}*/ var longestCommonPrefix function(strs) {// 先把第一個字符串拿出來let str strs[0]// 用 startsWith 檢查數組中每個字符串是否以當前字符串為前綴while(!strs.e…

聽GPT 講Rust源代碼--src/tools(11)

File: rust/src/tools/rust-analyzer/crates/hir/src/lib.rs 在Rust源代碼中&#xff0c;rust/src/tools/rust-analyzer/crates/hir/src/lib.rs文件的作用是定義了Rust語言的高級抽象層次&#xff08;Higher-level IR&#xff0c;HIR&#xff09;。它包含了Rust語言的各種結構和…

Python:核心知識點整理大全10-筆記

目錄 5.4 使用 if 語句處理列表 5.4.1 檢查特殊元素 toppings.py 5.4.2 確定列表不是空的 5.4.3 使用多個列表 5.5 設置 if 語句的格式 5.6 小結 第6章 字 典 6.1 一個簡單的字典 alien.py 6.2 使用字典 6.2.1 訪問字典中的值 6.2.2 添加鍵—值對 6.2.3 先創建一…

智能優化算法應用:基于蜉蝣算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于蜉蝣算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于蜉蝣算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.蜉蝣算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

JAVA+SSM+springboot+MYSQL企業物資庫存進銷存管理系統

。該系統從兩個對象&#xff1a;由管理員和員工來對系統進行設計構建。主要功能包括首頁、個人中心、員工管理、項目信息管理、倉庫信息管理、供應商管理、項目計劃管理、物資庫存管理、到貨登記管理、物資出庫管理、物資入庫管理等功能進行管理。本企業物資管理系統方便員工快…

linux 定時任務

使用 crontab Usage: crontab [-u user] [-e|-l|-r] Crontab 的格式說明如下: * 逗號(‘,’) 指定列表值。如: “1,3,4,7,8″ * 中橫線(‘-’) 指定范圍值 如 “1-6″, 代表 “1,2,3,4,5,6″ * 星號 (‘*’) 代表所有可能的值 */15 表示每 15 分鐘執行一次 # Use the ha…

C++編程法則365天一天一條(24)RTTI運行時類型信息typeid和type_info

文章目錄 基本用法編譯時或運行時判定 基本用法 typeid 是 C 的一個運算符&#xff0c;它用于獲取表達式的類型信息。它返回一個 std::type_info 對象引用&#xff0c;該對象包含有關表達式的類型的信息。 要使用 typeid 運算符&#xff0c;需要包含 <typeinfo> 頭文件…

關于振動試驗

這是試驗的說明&#xff08;來自gbt4710-2009&#xff09; 這是試驗的參數&#xff1a; 一、試驗方向&#xff1a; 振動試驗中有幾個方向 除有關規范另有規定外&#xff0c;應在產品的三個互相垂直方向上進行振動試驗。 一般定義產品長邊為X軸向&#xff0c;短邊為Y軸向&…