您好,登錄后才能下訂單哦!
這篇文章主要介紹“數據庫的基本知識點有哪些”,在日常操作中,相信很多人在數據庫的基本知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”數據庫的基本知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
數據庫基本概念
命令結束符:“\g”或是“;”
Mysql支持數據類型:
數值型
整數類型
Tinyint、smallint、mediumint、int和bigint
Ddl語句(命令大小寫都可以)
創建數據庫
Create database 數據庫名
選擇要操作的數據庫:use數據庫;對于要操作的數據庫我們需要使用use來選擇
查看數據庫中的所有數據表show tables
刪除數據庫
Drop database 數據庫名稱
創建表(在某個數據庫里面創建表,需要先使用use選擇到要操作的數據庫里)
Create table 表名(
字段1名字 字段1類型 列的約束條件,
字段2名字 字段2類型 列的約束條件,
創建完表之后可以查看表單定義
Desc 表名;
查看創建表的SQL語句
Show create table 表名\G(\G選項使得記錄能按照字段豎向排列,一遍更好展示內容較長的記錄,\G之后不需要加分號)
刪除表
Drop table 表名;
修改表字段類型
Alter table 表名 modify [colimn] 字段定義 [first|after字段名];
增加表字段
Alter table 表名 add [colimn] 字段定義 [first|after字段名];
刪除表字段
Alter table 表名 change [colimn] 舊的字段名 字段定義 [first|after字段名];
注:change與modify都可以修改表的定義,不同的是change后面需要解兩次列名,不是特別方便,優點是change可以修改字段名
修改字段排列排序
[first|after字段名]這個選擇可以用來修改字段在表中的位置,新增字段默認是加載在表中最后位置,而change/modify默認不會改變字段位置
注:change/first|after 字段名 這些關鍵字都是屬于mysql在標準sql上的擴展,在其他數據庫上不一定適用
更改表名
After table 表名 rename [to] 新的表名
Dml語句
插入記錄
Insert into 表名(字段1,字段2, ...,字段n) values(值1,值2,... ,值n);
可以不用指定字段名,但是values后面的順序應該與字段排序一致
一次性插入多條記錄
Insert into 表名(字段1,字段2, ...,字段n)
Values
(值1,值2,... ,值n),
(值1,值2,... ,值n)
;
查詢記錄
select * from 表名 where 條件;(*代表你查詢表里的所有字段,如果我們查詢某一字段,只需要將*改成那一字段即可。)
查詢不重復的記錄
Select distinct 字段1,字段2 from 表名;(只要字段1,字段2任何一個字段有不同就會被選擇,一般用于distinct,只篩選一個字段)
條件查詢
注:條件查詢比較符號:=,<,>,>=,<=,!=等比較運算符,多個條件之間可以使用or and等
排序和限制
排序:
asc:由低到高,也是默認值select * from 表名 order by 字段名 asc;
desc:由高到底select * from 表名 order by字段名 desc;
多個字段排序select * from 表名 order by 字段名 desc,id desc;
數字1代表從第幾條記錄開始取(是從0開始的),數字2代表取幾條!
聚合
用戶需要進行一些匯總操作,這就需要sql聚合操作。
①sum求和select sum(字段名) from 表名;
②count記錄總數select count(*|字段名) from 表名;
③max最大值select max(字段名) from 表名;
④min最小值select min(字段名) from 表名;
⑤GROUP BY分類聚合select department,sum(salary) from employee group by department;
⑥WITH ROLLUP分類聚合后的結果進行再匯總select sum(salary) from employee group by department with rollup;
⑦HAVING
注意:having和where的區別在于,having是對聚合后的結果進行條件過濾,而where是在聚合前就對記錄進行過濾,應該盡可能的對記錄進行先過濾!
select sum(salary) from employee group by department having sum(salary)>1000;
在一起使用:select sum(id),max(id),min(id),count(*) from a1;
表連接(顯示多個表中字段時可以使用)
連接分類
內連接:選取兩張表中相互匹配的記錄(select 表.字段,.... from 表1名,表2名,... where [匹配的條件比如 表1.字段=表2.字段];)
select 語句可以給字段起別名!直接寫在需要查詢顯示的字段的后面就行,也可以給表起別名
外連接:不僅僅選取兩張相互匹配的記錄,其他不匹配的記錄也會查詢出來
左連接
包含左邊表中的所有記錄(包括右表中沒有和它匹配的記錄)select * from 表1 left join 表2 on 表1.字段=表2.字段;
包含右邊表中的所有記錄(包括左表中沒有和它匹配的記錄)
左連接和右連接是可以相互轉換的!
子查詢(一個查詢需要另外一個查詢的結果參與的時候)
用于子查詢的關鍵字:
in在..里面(注意點 in后面的子語句必須只返回一個字段,若查詢結果唯一(只有一條)可以使用=代替in,not in與in相反)
語法:select * from 表名1 where 字段1 in(select 字段2 from 表2);
Exists(后面那個子語句有沒有查詢出記錄來,如果查詢出記錄來返回true,否則就是false,并且查詢出來的記錄的具體的值是NULL也可以,也是返回true.)
語法:select語句 where exists(select 語句);
not exits(與exists相反)
記錄聯合(我們常常會碰到需要將兩個表或者多個表的數據按照一定的查詢條件查詢出來后,將結果合并到一起顯示這是就需要用到記錄聯合)
多個select 語句用UNION或者UNION ALL隔開即可實現
區別: 前者會將多個查詢結果合并后并且進行去除重復后返回,后者 則直接合并并不去除重復
聯合的條件:查詢的列個數要相等
更新記錄
更新一個表
Update 表名 set 字段1=值1,字段2=值2,...,字段n=值n[where條件];
更新多個表中數據
Update 表1,表2,...表n set 表1.字段1=表達式1,...,表n.字段n=表達式n[where條件];
注:多表更新更多是用在根據一個標的字段來動態更新另一表的字段
到此,關于“數據庫的基本知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。