第三章   保证数据完整性

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. log4j自动加载原理

    java虚拟机加载log4j的类(LogManager.class)后,执行静态代码块,这个类中的静态代码块,会load log4j的配置文件,依次加载log4j.xml,log4j.properti ...

  2. 【Win10】实现 ListViewBase 平滑滚动

    首先解释下标题的 ListViewBase 是什么鬼.ListViewBase 我们可以查阅 MSDN 文档:https://msdn.microsoft.com/zh-cn/library/wind ...

  3. 【WP8.1】页面的导航效果

    <Page.Transitions> <TransitionCollection> <NavigationThemeTransition> <CommonNa ...

  4. Sql查询两个时间段有重叠的记录

    这个问题看上去简单,但是想了很久,最后发现,自己的思路有点乱. 下面四条时间段都和最上面那个有重叠的关系,就是这么个意思. 这里是问题的答案: 2个时间: a_start, a_end b_start ...

  5. Spring Boot 应用系列 1 -- Spring Boot 2 整合Spring Data JPA和Druid,双数据源

    最近Team开始尝试使用Spring Boot + Spring Data JPA作为数据层的解决方案,在网上逛了几圈之后发现大家并不待见JPA,理由是(1)MyBatis简单直观够用,(2)以Hib ...

  6. 初识WebAPI

    (一)Web API简介: 目前使用Web服务的三种主流的方式是:远程过程调用(RPC),面向服务架构(SOA)以及表征性状态转移(REST),其中REST模式的Web服务与复杂的SOA和RPC对比来 ...

  7. Xamarin.Forms第三方XAML预览工具-LiveXAML简单体验

    截至目前,Xamarin官方的Xaml Previewer工具仍然处于测试阶段,使用中也发现了各种不便,例如各种莫名其妙的渲染失败,或者提示需要编译项目才能渲染等等,复杂项目基本不可用, 完全没有体现 ...

  8. Python:Selenium+Webdriver安装

    本人小白一枚,今天在使用selenium+webdriver的时候遇到了一个小问题: WebDriverException: 'chromedriver' executable needs to be ...

  9. ASP.Net Core 2.2 InProcess托管的Bug:unable to open database file

    最近把项目更新到了ASP.Net Core 2.2,发布之后发现在IIS下使用SQLite数据库不行了,报异常说不能打开数据库."unable to open database file&q ...

  10. eclipse创建Maven工程没有Maven Dependencies

    记一次eclipse创建Maven工程没有Maven Dependencies的坑 Eclipse版本:luna版 maven用的3.5.0 配置本文不提. 这辆天用Eclipse创建maven工程 ...