因為我們的產(chǎn)品是存儲在Gbase 8A數(shù)據(jù)庫里的。所以對SQL語言進(jìn)行了了解.SQL ,指結(jié)構(gòu)化查詢語言,全稱是 Structured Query Language。是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計算機(jī)語言。SQL的使用與RDBMS (關(guān)系型數(shù)據(jù)庫管理系統(tǒng): Relational Database Management System)息息相關(guān)。
一個數(shù)據(jù)庫通常包含一個或多個表。每個表有一個名字標(biāo)識(例如:"Websites"),表包含帶有數(shù)據(jù)的記錄(行)SQL 對大小寫不敏感:SELECT 與 select 是相同的。
要創(chuàng)建一個顯示數(shù)據(jù)庫中數(shù)據(jù)的網(wǎng)站,您需要:
1.RDBMS 數(shù)據(jù)庫程序(比如 MS Access、SQL Server、MySQL)
2.使用服務(wù)器端腳本語言,比如 PHP 或 ASP
3.使用 SQL 來獲取您想要的數(shù)據(jù)
4.使用 HTML / CSS
常用的數(shù)據(jù)庫指令
選擇數(shù)據(jù)庫
use
設(shè)置字符集
set names utf8; 命令用于設(shè)置使用的字符集。
讀取 select
SELECT
SELECT column_name,column_name FROM table_name;
SELECT * FROM table_name 表中所有列
DISTINCT 關(guān)鍵詞用于返回唯一不同的值(也就是去除重復(fù)值)。
SELECT DISTINCT column_name,column_name FROM table_name;
SELECT TOP(SQL), LIMIT(MySOL), ROWNUM(Oracel)用于規(guī)定要返回的記錄的數(shù)目(按照id排序)
select top 5 * from table order by id desc --desc 表示降序排列 asc 表示升序
過濾 where
WHERE:過濾出符合條件的數(shù)據(jù)
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
運(yùn)算符 描述
= 等于
<> 不等于。注釋:在 SQL 的一些版本中,該操作符可被寫成 !=
大于
< 小于
= 大于等于
<= 小于等于
BETWEEN AND 在某個范圍內(nèi)
LIKE 搜索某種模式(模糊查詢)
IN 指定針對某個列的多個可能值
AND 與
OR 或
NOT 非
is null 查詢空集
以上操作符都有NOT的搭配
%a' //以a結(jié)尾的數(shù)據(jù)
'a%' //以a開頭的數(shù)據(jù)
'%a%' //含有a的數(shù)據(jù)
‘a’ //三位且中間字母是a的
'_a' //兩位且結(jié)尾字母是a的
'a_' //兩位且開頭字母是a的
通配符 描述 使用
% 替代 0 個或多個字符
_ 替代一個字符
[charlist] 字符列中的任何單一字符
[^charlist]
或
[!charlist]
不在字符列中 MySQL 中使用 REGEXP 或 NOT REGEXP 運(yùn)算符 (或 RLIKE 和 NOT RLIKE) 來操作正則表達(dá)式。
IN 與 = 的異同
相同點:均在WHERE中使用作為篩選條件之一、均是等于的含義
不同點:IN可以規(guī)定多個值,等于規(guī)定一個值
IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
=
SELECT column_name(s)
FROM table_name
WHERE column_name=value1;
排序 ORDER BY
ORDER BY 對結(jié)果集按照一個列或者多個列進(jìn)行排序
默認(rèn)是升序,降序需要使用DESC關(guān)鍵字。
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ORDER BY 多列的時候,先按照第一個column name排序,在按照第二個column name排序;
更新
UPDATE - 更新數(shù)據(jù)庫中的數(shù)據(jù)
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
WHERE 子句規(guī)定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新!
執(zhí)行沒有 WHERE 子句的 UPDATE 要慎重,再慎重。
在 MySQL 中可以通過設(shè)置 sql_safe_updates 這個自帶的參數(shù)來解決,當(dāng)該參數(shù)開啟的情況下,你必須在update 語句后攜帶 where 條件,否則就會報錯。
set sql_safe_updates=1; 表示開啟該參數(shù)
刪除
DELETE - 從數(shù)據(jù)庫中刪除數(shù)據(jù)
DELETE FROM table_name
WHERE some_column=some_value;
刪除所有:在不刪除表的情況下,刪除表中所有的行。這意味著表結(jié)構(gòu)、屬性、索引將保持不變: 但是注意過程是不可逆的
DELETE FROM table_name;
或
DELETE * FROM table_name
DROP
DROP TABLE - 刪除表
DROP INDEX - 刪除索引
插入
INSERT INTO - 向表中插入新記錄。
第一種形式無需指定要插入數(shù)據(jù)的列名,只需提供被插入的值即可:沒有指定要插入數(shù)據(jù)的列名的形式需要列出插入行的每一列數(shù)據(jù):
INSERT INTO table_name
VALUES (value1,value2,value3,...);
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
表現(xiàn)為插入一個新行。
id 列是自動更新的,表中的每條記錄都有一個唯一的數(shù)字。
創(chuàng)建 CREATE
創(chuàng)建新數(shù)據(jù)庫 CREATE DATABASE
在數(shù)據(jù)庫中創(chuàng)建新表 CREATE TABLE
創(chuàng)建索引 CREATE INDEX - 創(chuàng)建索引(搜索鍵)
在數(shù)據(jù)庫中創(chuàng)建存儲過程
在數(shù)據(jù)庫中創(chuàng)建視圖
修改 ALTER
ALTER DATABASE - 修改數(shù)據(jù)庫
ALTER TABLE - 變更(改變)數(shù)據(jù)庫表