1. 程式人生 > >MySQL資料庫管理(命令)

MySQL資料庫管理(命令)

第一次接觸mysql,記錄一下

學習資料:https://www.cnblogs.com/GarveyCalvin/p/4297282.html

1.檢視當前有哪些資料庫

show databases;

2.建立資料庫

create database xxxxx;

3.將它的編碼設定為utf8格式

ALTER DATABASE student_xxx CHARACTER SET UTF8;

4.使用資料庫並檢視當前使用的資料庫

5.在資料庫裡建立表格(記得先進入資料庫)

6.檢視一下當前表格

7.為表增加元素

alter table student_1 add sex char;

8.修改欄位

alter table student_1 MODIFY sex int(6);

9.刪除欄位

10.表中插入資料並檢視

給個例子吧:

用 2 種方法在資料庫student中建立 StudentInfo,CourseInfo 兩張表:

StudentInfo

{

學號;   姓名;   性別;   生日;(有約束)   班級;   系科;   所選課程 1;   所選課程 2;

}

CourseInfo

{

課程編號;   課程名稱;   面向專業;   課程容量(?人);

學分;

}

我們先建立第一個表

create database student;

use student;
create table StudentInfo(
    -> Number int,
    -> Name varchar(10),
    -> Sex char(7),
    -> Birthda datetime,
    -> class int,
    -> major varchar(20),
    -> course1 varchar(20),
    -> course2 varchar(20));

 desc StudentInfo;

插入幾個資料試試看

insert StudentInfo
    -> values
    -> ('16271226','xiaoyuyu','female','1998.10.28','16273612','xinxianquan','shuxue','yuwen');
insert StudentInfo
    ->  values
    -> ('16271227','xiaoli','male','1998.10.28','16273612','shuxue','yingyu','jingji');

在圖形介面可以發現數據的確被插入了

但是為了嚴謹,生日和性別都需要一定程度上的約束

我現在表格裡把Sex的型別改成enum

我再次插入資料是,Sex的值輸入emale,會發現無法插入該Sex值

我自己是覺得圖形寫片段還是蠻坑的,嘗試一下命令列

alter table StudentInfo
    -> add constraint daycheck CHECK(Birthda<getdate());

alter table StudentInfo
    -> add constraint sexcheck CHECK(Sex=male or female);

然後發現數據該插入插入,後來瞭解到這東西只是個check,就是幫你檢查一下,最多提醒一下,最後還是該幹嘛幹嘛……打擾了,全憑自覺,也不知道是不是我phpstudy的問題,詳見這個帖子:https://blog.csdn.net/u012422446/article/details/51034704

然後我們試一下嘗試在表中求和和求平均數,如下

select ACG(column) as xxx from table where(condition)

接下來我們又建了一張表

我們主要是為了實現兩個操作,1.liyang沒選什麼課,這個不難;2.有幾個姓wang的,同時按照年齡降序排列

1.比較簡單就不說了

2.select 'Name','Age'FROM kemubiao WHERE 'Name'='wang'order by 'Age'desc

同時我們還可以查詢姓wang學生的年齡

 

 

接下來做個大的實驗,要包含好多資訊

這個a\b分別是兩個資料庫,同時可以切成若干張表來實現一些操作,頭大

查詢內容如下

感覺前六個問題是屬於一塊的,先一起完成以下,首先第一步我們要考慮的就是要建立哪些表

我先見了一學生清單和課程清單,如下

然後接下來對應著課程我們建立各個課程的表格,我們先建立一個課程(gugugu)

完成查詢任務2

接下來我們試著查詢在gugu中小於60分的同學的學號與姓名,這裡我們採用了巢狀查詢

select Name,Number from student where Name in (select Name from gugu where score<60);

但我們還需要課程名稱,課程編號和成績才能完成查詢3,但是很明顯的是,我們表格中有些欄位名是一樣的,所以要在變數前加上表明來區分

這個時候肯定有些人覺得再用套現和集合查詢是多此一舉,直接在gugu裡面select裡面查詢不就好了,但是這不是為了學習麼,所以就多此一舉一下,先輸出成績

然後輸出課程名和編號

綜合查詢3完成,隨後我又在student表中增加了欄位class int(1),yixuan1 varchar(20),yixuan2 varchar(20),yixuan3 varchar(20)以及另外兩門課的表格

接下來我們來搜查一下xuanjiang上過哪些老師的課

這裡最後用了一個去重的操作偷了一下懶,綜合查詢4就完成啦

求某個老師成績最好的學生其實也還好,用內建函式max就好了

然後通過成績輸出學生姓名與學號

綜合查詢5完成

接下來兩個綜合查詢我覺得單獨搜尋比較好

我自己是建立了使用者,發帖,回帖三個表格

然後用潛逃直接完成綜合查詢6