資料庫MYSQL入門教程 2 資料庫操作指令

2021-08-09 15:02:44 字數 4106 閱讀 1243

此處mysql指令用大寫表示,而在實際運用中並不區分大小寫。

mysql -h (host_name) -u (user_name) -p
括號內的內容為自行填寫的內容,在連線本地伺服器且是預設設定的情況下,可以省略,-h這部分內容,而在user_name括號內填寫root即可

mysql -u root -p
使用上述語句,填寫密碼後即可登陸。

exit

create database test;

use test;

drop table table_test;

describe table score;

show databases;

show tables;
到目前為止,都是些無個人特徵的指令,無需記憶,只要在需要使用時查詢即可。

首先,我們來閱讀一段**,這段**用於在選定的資料庫中建立乙個存放學生成績的資料表。

create table score

(student_id int unsigned not null ,

event_id int unsigned not null,

score int unsigned not null,

primary key (event_id,student_id),

foreign key(event_id) references grade_event(event_id),

foreign key (student_id) references student(student_id)

) engine=innodb;

為了讀懂這個程式,接下來我們一行行來閱讀。

第一行的create table score,是建立資料表的最簡單形式,即建立乙個空表,若你想這麼做,只需要輸入

create table score;
第三行有那麼幾個成分,1.student_id 2.int unsigned 3.not null 

第乙個成分代表該列的表頭,名為student_id,即代表該錶的第一列存放的是學生學號;第二個成分代表該列的資料型別,在學習筆記3中我會詳細解釋,此處代表學生學號為無符號整形類;第三個成分代表該列的資料情況,在這個位置有三個選擇(1.not null 2. null 3.不填),not null代表該列資料不能為空,null和不填都代表了該列資料可填可不填。

第五行又是乙個特殊指令,primary key使括號內的兩個成分組成該表中的唯一特徵,舉乙個例子,1號學生在1號考試中會有乙個成績,1號學生可以在2號考試中也有乙個成績

,但1號同學不會在1號考試中不會有兩個成績,這可能有些繞口,還請你自己多進行試驗。

第六行是foreign key子句,這句話用來定義約束條件,比如第六行就是定義的event_id的約束條件,references表明這個event_id與哪乙個表(此處為grade_event)的哪一列(此處為event_id)進行對應,此處用來確保在grade_event表中建立了乙個event_id後,才能在score表中登記event_id,保證表中不會出現虛假資訊。

第七行的末尾是顯示的表明儲存引擎是innodb,儘管在新版本中預設引擎就是innodb,但還是想在此指出可以由這種方式更換儲存引擎。

為了各位能夠試驗上述**,請在執行上述**前,先執行以下**,同時請各位測試下是否能讀懂這些**了呢。

create table student

(name varchar(20) not null,

*** enum('f','m') not null,

student_id int unsigned not null auto_increment,

primary key (student_id)

) engine=innodb;

create table grade_event

(date date not null,

category enum('t','q')not null,

event_id int unsigned not null auto_increment,

primary key (event_id)

) engine=innodb;

需要指出的是,

auto_increment

為一特殊指令,表示該列資料在不賦予值的情況下會自動在已有的數字上+1

執行後效果如果所示:

你可以選用任意一種方式,但必須注意他們的區別,第一種插入方式必須填寫每一列需要填入的值,而第二種方式可以的選擇想要填寫的任意列。

此外,mysql提供各位批量插入資料的方式,即

查詢資料在mysql中是乙個非常關鍵的功能,怎麼讀取儲存的資料決定了你對資料庫的理解程度。

首先筆者像指出最簡單的一條查詢指令:

學會這句話,各位就可以獲取儲存在表中的資料了。

接下來,筆者想展示乙個複雜形式:

select student.student_id,student.name,score.score 

from grade_event inner join score inner join student

on grade_event.event_id=score.event_id

and score.student_id=student.student_id

order by student.student_id;

通過以上這個形式,我們可以將三個表的形式結合到乙個表中進行輸出。

首先,student.student_id用來確定是哪個表中的哪個資訊(這裡是student表中的student_id資訊)

其次,inner join表示將兩個不同的表聯絡起來表示,on表示依據什麼關係將兩個表聯絡起來,此處是依據event_id這個變數進行聯絡,即event_id相同的一行屬於同乙個人

最後,order by表示依據什麼規律進行排序,此處表示根據student_id從大到小進行排序。

在嘗試以上這句查詢形式前,請先新增以下指令:

insert into score values(1,1,95);
接下來,請再看一種形式

這句話使用了乙個新的成分,where,用where可以限定查詢的條件,後面可以跟各種邏輯形式。

以上形式都非必須,請各位自行搭配用來獲取最理想的效果。

mysql提供了更新資料的功能,使用該指令可以直接覆蓋資料表中的原值,必須注意的是該指令必須搭配where來使用,避免造成致命性問題(更新了整張表)

5.刪除表中資料

注意事項和更新資料類似,用法如下

delete from student where student_id=2;

python 入門教程(操作mysql資料庫)

pymsql是python中操作mysql的模組,其使用方法和mysqldb幾乎相同。但目前pymysql支援python3.x,而mysqldb不支援3.x版本。進入 cmd 輸入 pip install pymysql 回車等待安裝完成 import pymysql 匯入 pymysql 如果編...

css入門教程資料(2)

三 層疊樣式表的格式一般來說,樣式表的宣告分為選擇符 selector 和塊 block 塊裡包含屬性 properties 和屬性的取值 value 基本格式如下 選擇符 其它格式1 選擇符1,選擇符2,選擇符3 有時候多個選擇符將使用相同的設定,為了簡化 我們可以一次性為它們設定樣式,並在多個選...

css入門教程資料(2)

三 層疊樣式表的格式一般來說,樣式表的宣告分為選擇符 selector 和塊 block 塊裡包含屬性 properties 和屬性的取值 value 基本格式如下 選擇符 其它格式1 選擇符1,選擇符2,選擇符3 有時候多個選擇符將使用相同的設定,為了簡化 我們可以一次性為它們設定樣式,並在多個選...