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