SQL——结构化查询语言
DB——数据库
DBS——数据库系统
DBA——数据库管理员
RDBMS——关系型数据库管理系统
SQL对大小写不敏感
DML——数据操作语言:查询和更新指令
- SELECT - 从数据库表中获取数据 select
- UPDATE - 更新数据库表中的数据 update
- DELETE - 从数据库表中删除数据 delete
- INSERT INTO - 向数据库表中插入数据 insert into
DDL——数据定义语言:创建或删除表格。也可以定义索引index(键),规定表table之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
- CREATE DATABASE - 创建新数据库 create database
- ALTER DATABASE - 修改数据库 alyer database
- CREATE TABLE - 创建新表 create table
- ALTER TABLE - 变更(改变)数据库表 alter table
- DROP TABLE - 删除表 drop table
- CREATE INDEX - 创建索引(搜索键) create index
- DROP INDEX - 删除索引 drop index
table—— 表
row—— 行
tuple—— 元组
record—— 记录
column—— 列
property—— 属性
field—— 字段
primary key—— 主键
foreign key—— 外键
candidate key——候选关键字
null——空值
database_name——数据库名
schema_name——表所属架构名
table_name——表名
view_name——视图名
column_name——列名
data_type——列的数据类型
SELECT语句:
SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集result-set)
语法:select 列名称 from 表名称 select * from 表名称
选取n个列,中间的列名称用,隔开
eg:select lastname,firstname from persons
从persons表中提取lastname和firstname列
select * 是指选取表中的所有列,*是选取所有列的快捷方式
SELECT DISTINCT 语句:
筛除列中的重复值,只选取出所提取列中的不同distinct的值
eg:select distinct company from orders
从orders表中提取company列中的不同distinct的值
WHERE 子句:
where子句用于规定选择的标准。如果需要有条件地从表中选取数据,可以将where子句添加到select子句中
语法:select 列名称 from 表名称 where 列 运算符 值
操作符:=等于 <>(!=)不等于 >大于 <小于 >=大于等于 <=小于等于 between 在某个范围内 like 搜索某种模式
eg:select * from persons where city=‘beijing’
从persons表的所有列中提取城市是beijing的数据
关于引号:单引号用来环绕文本值(有的版本用双引号),数值不用引号
AND 和 OR 运算符:
and和or用于基于一个以上的条件对记录进行过滤
and和or可以在where子语句中把两个或者多个条件结合起来
and:并列条件都需要满足
or:并列条件只需要满足一个
eg: select * from persons where firstname=‘Thomas’ and lastname=‘carter’
从persons表的所有列中提取名是Thomas并且姓是carter的数据
select * from persons where firstname=‘Thomas’ or lastname=‘carter’
从persons表的所有列中提取名是Thomas或者姓是carter的数据
select * from persons where (firstname=‘Thomas’ or firstname=‘william’)and lastname=‘carter’
(使用圆括号来组成复杂的表达式)
从persons表的所有列中提取名是Thomas或者William,并且姓是carter的数据
ORDER BY 语句:
order by 用于根据指定的列对结果集进行排序,默认按照升序方式对记录进行排序,降序使用desc关键词
eg:select company,ordernumber from orders order by company
从orders表中提取company和ordernumber列,并且公司名称按字母顺序abc进行排列
select company,ordernumber from orders order by company,ordernumber
从orders表中提取company和ordernumber列,以公司名称按字母顺序abc显示后,再以数字顺序123显示顺序号
select company,ordernumber from orders order by company desc
从orders表中提取company和ordernumber列,并且以公司名称逆字母顺序cba进行排列
select company,ordernumber from orders order by company desc,ordernumber asc
从orders表中提取company和ordernumber列,以公司名称逆字母顺序cba显示后,再以数字顺序123显示顺序号
INSERT INTO 语句:
insert into 用于向表格中插入新的行
语法:insert into 表名称 values (值1,值2,.....)
insert into table_name(列1,列2,......) values (值1,值2,.....)指定列中插入数据
eg:insert into persons values(‘a’,‘b’,‘c’,‘d’)
在persons表中插入行,内容是a,b,c,d
insert into persons(lastname,address) values (‘a’,‘b’)
在persons表的中插入行,内容是a,b,位于lastname,address这两列
UPDATE 语句:
update用于修改或添加表中数据
语法:update 表名称 set 列名称 = 新值 where 列名称 = 某值
eg:update persons set firstname = ‘fred’ where lastname = ‘Wilson’
为lastname 是Wilson添加firstname
update persons set address = ‘zhongshan 23’,city = ‘nanjing’ where lastname = ‘Wilson’
为lastname 是Wilson修改address,添加city
DELETE 语句:
delete语句用于删除表中的行
语法:delete from 表名称 where 列名称 = 值
eg:delete from persons where lastname = ‘wilson’
删除表中lastname是wilson的所在行
delete from table_name
delete * from table_name
可以在不删除表的情况下删除所有行,意味着表的结构、属性和索引都是完整的