此處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 有時候多個選擇符將使用相同的設定,為了簡化 我們可以一次性為它們設定樣式,並在多個選...