實訓複習SQL語句

表與表之間的關係
1:1 (學生-學生證)
1:n (學生-成績)
n:n (學生-老師)

建立學生表與成績表主外鍵關聯
約束的名稱可以自己設置或者不設置由系統默認
CREATE TABLE grade(
 sno  NUMERIC(10, 0),
 course_id  VARCHAR(18),
 score INT,
 course_name VARCHAR(20),
 PRIMARY KEY(sno, course_id),
 CONSTRAINT fk_grade_students FOREIGN KEY(sno) REFERENCES students(sno)

)
在建立主外鍵關聯的時候,容易出現can't create table 的情況,我的原因是兩個鍵其中有一個設定了
not nul約束,而另一個沒有設置,其實就是類型不匹配。
刪除外鍵關聯
ALTER TABLE grade DROP FOREIGN KEY fk_grade_students
刪除主鍵約束
ALTER TABLE grade DROP PRIMARY KEY

設置check約束 以及default默認值
check約束在mysql中不起作用
ALTER TABLE persons ADD CONSTRAINT age_check CHECK(age > 0)
ALTER TABLE persons ALTER address SET DEFAULT 'chengdu'

規定要返回的記錄的數目
其他數據庫用TOP 用法select top 3 * from table
mysql用法 select * from table limit 3 顯示前三條
select * from table limit 1,3 顯示2-3條

使用通配符進行模糊查詢
select * from table where address like('%end%')
select * from table where address not like('%end%')
SELECT * FROM persons WHERE age BETWEEN 20 AND  30
SELECT * FROM persons WHERE address IN('chengdu', 'guangan')

通過子查詢來刪除課程表中沒有學生選學的課程記錄
DELETE FROM course WHERE course_id NOT IN(SELECT course_id FROM grade)
將兩個名字的學生的學生信息複製到信息表2中
INSERT INTO personal_information2 SELECT * FROM personal_information WHERE LENGTH(s_name) = 4
長度爲4是因爲漢字在mysql中一個字佔兩個字節

 

只是自己的一點記錄 如果錯誤 敬請指出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章