数据库开发---SQL语句总结(1)


SQL优化

SQL注入


SQL约束

SQL约束主要有以下几种:

1,主键约束

主键(PRIMARY KEY)约束在表中定义一个主键,唯一地标识表中的列。一个表有且只有一个主键约束。

每个表都应有一个主键。主键可以是一个列或几个列的组合。

如果已有主键约束,可以对其进行修改或删除。修改就是先删除后创建。

主键的规则是无空值无重复值,所以当向表中现有列表中添加主键约束时SQLServer会先检查数据是否遵从主键的规则,若有不再执行此操作并返回错误信息。

创建主键主要有两种方法:1,图形化工具,2,SQL语句

创建表时创建主键约束

CREATE TABLE staff(
staffId CHAR(15) PRIMARY KEY NOT NULL  COMMENT '员工编号',
NAME VARCHAR(10) NOT NULL COMMENT '员工姓名',
sex CHAR(2) NOT NULL COMMENT '员工性别',
departId CHAR(3) NOT NULL COMMENT '员工所属部门编号'
);

向已有表中添加主键约束

ALTER TABLE staff ADD CONSISTENT pk_staffId_departId PRIMARY KEY (staffId,departId);

删除主键约束

ALTER TABLE DROP CONSISTENT pk_staffId_departId;



2,唯一键约束

使用UNIQUE约束可以确保在非主键列中不输入重复值。

在允许空值的列上保证唯一性时,应使用UNIQUE约束而不是PRIMARY KEY约束,不过在该列中只允许一个NULL值。

一个表中可以定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束,FOREIGN KEY 约束也可以引用UNIQUE 约束。

创建表时创建唯一性约束

向已有表中添加唯一性约束

删除唯一约束


3,检查约束

检查(CHECK)约束是限制用户输入某一列的数据取值,即该列只可以输入一定范围的数据。

在现有表添加CHECK约束时,该约束既可以只作用于新数据,也可以同时作用于已有的数据。默认设置是CHECk约束同时作用于新数据和已有数据。

创建表时创建检查约束

向已有表中添加检查约束

删除检查约束


4,默认值约束

默认值约束是指用户未添加某列的数据时,数据库系统为用户自动提供的默认值。

创建表时创建默认值约束

向已有表中添加默认值约束

删除默认值约束


5,外键约束

外键(FOREIGN  KEY)约束用于强制实现表之间的参照完整性,外键必须和主表的主键或唯一键对应,外键约束不允许为空值,但是多列组合的外键允许其中某列含有空值。

如果组合外键的某列含有空值,则将跳过该外键约束的检验。

创建表时创建外键约束

向已有表中添加外键约束

删除外键约束





==========================================================================================================

SQL常用命令


简单点的:

创建两个表:员工表,部门表

CREATE TABLE命令

/*-创建员工表-*/
CREATE TABLE staff(
staffId CHAR(15) PRIMARY KEY NOT NULL COMMENT '员工编号',
NAME VARCHAR(10) NOT NULL COMMENT '员工姓名',
sex CHAR(2) NOT NULL COMMENT '员工性别',
departId CHAR(3) NOT NULL COMMENT '员工所属部门编号'
);


/*-创建部门表-*/
CREATE TABLE depart(
departId CHAR(3) PRIMARY KEY COMMENT '部门编号',
departName VARCHAR(10) NOT NULL COMMENT '部门名称'
);

INSERT命令

INSERT INTO depart VALUES(101,'行政部');
INSERT INTO depart VALUES(102,'人事部');
INSERT INTO depart VALUES(103,'财务部');
INSERT INTO depart VALUES(104,'客服部');
INSERT INTO depart VALUES(105,'技术部');
INSERT INTO depart VALUES(106,'市场部');


INSERT INTO staff VALUES(201701011010001,'行政1号','女',101);
INSERT INTO staff VALUES(201701011010002,'行政2号','女',101);
INSERT INTO staff VALUES(201701011010003,'行政3号','女',101);


INSERT INTO staff VALUES(201701011020001,'人事1号','男',102);
INSERT INTO staff VALUES(201701011020002,'人事2号','女',102);
INSERT INTO staff VALUES(201701011020003,'人事3号','男',102);
INSERT INTO staff VALUES(201701011020004,'人事4号','女',102);
INSERT INTO staff VALUES(201701011020005,'人事5号','男',102);


INSERT INTO staff VALUES(201701011030001,'财务1号','女',103);
INSERT INTO staff VALUES(201701011030002,'财务2号','女',103);
INSERT INTO staff VALUES(201701011030003,'财务3号','女',103);


INSERT INTO staff VALUES(201701011040001,'客服1号','女',104);
INSERT INTO staff VALUES(201701011040002,'客服2号','女',104);


INSERT INTO staff VALUES(201701011050001,'技术1号','男',105);
INSERT INTO staff VALUES(201701011050002,'技术2号','男',105);
INSERT INTO staff VALUES(201701011050003,'技术3号','男',105);
INSERT INTO staff VALUES(201701011050004,'技术4号','男',105);
INSERT INTO staff VALUES(201701011050005,'技术5号','男',105);
INSERT INTO staff VALUES(201701011050006,'技术6号','女',105);


INSERT INTO staff VALUES(201701011060001,'市场1号','男',106);
INSERT INTO staff VALUES(201701011060002,'市场2号','男',106);
INSERT INTO staff VALUES(201701011060003,'市场3号','女',106);


员工编号设置规则:入职时间+部门编号+部门入职人次。实际上公司员工可能从一个部门调到其他部门,如此就需要更改员工编号,所以,实际情况要灵活设置,这里仅此举例。




UPDATE命令

-- 把员工编号为 201701011010001的员工姓名改为 AmyChris

    UPDATE staff SET NAME='Amychris' WHERE staffId=201701011010001;-- 单列修改

-- 把员工编号为201701011010002的员工姓名改为 胡歌,性别改为 男

    UPDATE staff SET NAME='胡歌',sex='男' WHERE staffId=201701011010002;-- 多列修改


DELETE命令

-- 删除员工编号为201701011050004 的员工信息

    DELETE FROM staff WHERE staffId='201701011050004';

-- 删除员工编号为201701011050005 的员工信息

    DELETE FROM staff WHERE staffId='201701011050005';

 



SELECT命令

-- 查询depart表的所有信息

    SELECT * FROM depart;

-- 查询staff表的所有信息

    SELECT * FROM staff;


------2017.06.30



以上命令基于mysql数据库设计操作的,使用图形化管理工具:SQLyog。

刚学习展翅的小菜鸟,如有错误,还望同行前辈指点纠正。你的每一次建议都是对我莫大的帮助和鼓励,小菜鸟在此谢过。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值