第三章   保证数据完整性

3.1 数据完整性的概述:实体完整性  域完整性  引用完整性  用户自定义完整性
3.2 数据完整性的实现
  3.2.1 创建非空约束  (在定义列后加上  not null )默认为 null
  3.2.2 创建主键约束-- primary key   主键列不允许储存null值。
  3.2.3 设置唯一约束   unique
  3.2.4 设置默认值  default

3.2.5 设置检查约束(MySQL不支持)

创建表:student
3.2.6 使用自动编号列:auto_increment  
1: 改变自动增长值:
 alter table  student  auto_increment=1000;
2:添加主键约束 ,唯一约束,默认约束,自动增长(自动增长只能用在主键上),都用 change
alter table student  change  id id primary key ;
alter table student  chang gender gender varchar(4) unique;
alter table student  change name name varchar(20) default "张三";
alter table student  change id id int primary key  auto_increment;

3:删除主键约束,唯一约束(删除唯一约束的时候  实际上是删除索引),默认约束,外键约束 ,都用drop

alter table student drop primary key;
alter table student drop index gender;
alter table student drop name name varchar(20);
alter table student drop primary key fk_name;

4:添加外键约束用add。

5:contraint   约束 ; references 引用 ; foreign key 外键 ;default 默认;unique 唯一;auto_increment 自动增长;

 
第四章  使用DML语句更改数据
     本章目标   使用insert语句添加数据   使用update语句修改数据   使用delete语句删除数据
4.1 添加新数据
4.1.1 插入单行记录:
                   insert into <表名> (列名列表)values (<值列表>)
  或者       insert  into <表名> values (<值列表>)    -- 简写

4.1.2 插入多行记录 :
      insert into <表名> (<列名列表>) values (<值列表>),(<值列表>),。。。。;
或者   insert  into <表名> values (<值列表>);
          insert  into <表名> values (<值列表>);
          insert  into <表名> values (<值列表>);

4.1.3 数据表的复制 
      1: 以创建新表的复制形式
create table student_bak1 select * from student;
   2:复制数据

create table student_bak2(
pk_id int primary key auto_increment,
name varchar(20) not null,
age int ,
gender char(3)  default "男",
birthday date,
phoneNo char(12)
);
insert into student_bak2_select * from student;

4.2 更改已有数据

update <表名> set <新列植列表> where <过滤条件>;
4.3 删除数据 
delete from <表名> where <过滤条件>;

删除 student_bak2的所有信息
delete from  student_bak2;  -- delete 语句删除会记录日志 删完数据以后 自动增长依然继续递增
truncate table student_bak2; -- truncate 不会在日志中记录的   删完数据以后 自动增长回到初始值 1

删除 
update student set age=null  where name="未成年";

mysql2的更多相关文章

  1. bundle install 出现 &#39;gem install mysql2 -v &#39;0.3.15&#39; succeeds before bunding &#39;

    bundle install 出现  'gem install mysql2 -v '0.3.15' succeeds before bunding ' 解决:sudo apt-get install ...

  2. MySQL2.字符集乱码

    MySQL2.字符集 此节记录下MySQL出现乱码的原因.还是参考小册子~ 字符集简介 计算机中只能存储二进制数据,建立字符与二进制数据的映射关系来存储字符. 从两方面考虑: 1.界定清楚字符范围,即 ...

  3. Gem install Mysql2的问题

    运行 ‘bundle install’ 或者 ‘gem install mysql2′ 遇到如下错误 > gem install mysql2 ERROR: Error installing m ...

  4. 关于 mysql2 -v '0.3.21'(CentOS7.3)

    个人由于没有安装mysql而是装的MariaDB,所以网上说安装mysql,故没有采用,经查阅资料后,详细情况如下: Gem时报错: [root@localhost ~]# gem install m ...

  5. windows rails new demo时候出错Make sure that `gem install mysql2 -v '0.3.15'` succeeds before bundling.

    rails new demo --database=mysql最后报错Gem files will remain installed in D:/BillFiles/rails_dev/Ruby193 ...

  6. ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value:

    今天碰到一个相当棘手的问题,那就是ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value . 本来在本地测试是没有任 ...

  7. ruby mysql2

    1. mysql2连接选项 Mysql2::Client.new( :host, :username, :password, :port, :database, :socket = '/path/to ...

  8. Nuxt.js 踩坑记录(2) 使用sequelize时,提示install mysql2,安装了仍然不能解决问题

    打算写一个nuxt.js+sequelize+mysql的个人博客,遇到了挺多坑,还是坚持了下来,终于解决了这个bug. 今天不知道我做了什么,页面就报错了,定位到了使用sequelize的JS文件里 ...

  9. MySQL2:四种MySQL存储引擎

    前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以 ...

  10. mysql-2 mysql客户端

    mysql 官方客户端  MySQL-Workbench 下载链接http://dev.mysql.com/downloads/workbench/ 具体安装步骤就不写了,直接一直下一步就可以了. 下 ...

随机推荐

  1. ORACLE EBS xml publisher 报表输出字符字段前部"0"被EXCEL自动去掉问题

    http://www.cnblogs.com/lzsu1989/archive/2012/10/17/2728528.html   Oracle  EBS 提供多种报表的开发和输出形式,由于MS Ex ...

  2. TFS应用层服务器获取F5用户的真实IP地址(高可用性)

    当用户数量达到一定级别(例如2千)以上,为保证TFS系统的持续服务,最大程度减少因系统宕机对研发团队的影响,系统管理员一般会考虑应用层和数据库层的高可用性方案. 在应用层的高可用性方案中,目前比较常见 ...

  3. 二叉树(Binary Tree)相关算法的实现

    写在前面: 二叉树是比较简单的一种数据结构,理解并熟练掌握其相关算法对于复杂数据结构的学习大有裨益 一.二叉树的创建 [不喜欢理论的点我跳过>>] 所谓的创建二叉树,其实就是让计算机去存储 ...

  4. 如何在Qt资源文件中包含和释放exe等各种类型文件?

    操作系统:Windows 10 X64 企业版 Qt: 5.8.0 QtCreater: 4.2.1 刚刚开始学习Qt,不断遇到困难和挑战,前几天在各个QQ群里询问如何在Qt的资源文件中包含和释放ex ...

  5. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  6. 标准的sql执行顺序

    正常情况下是先join再进行where过滤

  7. node 无脑生成小程序二维码图

    RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...

  8. mysql编写存储过程(2)

    书接上回. 实例8:if-then -else语句 实例9:case语句: 实例10:循环语句,while ···· end while: 实例11:循环语句,repeat···· end repea ...

  9. A Node Influence Based Label Propagation Algorithm for Community detection in networks 文章算法实现的疑问

    这是我最近看到的一篇论文,思路还是很清晰的,就是改进的LPA算法.改进的地方在两个方面: (1)结合K-shell算法计算量了节点重重要度NI(node importance),标签更新顺序则按照NI ...

  10. Linux下面安装swoole

    需要安装php7 新建一个文件夹,作为存储swoole的文件夹 然后执行下面相对应的命令,这里是我执行的命令 新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http: ...