模式:描述關於庫和表的布局的以及特徵的資訊
列和資料型別 行
主鍵
在資料庫增刪改查時用sql的關鍵字進行構成
sql的關鍵字不能是列表的名
sql語句由子句構成,有些子句是必須的,有些是可選的.乙個子句通常是由乙個關鍵字和所提供的資料組成的
not操作符
upper()可以將文字轉換成大寫
lower() 轉成小寫
left() 返回字串左邊的字元
right()返回字串右邊的字元
soundex()返回字串的soundex值
組合聚集可以同時使用
可以巢狀先用where對行過濾,在對組過濾
想要乙個有序的,必須用order by 來進行排序,不要依賴group by 的排序
叉聯結:笛卡爾積的聯結有叫叉聯結
select c1.cust_id, c1.cust_name, c1.cust_contact from customers as c1, customers as c2 where c1.cust_name = c2.cust_name and c2.cust_contact = 『jim jones』;
自然聯結
外聯結外連線包含左連線(letf outer join)和右連線(rigth)
我們一般使用的是內聯結,但是外聯結也是有效的
關於確切的聯結語法,應該檢視具體的文件,了解dbms支援哪種語法
保證聯結的正確的聯結條件
應該總是提供聯結條件的,要不然會出現笛卡爾積
在使用聯結多個不同的聯結方式聯結多個表時,需要確保,每個聯結的正確性
插入行的一部分
插入每個查詢結果
實際上dbms不會關心資料來自**,要滿足插入的條件就可以,投入對應的列中
insert 一次只能插入行
insert select 可以一次插入查詢到的所有行
從乙個表複製到另乙個表中
在使用insert時需要一定的許可權
從表中刪除所有的行
當遇到外來鍵時如果該行還關聯著關係,就會報錯
delete刪除的是一行,所以沒有萬用字元
對null的使用
建立表的時候要考慮到未來可能的需求,盡量不要對錶的結構進行大的改動
可以對已有的的表新增列不過,對所增加的列的型別是有限制的
大部分dbms是不允許刪除列和對錶的列進行更改
大部分dbms是允許修改表的列名的
許多dbms對已填入資料的列的限制更改,對沒有填入的幾乎沒有限制
alter table
更改和刪除列,增加約束,外來鍵都是類似的語法
對複雜的表更改需要的步驟
資料庫 SQL之LIMIT ,OFFSET
select prod name from products limit 4 offset 3 limit 4 offset 3指示mysql等dbms返回從第3行 從0行計數 起的4行資料。第乙個數字是檢索的行數,第二個數字是指從哪兒開始。mysql和mariadb支援簡化版的limit 4 of...
資料庫之SQL語法
建立資料庫 create database mytest 建立表 create table t user primary key 定義該列為主鍵列 auto increment表示該列的值,由dbms自動生成,為自動增長列 auto tab鍵 id int primary key auto incr...
資料庫sql 練習一
最近接觸了一到資料庫sql的題目,在這裡記錄一下,方便以後檢視,也歡迎各位小夥伴一起學習,如果不對,還請指出,萬分感激。題目 一。根據下面四個表,寫出sql 我直接在資料庫中新建了這幾張表,建庫指令碼語句如下 create table pe student id int 9 grade id int...