數據庫系統概論-第三章

DDL Data-Definition Language 數據定義語言mysql

DDL不只定義一組關係(表結構),而且能定義關係的信息。sql

DDL包括:關係的模式(表結構),屬性的取值範圍,完整性約束(非空,主外鍵),關係維護的索引集合(表的索引),關係的安全性和權限信息(表權限),關係在磁盤上的物理存儲結構.數據庫

數據庫支持多種基礎類型,char類型用於存儲固定長度的字符串,好比屬性A的取值範圍定義爲char(10),其取值爲'Avi',數據庫自動在其後填充七個空格。當屬性A的取值範圍爲varchar(10)時,數據庫不會在其後填充空格,因此取值範圍爲char(10)和varchar(10)的'Avi'在數據庫中比較時不必定相等。通常避免使用char.安全

DML Data-Manipulation Language 數據操做語言函數

SQL將任何涉及null的運算視爲unknown,既不是is null也不是is not null。

大學數據庫:
找出Comp.Sci系開設的三個學分的課程
SELECT title from course WHERE dept_name = 'Comp. Sci.' AND credits = 3;code

找出名爲Einstein的教師所教的全部學生的標識,保證結果中沒有重複
SELECT DISTINCT a.s_ID FROM advisor a JOIN instructor i ON a.i_ID = i.ID WHERE i.NAME = 'Einstein';索引

找出教師的最高工資
SELECT MAX(salary) from instructor;ip

找出工資最高的全部教師名稱
SELECT NAME FROM instructor WHERE salary = (SELECT MAX(salary) as max_salary from instructor);ci

給Comp. Sci系的每位教師漲10%的工資
UPDATE instructor SET salary = salary * 1.1;字符串

查詢全部至少選修了一門Comp.Sci課程的學生名稱
SELECT DISTINCT NAME AS name FROM student WHERE dept_name = 'Comp. Sci.';

MYSQL的like是大小寫不敏感的,使用binary能夠使其區分大小寫
SELECT * FROM department WHERE dept_name like binary '%Sci%';

SQL的like是大小寫敏感的,使用lower()函數能夠使其不分區大小寫
SELECT * FROM department WHERE dept_name like lower('%Sci%');

考慮查詢

select distinct p.id
from p,a1,a2
where p.id = a1.id or p.id = a2.id;

select from 多表在mysql便是作內鏈接查詢,若是p,a1,a2有

MYSQL若是沒有設置的話,在update的時候須要用主鍵做爲where的條件,須要使用SET SQL_SAFE_UPDATES = 0;關閉安全更新設置(1的話則開啓安全更新設置)

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

相關文章
相關標籤/搜索