因为我们的产品是存储在Gbase 8A数据库里的。所以对SQL语言进行了了解.SQL ,指结构化查询语言,全称是 Structured Query Language。是用于访问和处理数据库的标准的计算机语言。SQL的使用与RDBMS (关系型数据库管理系统: Relational Database Management System)息息相关。
一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行)SQL 对大小写不敏感:SELECT 与 select 是相同的。
要创建一个显示数据库中数据的网站,您需要:
1.RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)
2.使用服务器端脚本语言,比如 PHP 或 ASP
3.使用 SQL 来获取您想要的数据
4.使用 HTML / CSS
常用的数据库指令
选择数据库
use
设置字符集
set names utf8; 命令用于设置使用的字符集。
读取 select
SELECT
SELECT column_name,column_name FROM table_name;
SELECT * FROM table_name 表中所有列
DISTINCT 关键词用于返回唯一不同的值(也就是去除重复值)。
SELECT DISTINCT column_name,column_name FROM table_name;
SELECT TOP(SQL), LIMIT(MySOL), ROWNUM(Oracel)用于规定要返回的记录的数目(按照id排序)
select top 5 * from table order by id desc --desc 表示降序排列 asc 表示升序
过滤 where
WHERE:过滤出符合条件的数据
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
大于
< 小于
= 大于等于
<= 小于等于
BETWEEN AND 在某个范围内
LIKE 搜索某种模式(模糊查询)
IN 指定针对某个列的多个可能值
AND 与
OR 或
NOT 非
is null 查询空集
以上操作符都有NOT的搭配
%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
‘a’ //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
通配符 描述 使用
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]
或
[!charlist]
不在字符列中 MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
IN 与 = 的异同
相同点:均在WHERE中使用作为筛选条件之一、均是等于的含义
不同点:IN可以规定多个值,等于规定一个值
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 对结果集按照一个列或者多个列进行排序
默认是升序,降序需要使用DESC关键字。
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;
更新
UPDATE - 更新数据库中的数据
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
set sql_safe_updates=1; 表示开启该参数
删除
DELETE - 从数据库中删除数据
DELETE FROM table_name
WHERE some_column=some_value;
删除所有:在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变: 但是注意过程是不可逆的
DELETE FROM table_name;
或
DELETE * FROM table_name
DROP
DROP TABLE - 删除表
DROP INDEX - 删除索引
插入
INSERT INTO - 向表中插入新记录。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:没有指定要插入数据的列名的形式需要列出插入行的每一列数据:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
表现为插入一个新行。
id 列是自动更新的,表中的每条记录都有一个唯一的数字。
创建 CREATE
创建新数据库 CREATE DATABASE
在数据库中创建新表 CREATE TABLE
创建索引 CREATE INDEX - 创建索引(搜索键)
在数据库中创建存储过程
在数据库中创建视图
修改 ALTER
ALTER DATABASE - 修改数据库
ALTER TABLE - 变更(改变)数据库表