zoukankan      html  css  js  c++  java
  • Mysql的学习3___数据的管理,主键 外键 以及增改删

    1.主键:

    每个表中最多只能有1个主键,且主键的值不能重复,通过主键可以唯一的确定一条记录。当我们在创建表的时候就声明了主键的话,Mysql就会对我们插入的每一条记录进行检验,若有主键值相同时就会报错。另外主键是默认NotNull的。

    声明主键的两种方式:

    主键只是单个列时(比如设置学生的学号为主键): 

            Stu_id   int( 5 )  primary key;   

    主键是多个列时  :

            primary key(列名1,列名2。。。);

    主键和唯一性约束的区别:

    都保证了列或列组合的唯一性;但是主键在一个表中只能有一个,唯一性约束可以存在多个;主键不允许为空,唯一性约束可以为空的。

    2.外键:

    定义:在两个关系中存在公共的若干个字段,且在一个关系中这些公共字段是主键就称该表为主表,另一个关系就称为从表并称这些公共字段为外键。外键主要目的是将两张表形成关联,即就是可以通过从表的外键来引用从表中其他列的值或者空值。

    定义的语法格式:

    constraint   [ 外键的名称 ]   foreign  key (列1,列2。。。) refferences  父表名(父列1,父列2。。。)

    (建立外键时:先创建主表,再是从表     删除外键时:先删除从表,再是主表)

    #创建外键方式:在创建从表的同时创建外键
    (grade是主表,student是从表)
    CREATE TABLE `grade` (   
      `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',
      `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
      PRIMARY KEY (`gradeid`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;
    
    
    CREATE TABLE `student` (
      `studentno` INT(4) NOT NULL COMMENT '学号',
      `studentname` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
      `sex` TINYINT(1) DEFAULT '1' COMMENT '性别',
      `gradeid` INT(10) DEFAULT NULL COMMENT '年级',
      `phoneNum` VARCHAR(50) NOT NULL COMMENT '手机',
      `address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
      `borndate` DATETIME DEFAULT NULL COMMENT '生日',
      `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
      `idCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
      PRIMARY KEY (`studentno`),
      KEY `FK_gradeid` (`gradeid`),
      CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;

    3.数据的管理:

    数据库操作语言:用于操作数据库对象中所包含的数据。

    INSERT:添加数据语句

    语法:insert  into  [ 表名 ]  (列1,列2。。。) value (值1,值2。。。);

    INSERT INTO `school`.`grade`(`GradeID`,`GradeName`) VALUE ('7','大六');     (注意数据库名,表名,字段名用 ` ` 括起来,普通的字符串用 ' '括起来)

    INSERT INTO `school`.`test` (`coll`) VALUE ('row1'),('row2'),('row3');   (多行插入)

    UPDATE:更新数据语句

     UPDATE `school`.`grade` SET `GradeName`='工科实验班',`GradeID`='100' WHERE `GradeID`='5';

    语法:update  表名  set 列名1=值1,列名2=值2 where 列=目标列
    列名为要修改的列, where后面是具体的条件,略写时指在修改所有列的数据

    DELETE:删除数据语句

    DELETE FROM `school`.`grade` WHERE `GradeID`='8';

    语法:delete from 表名 [where condition];     
    注意:condition为筛选条件,如果不指定则删除表的所有列数据

    TRUNCATE:用于完全清空表数据,表结构,索引,约束等不变,不会对事务有影响

    删除后自增的当前值会从初始值开始重新记录。

    TRUNCATE TABLE `school`.`grade`;

     

    语法:TRUNCATE [TABLE] table_name;

     

     

     

  • 相关阅读:
    BOM and DOM
    css
    HTML
    数据库
    线程
    进程.
    粘包的高大上版本
    2015.3.10(自适应屏幕和弹性布局)
    2015.3.9小练习(投票百分比jquery)
    2015.3.9小练习(无刷新留言板)
  • 原文地址:https://www.cnblogs.com/xbfchder/p/11146474.html
Copyright © 2011-2022 走看看