数据库概念和基本的SQL语句

目录:

1.数据库概念

2.SQL语句的分类

3.DDL语句

4.DML语句

5.数据库约束

6.SQL 99的连接查询

7.子查询

8.集合运算

9.索引

10.视图

1.数据库概念

数据库为数据库数据库管理系统(Database Management System,DBMS)的简称。

DBMS是所有数据的知识库,它负责管理数据的存储、安全、一致性、并发、恢复和访问等操作。

DBMS有一个数据字典(也被称为系统表),用于存储它拥有的每个事务的相关信息,例如名字、结构、位置和类型,这种关于数据的数据也被称为元数据(metadata)。

数据库按时间顺序出现了如下几种类型的数据库:

①网状型数据库

②层次型数据库

③关系数据库:最基本的数据存储元单元就是数据表。

④面向对象数据库

2.SQL语句的分类

SQL的全称是Structured Query Language,也就是结构化查询语句。

标准的数据库可以用于任何关系数据库。

SQL语句通常分为以下几类:

查询语句:主要由select关键字完成。

DML语句:Data Manipulation Language,数据操作语言,主要由insert、update、delete三个关键字完成。

DDL语句:Data Definition language,数据定义语言,主要由create、alter(更改)、droptruncate(缩短)四个关键字完成。

DCL语句:Data Control Language,数据控制语言,主要由grant、revoke两个关键字完成。

事务控制语句:主要由commit、rollback、savepoint。

标识符:必须以字母开头,可以使用字母,数字,特殊字符(#_$)。

3.DDL语句

①创建表-create:

create table test
(
test_id int,

test_price decimal,

test_name varchar(255) default 'xxx',     #default 指定默认值;字符串使用单引号

test_img blob                             #2字节的大对象,可用于存储图片、音乐等二进制数据
);

②修改表-alter:

add,modify,drop,change(重命名列),rename(改表名)

需要注意的是modify每次只能修改一个列定义。

③删除表-drop:

drop table test;

④truncate表

truncate 表名
#删除该表里的所有数据,但是保留表的结构

性能优于delete。

4.DML语句

①insert into

②update

③delete from

5.数据库约束

约束是在表上强制执行的数据校验规则,约束主要用于保证数据库的完整性。除此之外,数据存在相互依赖性时,可以保护相关数据不会被删除。

五种约束:

①NOT NULL

②UNIQUE

③PRIMARY KEY

④FOREIGN KEY

⑤CHECK

唯一约束可以使用列级约束语法建立,也可以使用表级约束语法。

#表级约束语法
...unique (test_name,...)...#为test_name...添加唯一约束
#表级约束语法,并执行约束名
...constraint test2_uk unique(test_name)...

其中 constraint 为约束命名。

外键约束

当主表的记录被从表参照时,主表的记录不允许为被删除,必须先删除从表的全部记录后,才能删除主表;还有一种情况,删除主表记录时级联删除从表中所有参照该记录的从表记录。

on delete cascade-级联删除-删整行

on delete set null-外键置null

foreign key(java_teacher) references teacher_table(teacher_id)

6.SQL 99的连接查询

①交叉连接-cross join

select s.*,teacher_name

from student_table s

cross join teacher_table t;     #交叉连接,相当于笛卡尔积

②自然连接-natural join

select s.*,teacher_name

from student_table s

natural join teacher_table t;   #自然连接 使用两个表中的同名列作为连接条件

③using子句连接

select s.*,teacher_name

from student_table s

join teacher_table t

using (teacher_id);       #using连接 显式的指定哪些同名列 作为连接条件

④on子句连接

select s.*,teacher_name

from student_table s

join teacher_table t

on s.java_teacher=t.teacher.id;  #on子句连接

⑤左、右、全外连接

7.子查询

子查询就是指在查询语句中嵌套另一个查询,子查询可以支持多层嵌套。

8.集合运算

交(inersect)、并(union)、差(minus)

9.索引

10.视图

猜你喜欢

转载自my.oschina.net/u/3786691/blog/1785886