数据库MySQL—笔记(四)
首页 > 数据库   作者:珠珠  2021年2月20日 16:18 星期六  热度:777°  字号:   评论:0 条
时间:2021-2-20 16:18   热度:777°  评论:0 条 

 ##DDL语句

###库和表的管理

库的管理:

        一、创建库

        create database 库名

        二、删除库

        drop database 库名

表的管理:

        #1.创建表

        CREATE TABLE IF NOT EXISTS stuinfo (

                stuId INT,

                stuName VARCHAR(20),

                gender CHAR,

                bornDate DATETIME

);

 

        DESC studentinfo;

         #2.修改表 alter

          语法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;

 

          #①修改字段名

            ALTER TABLE studentinfo CHANGE COLUNN sex gender CHAR;

         

            #②修改表名

             ALTER TABLE stuinfo RENAME [TO] stustudentinfo

 

            #③修改字段类型和列级约束

            ALTER TABLE studentinfo MODIFY COLUMN borndate DATE;

 

            #④添加字段

            ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;

           

            #⑤删除字段

            ALTER TABLE studentinfo DROP COLUMN email;

 

            #3.删除表

            DROP TABLE [IF EXISTS] studentinfo

 

###常见类型

        整型:

        小数:

                浮点型

                定点型

        字符型:

        日期型:

        Blob类型:

 

###常见约束

含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

 

分类:六大约束

        NOT NULL:非空,用于保证该字段的值不能为空

              比如姓名,学号

        DEFAULT:默认,用于保证该字段为有默认值

               比如性别

        UNIQUE:唯一,用于保证该字段的值具有唯一性,并且非空

                比如座位号

        CHECK:检查约束【mysql中不支持】

        PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空

                比如学号、员工编号

        FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值

                在从表添加外键约束,用于引用主表中某列的值

                比如学生的专业编号,员工表的部门编号,员工表的工种编号

 

主键和唯一:

        1、区别:
            ①一个表至多有一个主键,但可以有多个唯一
            ②主键不允许为空,唯一可以为空
        2、相同点
            都具有唯一性
            都支持组合键,但不推荐

 

外键:

       1、用于限制两个表的关系,从表的字段值引用了主表的某字段值

       2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求

       3、主表的被引用列要求是一个key(一般就是主键或唯一)

       4、插入数据,先插入主表

        删除数据,先删除从表

 

添加约束的时机:

            1、创建表时

            2、修改表时

 

约束的添加分类:

        列级约束:

                六大约束语法上都支持,但外键约束没有效果

       表级约束:

                除了非空、默认、其他的都支持

 

#二、创建表时添加约束

语法:

直接在字段和类型后面追加 约束类型即可。

只支持:默认、非空、主键、唯一

 

           create table 表名(
                 字段名 字段类型 not null,#非空
                 字段名 字段类型 primary key,#主键
                 字段名 字段类型 unique,#唯一
                 字段名 字段类型 default 值,#默认
                 constraint 约束名 foreign key(字段名) references 主表(被引用列)

            )
        注意:
                       支持类型  可以起约束名   
        列级约束  除了外键  不可以
        表级约束  除了非空和默认 可以,但对主键无效

        列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求

 

#三、修改表时添加约束

         1、添加列级约束

        alter table 表名 modify column 字段名 字段类型 新约束;

 

        2、添加表级约束

        alter table 表名 add 【contraint 约束名】约束类型(字段名)【外键的引用】;

1、非空


添加非空


alter table 表名 modify column 字段名 字段类型 not null;


删除非空


alter table 表名 modify column 字段名 字段类型 ;



2、默认


添加默认


alter table 表名 modify column 字段名 字段类型 default 值;


删除默认


alter table 表名 modify column 字段名 字段类型 ;


3、主键


添加主键


alter table 表名 add【 constraint 约束名】 primary key(字段名);


删除主键


alter table 表名 drop primary key;



4、唯一


添加唯一


alter table 表名 add【 constraint 约束名】 unique(字段名);


删除唯一


alter table 表名 drop index 索引名;


5、外键


添加外键


alter table 表名 add【 constraint 约束名】 foreign key(字段名) references 主表(被引用列);


删除外键


alter table 表名 drop foreign key 约束名;

 

###标识列

又称为自增长列

含义:可以不用手动的插入值,系统提供默认的序列值


特点:

    1、标识列必须和主键搭配吗?不一定,但要求是一个key

    2、一个表可以有几个标识列?至多一个!

    3、标识列的类型只能是数值型

    4、标识列可以通过 SET auto_increment_increment=3;设置步长

    可以通过 手动插入值,设置起始值


#一、创建表时设置标识列

        DROP TABLE IF EXISTS tab_identity;

        CREATE TABLE tab_identity(

                d INT  ,

                NAME FLOAT UNIQUE AUTO_INCREMENT,

                seat INT



       );

        TRUNCATE TABLE tab_identity;


        INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');

        INSERT INTO tab_identity(NAME) VALUES('lucy');

        SELECT * FROM tab_identity;


        SHOW VARIABLES LIKE '%auto_increment%';


        SET auto_increment_increment=3;

 您阅读这篇文章共花了: 
捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
 本文无需标签!
二维码加载中...
本文作者:珠珠      文章标题: 数据库MySQL—笔记(四)
本文地址:http://zhuzhu.eleuu.com/?post=61
版权声明:若无注明,本文皆为“珠珠个人博客”原创,转载请保留文章出处。
分享本文至:

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框


既然没有吐槽,那就赶紧抢沙发吧!