數據庫操做,不論是服務端、前端、移動端,都或多或少的會涉及到數據的存儲、查詢、修改。因此做爲一名開發者,數據庫操做也是開發必備的一項技能。前端
SQL全稱是Structured Query Language,翻譯後就是 結構化查詢語言,是一種數據庫查詢和設計語言, 用於存取數據與及查詢、更新和管理關係數據庫系統。
常見的數據庫有MySQL、SQLServer、ORACLE、DB2等等。面試
數據庫操做概覽圖:數據庫
數據庫的基本操做步驟:函數
CREATE TABLE emp ( id int NOT NULL PRIMARY KEY, //添加主鍵 name varchar(20), gender varchar(2), performance int, salary double )
若是建立表後,忘記添加主鍵或者外鍵,可使用ALERT添加。spa
ALERT TABLE emp ADD PRIMARY KEY(id); //添加主鍵 ALERT TABLE orders ADD FOREIGN KEY (e_id) REFERENCE emp(id); //添加外鍵
向表中加入數據。翻譯
//向emp 表中插入一條數據,插入字符串時使用'' INSERT INTO emp VALUES(1, 'yijie', 'male', 85, 18000.0);
向表中插入數據的標準格式是:設計
insert into tableName(column1, column2...) values('value1', 'value2'...)
更新表中的數據。code
update emp set salary=20000 where name='yijie';
delete from emp where id=8;//刪除表中的某條數據,where後面的爲條件 delete * from emp;//刪除表中的全部數據,清空表 drop table 表名稱; //刪除某張表
注意:在使用delete刪除表中數據時,若是該表與其餘表有關聯關係,如:外鍵,得先刪除關聯表中的外鍵。orm
一張表通過一段時間的操做,避免不了會出現數據重複的狀況。重複的數據不只沒有意義,並且佔用存儲空間。這個時候distinct就悄然登場了。distinct用於根據條件去除表中的重複內容。排序
//查詢emp中的name,返回惟一的名字 select distinct name from emp;
查詢是數據庫操做中最經常使用的操做,也是最難的。select語句用於從表中查詢數據,結果被存儲在一個結果表中(稱爲結果集)。
SELECT 語法:
SELECT 列名稱 FROM 表名稱; //查詢表中的某列數據
SELECT * FROM 表名稱; //查詢整張表
還有更爲複雜的條件查詢。
數據庫還爲咱們提供了一些函數,方便咱們進行數據庫操做。這些基礎函數基本都是列名爲函數參數,返回某一列的計算結果。
avg()用於返回某列的平均值,NULL不包含在計算中。
select AVG(salary) as avg_salary form emp; //查詢員工的平均薪水
COUNT函數用於返回匹配指定條件的行數。
select COUNT(*) from emp; //返回表的記錄數
MAX函數返回指定列的最大值,NULL字不包括在計算中。
MIN函數返回指定列的最小值,NULL字不包括在計算中。
SUM函數返回指定列的總數。
ROUND函數用於把數值字段舍入爲指定的小數位數。
select ROUND(salary,1) as n_salary from emp; //將salary保留一位小數
select ROUND(column_name,decimals) from table_name;
參數 | 描述 |
---|---|
column_name | 要舍入的字段 |
decimals | 規定要返回的小數位數 |
FORMAT用於對指定字段的顯示進行格式化。
SELECT FROMAT(column_name,format) FROM table_name;
參數 | 描述 |
---|---|
column_name | 要格式化的字段 |
format | 指定的格式 |
還有一些SQL的高級用法,分頁、模糊匹配、排序等等。
分頁查詢就是返回返回當前頁碼對應的頁面的數據。
分頁查詢的基本公式:(page - 1) * pageSize + 當前頁要顯示的數據條數
select * from emp limit 4; //返回前4條數據
模糊匹配是配合where條件使用的。
//%能夠理解爲定義通配符 select * from emp where name like 'a%'; //返回以a開頭的全部姓名
返回特定列在某個集合中的全部數據。
select * from emp where name in ('AA', 'BB'); //返回name爲AA、BB的全部數據。
聯表運算符JOIN,用於將兩個或者兩個以上的表進行關聯,並從這些表中查詢數據。
經常使用的幾種鏈接方式:
UNION運算符用於合併兩個或多個SELECT語句的結果集。
UNION內部的SELECT語句必須具備相同數量的列,列也必須具備類似的數據類型。同時,每條SELECT語句中列的順序必須相同。
通常用於修飾主鍵,使其保持自增。
使用order by對查詢結果進行排序,默認是升序。
select * from emp order by name;
一般匹配合計函數使用,根據一個或者多個列隊結果集進行分組。
用於給分組設置條件。
default約束用於向列中插入默認值。
本文是對數據庫中常常用到的一些寫法與及函數的概括總結,方便之後用到的時候可以快速查詢到。題外話:主要是前段時間去面試的時候,被問到修改一條數據的語句怎麼寫時,居然沒有回到上來,因此決定對數據庫的經常使用操做作一個總結。