SQL-基础01
什么是SQL?
- SQL 指结构化查询语言
- SQL 是我们有能力访问数据库
- SQL 是一种 ANSI 的标准计算机语言 (ANSI,美国国家标准化组织)
SQL能做什么?
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库中删除数据
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
RDBMS
RDBMS 指的是 关系型数据库管理系统
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server 、IBM DB2 、Oracle 、MySQL 以及 Microsoft Access 。
RDBMS 中的数据存储在被称为表(table)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
SQL 结构化查询语句
SQL(结构化查询语句)是用于执行查询的语法。但是SQL语言也包含用于更新、插入和删除记录的语法。
DML (数据操作语言) -查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
1
2
3
4select * from 表名;
--去重查询
select distinct 字段名 from 表名;UPDATE - 更细数据库表中的数据
1
2
3
4
5--更新某一行的一个列
update 表名 set 字段名 = 新值 where 字段名 = 某值;
--更新某一行的若干列
update 表名 set 字段名1 = 新值,字段名2 = 新值 where 字段名 = 某值;DELETE - 从数据库中删除数据
1
2
3
4
5--删除所有
delete from 表名;
--删除行
delete from 表名 where 字段名 = 值;INSERT INTO - 向数据库表中插入数据
1
2
3
4
5--全字段添加
insert into 表名 values (值1,值2,值3,...);
--指定字段添加
insert into 表名 (字段1,字段2,...) values (值1,值2,...);
SQL 的数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL (数据定义语言)
CREATE DATABASE - 创建新数据库
1
create database 数据库名;
ALTER DATABASE - 修改数据库
DROP DATABASE - 删除数据库
1
drop database 数据库名称;
CREATE TABLE - 创建新表
1
create table 表名 (字段名1 数据类型,字段名2 数据类型,字段名3 数据类型,.....)
ALTER TABLE - 变更(改变)数据库表
1
2
3
4
5
6
7
8-- 添加字段
alter table 表名 add 字段名 数据类型
--删除字段 --某些数据库系统不允许在这种数据库表中删除列的方式
alter table 表名 drop column 字段名
--改变表中列的数据类型
alter table 表名 alter column 字段名 数据类型DROP TABLE - 删除表
1
2
3
4
5//删除表(包括表的结构、属性以及索引都会删除)
drop table 表名;
//只是删除表内数据,不删除表本身
TRUNCATE table 表名;CREATE INDEX - 创建索引(搜索键)
1
create index 下标名;
DROP INDEX -删除索引
1
2
3
4
5
6
7
8
9
10
11--Microsoft SQLjet
drop index 索引名 on 表名;
--MS SQL Sever
drop index 表名.下标名;
--IBM DB2 和 Oracle 语法
drop index 下标名;
--MySQL
alter table 表名 drop index 下标名;
五、SQL 基础
where 子句
有条件的从表中选取数据,可将 where 子句添加到 select 语句中。
1 | select 字段名 from 表名 where 字段名 运算符 值 |
and 和 or 运算符
条件语句取交集或者并集的关系运算符
1 | select * from 表名 where 条件1 and 条件2 or 条件1 |
order by 语句
order by 语句用于对结果集进行排序,默认是按照升序(ASC)排序,如果需要降序使用DESC。
1 | select * from 表名 order by 字段名 ( asc or desc ) |