天天看点

关于SQL语言

SQL称之为结构化查询语言,是一套用来对数据库进行操作的语言

SQL语言的分类:
  1. 数据查询语言(DQL):也被称为“数据检索语句”,用以从表中获取数据。
  2. 数据操作语言(DML):也被称为动作查询语言,主要用于对数据库表的增删改操作。
  3. 事务处理语言(TPL):确保被DML影响的表中数据及时更新。
  4. 数据控制语言(DCL):用于确定某个用户或用户组对数据库的访问。
  5. 数据定义语言(DDL):在数据库中创建或删除表,为表加入索引等。
  6. 指针控制语言(CCL):用于对一个或多个表单独行的操作。

** 数据完整性:**

数据完整性是指数据的精确性和可靠性;他是为了防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或者错误信息而提出的。

数据完整性分为四类:

  1. 实体完整性:确保行数据的唯一性;一般由主键约束保证实体完整性。
  2. 域完整性:限制了向表中输入的数值的范围。
  3. 引用完整性:为了维护两个表之间的数据一致性,是建立在主键的基础上的。例:表A的某列(外键)会引用B表中的主键。

    4.用户自定义完整性:用户自定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值,某个非主属性也不能取空值,某个属性的取值范围在0-100之间等。

关于表中约束:

primary key:主键约束;行数据的唯一标识,不能为null,不能重复,一个表只能有一个主键,有主键的表查询效率高。表中记录会自动按主键值进行排序,若没有主键就会按照添加的顺序进行排序。

auto_increment:自增约束;只能是整性,一个表只能由一个自增列,一般会选择主键作为自增列。

not null:非空约束;该列的值不能为空

unique:唯一约束;确保行数据的唯一性,可以是null,但是只能有一个null,可以有多个唯一约束。

foreign key:外键约束:主要是为了维护两个表之间的数据一致性。如果一张表的某个列指向另一个表的主键列 ,就称之为 外键列。

default:默认值约束;为某一列添加默认值。

check:检查约束;用于限制列中值得范围。

关于一些常用的数据定义语言(DDL):

//添加新的字段
alter table 表名 add 列名 <类型> ; 
//添加新的字段 位置在第一列
alter table 表名 add 列名 <类型> first; 
//将列名1添加到列名2的后边
alter table 表名 add 列名1 <类型> after 列名2;  
//修改字段名和类型
alter table 表名 change COLUMN <旧列名> <新列名> <新列类型>;
//修改列名的类型
alter table 表名 modify <列名> <类型>;
//删除列
alter table 表名 drop <列名>;
//给表重命名
alter table 表名 rename <新表名>;
//设置字符集
alter table 表名 CHARACTER SET <字符集名>;
//移动列的位置  将列名a移动到列名b的后边
alter table 表名 <列名a> after <列名b>;
//给id添加自增约束
alter table 表名 modify id int(5) auto_increment;
//修改表中的字段不为空/或者为空
alter table 表名 modify 字段名  类型 not null/null;
//添加表的字段自增主键    如果要修改只需将add 改成 modify
alter table 表名 add column 字段名 类型 auto_increment not null, add primary key(cid);
//添加唯一约束:
alter table 表名 add unique(字段名);
//删除表的字段
alter table 表名 drop column 字段;
//删除自增主键
alter table 表名 modify id int;
//删除表的主键约束,要先删除自增约束才可以删除主键约束
alter table 表名 drop primary key;
//添加外键约束
//外键名  fk_classid_id   student classid    class id
alter table 表名 add constraint 外键名  
foreign key(引用id) references 被引用表名 (被引用id)
//foreign key(引用id) references 被引用表名 (被引用id)
alter table 表名 add constraint pk_id primary key(id(修改的主键列名));
//删除外键约束
-- 需要先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称
show create table 表名;
-- 获取名称之后就可以根据名称来删除外键约束
alter table 表名 drop foreign key 外键名;```

           
sql