mysql練習_1_編輯數(shù)據(jù)庫

依次輸入以下命令:

mysql -uroot -p
prompt \U> ;
show databases;
create database mydb_dc;
use mydb_dc;
select database();

表的創(chuàng)建A簿!胀莹!

建立數(shù)據(jù)庫(mydb_dc),分別建立四個數(shù)據(jù)庫表:
學生表(Student)基跑、課程表(Course)、教師授課表(Teach)描焰、學生成績表(Score)
學生表 Student

序號 字段名 數(shù)據(jù)類型 說明 備注
1 Sno CHAR(8) 學號 主鍵唯一
2 Sname Varchar(10) 姓名 不為空
3 Sdept CHAR(2) 所在系 不為空
4 Sclass CHAR(2) 班級 不為空
5 Sage Number(2) 年齡
root@localhost> create table Student(
    -> Sno char(8) comment "學號" primary key,
    -> Sname varchar(10) comment "姓名" not null,
    -> Sdept char(2) comment "所在系" not null,
    -> Sclass char(2) comment "班級" not null,
    -> Sage tinyint comment "年齡");

root@localhost> show create table student; #通過這條命令可查看注釋的信息

root@localhost> desc student;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Sno    | char(8)     | NO   | PRI | NULL    |       |
| Sname  | varchar(10) | NO   |     | NULL    |       |
| Sdept  | char(2)     | NO   |     | NULL    |       |
| Sclass | char(2)     | NO   |     | NULL    |       |
| Sage   | tinyint(4)  | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

課程表 Course

序號 字段名 數(shù)據(jù)類型 說明 備注
1 Cno CHAR(3) 課程編號 主鍵唯一
2 Cname Varchar(16) 課程名稱 不為空
3 CTime CHAR(3) 課時 不為空
root@localhost> create table Course(
    -> Cno char(3) comment '課程編號' primary key,
    -> Cname varchar(16) comment '課程名稱' not null,
    -> CTime char(3) comment '課時' not null);

root@localhost> desc course;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Cno   | char(3)     | NO   | PRI | NULL    |       |
| Cname | varchar(16) | NO   |     | NULL    |       |
| CTime | char(3)     | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

教師授課表 Teach

序號 字段名 數(shù)據(jù)類型 說明 備注
1 Tname VARCHAR(8) 教師姓名 主鍵
2 Tsex CHAR(2) 教師性別
3 Cno CHAR(3) 課程編號 外鍵
4 Tdate CHAR(20) 上課日期
5 Tdept CHAR(2) 所教系 主鍵
root@localhost> create table Teach(
    -> Tname varchar(8) comment '教師姓名',
    -> Tsex char(2) comment '教師性別',
    -> Cno char(3) comment '課程編號',
    -> Tdate char(20) comment '上課日期',
    -> Tdept char(2) comment '所教系',
    -> primary key(Tname,Tdept),
    -> foreign key(Cno) references Course(Cno));

root@localhost> desc teach;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Tname | varchar(8) | NO   | PRI | NULL    |       |
| Tsex  | char(2)    | YES  |     | NULL    |       |
| Cno   | char(3)    | YES  | MUL | NULL    |       |
| Tdate | char(20)   | YES  |     | NULL    |       |
| Tdept | char(2)    | NO   | PRI | NULL    |       |
+-------+------------+------+-----+---------+-------+

學生成績表 Score

序號 字段名 數(shù)據(jù)類型 說明 備注
1 Sno CHAR(5) 學號 外鍵
2 Cno CHAR(3) 課程編號
3 Score NUMER(5,2) 成績
4 Tdept CHAR(2) 所在系
root@localhost> create table Score(
    -> Sno char(5) comment '學號',
    -> Cno char(3) comment '課程編號',
    -> Score float(5,2) comment '成績',
    -> Tdept char(2) comment '所在系',
    -> foreign key(Sno) references Student(Sno));

root@localhost> desc score;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Sno   | char(5)    | YES  | MUL | NULL    |       |
| Cno   | char(3)    | YES  |     | NULL    |       |
| Score | float(5,2) | YES  |     | NULL    |       |
| Tdept | char(2)    | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+

表的修改媳否、刪除!>G亍篱竭!
  1. Student表中增加SEX 字段,類型CHAR(2)
    alter table student add SEX char(2);
  2. Student表中列名SEX修改為Ssex
    alter table student change SEX Ssex char(2);
  3. Student表中把Sname字段的類型修改為char(10),且字段不為空
    alter table student modify Sname char(10) not null;
  4. 創(chuàng)建一個名為student_1的表步绸,其結(jié)構(gòu)和內(nèi)容(數(shù)據(jù))都取自student表
    create table student_2 as (select * from student);
  5. 刪除student_1表中的Sage列
    alter table student_1 drop Sage;
  6. 刪除表student_1
    drop table if exists student_1;

將下列數(shù)據(jù)插入到四個表中

表記錄的增加2舯啤!瓤介!

學生表

Sno Sname Sdept Sclass Ssex Sage
96001 馬小燕 CS 01 21
96002 黎明 CS 01 18
96003 劉東明 MA 01 18
96004 趙志勇 IS 02 20
97001 馬蓉 MA 02 19
97002 李成功 CS 01 20
97003 黎明 IS 03 19
97004 李麗 CS 02 19
97005 司馬志明 CS 02 18
20001 趙薇 IS 02 19
root@localhost> insert into Student (Sno,Sname,Sdept,Sclass,Ssex,Sage)
    -> value
    -> ('96001','馬小燕','CS','01','女',21),
    -> ('96002','黎明','CS','01','男',18),
    -> ('96003','劉東明','MA','01','男',18),
    -> ('96004','趙志勇','IS','02','男',20),
    -> ('97001','馬蓉','MA','02','女',19),
    -> ('97002','李成功','CS','01','男',20),
    -> ('97003','黎明','IS','03','女',19),
    -> ('97004','李麗','CS','02','女',19),
    -> ('97005','司馬志明','CS','02','男',18),
    -> ('20001','趙薇','IS','02','女',19);

root@localhost> select * from student;
+-------+--------------+-------+--------+------+------+
| Sno   | Sname        | Sdept | Sclass | Ssex | Sage |
+-------+--------------+-------+--------+------+------+
| 20001 | 趙薇         | IS    | 02     | 女   |   19 |
| 96001 | 馬小燕       | CS    | 01     | 女   |   21 |
| 96002 | 黎明         | CS    | 01     | 男   |   18 |
| 96003 | 劉東明       | MA    | 01     | 男   |   18 |
| 96004 | 趙志勇       | IS    | 02     | 男   |   20 |
| 97001 | 馬蓉         | MA    | 02     | 女   |   19 |
| 97002 | 李成功       | CS    | 01     | 男   |   20 |
| 97003 | 黎明         | IS    | 03     | 女   |   19 |
| 97004 | 李麗         | CS    | 02     | 女   |   19 |
| 97005 | 司馬志明     | CS    | 02     | 男   |   18 |
+-------+--------------+-------+--------+------+------+

課程表

Cno Cname Ctime
001 數(shù)學分析 114
002 普通物理 114
003 微機原理 72
004 數(shù)據(jù)結(jié)構(gòu) 72
005 操作系統(tǒng) 64
006 數(shù)據(jù)庫原理 64
007 數(shù)據(jù)庫設(shè)計 48
008 程序設(shè)計 56
root@localhost> insert into course(Cno,Cname,CTime)
    -> value
    -> ('001','數(shù)學分析','114'),
    -> ('002','普通物理','114'),
    -> ('003','微機原理','72'),
    -> ('004','數(shù)據(jù)結(jié)構(gòu)','72'),
    -> ('005','操作系統(tǒng)','64'),
    -> ('006','數(shù)據(jù)庫原理','64'),
    -> ('007','數(shù)據(jù)庫設(shè)計','48'),
    -> ('008','程序設(shè)計','56');

root@localhost> select * from course;
+-----+-----------------+-------+
| Cno | Cname           | CTime |
+-----+-----------------+-------+
| 001 | 數(shù)學分析        | 114   |
| 002 | 普通物理        | 114   |
| 003 | 微機原理        | 72    |
| 004 | 數(shù)據(jù)結(jié)構(gòu)        | 72    |
| 005 | 操作系統(tǒng)        | 64    |
| 006 | 數(shù)據(jù)庫原理      | 64    |
| 007 | 數(shù)據(jù)庫設(shè)計      | 48    |
| 008 | 程序設(shè)計        | 56    |
+-----+-----------------+-------+

教師授課表

Tname Tsex Cno Tdate Tdept
王成剛 004 2020.9.5 CS
李正科 003 2020.9.5 CS
嚴敏 001 2020.9.5 MA
趙高 004 2020.9.5 IS
李正科 003 2020.10.5 MA
劉玉蘭 006 2020.10.5 CS
王成剛 004 2020.10.5 IS
馬悅 008 2020.10.6 CS
王成剛 007 2020.9.5 CS

注意:teach表是通過兩個字段聯(lián)合設(shè)置的主鍵吕喘,通過Tname和Tdept確定唯一性,但是這里插入的數(shù)據(jù) 主鍵并不是唯一惑朦,最后一條數(shù)據(jù)會插入失敗兽泄。這時我們可以改變聯(lián)合主鍵 通過三個字段設(shè)置主鍵來解決這個問題漓概。

root@localhost> alter table teach drop primary key; #刪除主鍵

root@localhost> alter table teach add primary key(Tname,Cno,Tdept); #設(shè)置主鍵

root@localhost> insert into teach (Tname,Tsex,Cno,Tdate,Tdept)
    -> value
    -> ('王成剛','男','004','2020.9.5','CS'),
    -> ('李正科','男','003','2020.9.5','CS'),
    -> ('嚴敏','女','001','2020.9.5','MA'),
    -> ('趙高','男','004','2020.9.5','IS'),
    -> ('李正科','男','003','2020.10.5','MA'),
    -> ('劉玉蘭','女','006','2020.10.5','CS'),
    -> ('王成剛','男','004','2020.10.5','IS'),
    -> ('馬悅','女','008','2020.10.6','CS'),
    -> ('王成剛','男','007','2020.9.5','CS');

root@localhost> select * from teach;
+-----------+------+-----+-----------+-------+
| Tname     | Tsex | Cno | Tdate     | Tdept |
+-----------+------+-----+-----------+-------+
| 嚴敏      | 女   | 001 | 2020.9.5  | MA    |
| 劉玉蘭    | 女   | 006 | 2020.10.5 | CS    |
| 李正科    | 男   | 003 | 2020.9.5  | CS    |
| 李正科    | 男   | 003 | 2020.10.5 | MA    |
| 王成剛    | 男   | 004 | 2020.9.5  | CS    |
| 王成剛    | 男   | 004 | 2020.10.5 | IS    |
| 王成剛    | 男   | 007 | 2020.9.5  | CS    |
| 趙高      | 男   | 004 | 2020.9.5  | IS    |
| 馬悅      | 女   | 008 | 2020.10.6 | CS    |
+-----------+------+-----+-----------+-------+

學生成績表

Sno Cno Score
96001 001 77.5
96001 003 89
96001 004 86
96001 005 82
96002 001 88
96002 003 92.5
96002 006 90
96005 004 92
96005 005 90
96005 006 89
96005 007 76
96003 001 69
97001 001 96
97001 008 95
96004 001 87
96003 003 91
97002 003 91
97002 004
97002 006 92
97004 005 90
97004 006 85
97004 008 70
97003 001 59
97003 003 58

注意:score表的sno是外鍵漾月,在student表中沒有96005這個學生的信息,因而在score表中插入96005的信息會報錯胃珍,外鍵約束了梁肿,這里我們通過不插入96005的信息來解決。

root@localhost> insert into score (Sno,Cno,Score)
    -> values
    -> ('96001','001','77.5'),
    -> ('96001','003','89'),
    -> ('96001','004','86'),
    -> ('96001','005','82'),
    -> ('96002','001','88'),
    -> ('96002','003','92.5'),
    -> ('96002','006','90'),
    -> ('96003','001','69'),
    -> ('97001','001','96'),
    -> ('97001','008','95'),
    -> ('96004','001','87'),
    -> ('96003','003','91'),
    -> ('97002','003','91'),
    -> ('97002','004',null),
    -> ('97002','006','92'),
    -> ('97004','005','90'),
    -> ('97004','006','85'),
    -> ('97004','008','70'),
    -> ('97003','001','59'),
    -> ('97003','003','58');

root@localhost> select * from score;
+-------+------+-------+-------+
| Sno   | Cno  | Score | Tdept |
+-------+------+-------+-------+
| 96001 | 001  | 77.50 | NULL  |
| 96001 | 003  | 89.00 | NULL  |
| 96001 | 004  | 86.00 | NULL  |
| 96001 | 005  | 82.00 | NULL  |
| 96002 | 001  | 88.00 | NULL  |
| 96002 | 003  | 92.50 | NULL  |
| 96002 | 006  | 90.00 | NULL  |
| 96003 | 001  | 69.00 | NULL  |
| 97001 | 001  | 96.00 | NULL  |
| 97001 | 008  | 95.00 | NULL  |
| 96004 | 001  | 87.00 | NULL  |
| 96003 | 003  | 91.00 | NULL  |
| 97002 | 003  | 91.00 | NULL  |
| 97002 | 004  |  NULL | NULL  |
| 97002 | 006  | 92.00 | NULL  |
| 97004 | 005  | 90.00 | NULL  |
| 97004 | 006  | 85.00 | NULL  |
| 97004 | 008  | 70.00 | NULL  |
| 97003 | 001  | 59.00 | NULL  |
| 97003 | 003  | 58.00 | NULL  |
+-------+------+-------+-------+

表記錄的修改觅彰、刪除7悦铩!填抬!
  1. 將student表中學號為97005的學生的所在系改為MA
    update Student set Sdept='MA' where Sno= '97005';
  2. 刪除student表中學號為97005的學生的記錄
    delete from table_name where Sno= '97005';
  3. 刪除student表中的所有記錄
    delete from table_name;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烛芬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赘娄,老刑警劉巖仆潮,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遣臼,居然都是意外死亡性置,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門揍堰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹏浅,“玉大人,你說我怎么就攤上這事屏歹∫遥” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵蝙眶,是天一觀的道長凰萨。 經(jīng)常有香客問我,道長械馆,這世上最難降的妖魔是什么胖眷? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮霹崎,結(jié)果婚禮上珊搀,老公的妹妹穿的比我還像新娘。我一直安慰自己尾菇,他們只是感情好境析,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著派诬,像睡著了一般劳淆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上默赂,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天沛鸵,我揣著相機與錄音,去河邊找鬼缆八。 笑死曲掰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的奈辰。 我是一名探鬼主播栏妖,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奖恰!你這毒婦竟也來了吊趾?” 一聲冷哼從身側(cè)響起宛裕,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎论泛,沒想到半個月后续滋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡孵奶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年疲酌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片了袁。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡朗恳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出载绿,到底是詐尸還是另有隱情粥诫,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布崭庸,位于F島的核電站怀浆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怕享。R本人自食惡果不足惜执赡,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望函筋。 院中可真熱鬧沙合,春花似錦、人聲如沸跌帐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谨敛。三九已至究履,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脸狸,已是汗流浹背最仑。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肥惭,地道東北人盯仪。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像蜜葱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耀石,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344