1. 程式人生 > >MySQL學習入門

MySQL學習入門

常用的命令

#開啟 MySQL 服務
sudo service mysql start        

#使用 root 使用者登入
mysql -u root
#展示有哪些資料庫
show databases;
#建立資料庫
create database <資料庫名>
#進入資料庫
use 資料庫名;
#展示該資料庫下有哪些表格
show tables;
#獲取表結構
desc 表格名;
#建表
create table <表名> ( <欄位名1> <型別1> [,..<欄位名n> <型別n>]);
# 正常插入資料
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11); #展示表格內容 SELECT * FROM department;

遇到的問題

  1. 外來鍵約束

外來鍵 (FOREIGN KEY) 既能確保資料完整性,也能表現表之間的關係。

一個表可以有多個外來鍵,每個外來鍵必須 REFERENCES (參考) 另一個表的主鍵,被外來鍵約束的列,取值必須在它參考的列中有對應值。
這裡寫圖片描述
如果表已經建立,需要新增外來鍵約束

ALTER TABLE mark
ADD CONSTRAINT `emp_fk FOREIGN KEY (sid) REFERENCES student(sid);

實現的是給表mark的sid變數加上來自表student的約束。
1. 主鍵約束
比如當設定序號為主鍵了,那麼同一個表中的兩個的id號就不能相同;當設定序號和名字為主鍵了,那麼兩個的序號和名字就不能夠同時一樣。

create table stu_inform(
    id int,
    name varchar(20),
    grade double,
    primary key(id)
);

實現了給id加上了主鍵約束
連結

  1. MySql 為表中已有欄位設定預設值
    已有test表,表中有個case_status欄位,現在給該欄位設定預設值為A:ALTER TABLE test ALTER COLUMN case_status SET DEFAULT 'A';

  2. 刪除表DROP TABLE tbl_name;

  3. 同時給表插入多條語句
    `# 同時插入兩條資料,看語法說明,那個into被我省略了

insert links (name,url) values(‘jerichen’,’gdsz’),(‘alone’,’gdgz’);
3、進入mysql後,如果你決定不想執行正在輸入過程中的一個命令,輸入\c取消它,它切換回到mysql>,提供反饋以表明mysql準備接受一個新命令。
4、當出現'>時,表示前面的‘’缺少’,**應該先輸入’**,後接上其他命令,如\c。即退出。
5、當設定自動遞增變數約束時,必須設為首鍵約束,預設從1開始遞增,如果想更改預設的起始值,
ALTER TABLE tbl AUTO_INCREMENT = 100;`
6、題目
先把三個表外聯成一個表格 然後查詢其中物理成績的最大值,然後顯示出想要的選項。

SELECT sid,sname,gender FROM(SELECT sid,sname,gender,max(score) FROM (SELECT a.mid,a.sid,a.cid,a.score,b.sname,b.gender,c.cname FROM mark a LEFT OUTER JOIN student b ON a.sid=b.sid LEFT OUTER JOIN c ON a.sid=c.sid) d WHERE cname='physics') z;

查出的表格是檢視 不能夠進行修改裡面的資料,要想修改 只能夠在原表格進行修改。

UPDATA mark SET score = score + 3 WHERE sid = (SELECT sid FROM student WHERE sname = 'Tom' AND cid = (SELECT cid FROM course WHERE cname = 'chemistry'));

7、賦值語句
“:=” 是真正意義上的賦值操作,左邊的變數設定為右邊的值。
“=” 則只在兩種情況下作為賦值用,第一種就是在SET語句裡面,SET var = value;
另一種是在UPDATE語句裡面的那個SET,如update table_name set column_name where….。
除了這兩種情況外”=”則作為比較操作符使用。
8、操作符優先順序
這裡寫圖片描述