农妇山泉一亩田 发表于 2024-7-16 05:08:57

[MySQL]数据库原理3——喵喵期末不挂科

https://img-blog.csdnimg.cn/direct/5e3f04f500a64b40ac7eeace564a5183.png
   希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!

目录
媒介
创建与管理数据库
创建库
检察与打开数据库
修改数据库
删除数据库
创建与管理表
创建表
检察表
复制表
总结
媒介

   本使命将学习创建和管理数据库、创建和管理表以及表数据操作的基本方法和技巧。在使命实施过程中,要特别注意表的规范化,要注意数据范例的精确选择,还要注意数据库和数据表字符集的同一题目。S学校要创建一个教学管理系统。根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。接下来,要创建数据库,设计数据表的结构,并初始化相干表数据。
创建与管理数据库

创建库

      利用   CREATE DATABASE   或   CREATE SCHEMA   命令可以创建数据库,其语法结构如下。      CREATE {DATABASE | SCHEMA} db_name。
    CHARACTER SET charset_name。
    | COLLATE collation_name。
    注:SCHEMA 概要,筹划,图表。数据库中的Schema,为数据库对象的聚集,一个用户一样平常对应一个schema。

   创建数据库。         mysql>  CREATE  DATABASE    JXGL;
   •           创建数据库   CPXS   库,并指定字符集为   utf8   。      mysql>  CREATE DATABASE CPXS
    DEFAULT CHARACTER SET utf8  
    COLLATE utf8_general_ci。
   
   DEFAULT CHARACTER SET   :指定命据库的默认字符集(   Charset   ),   charset_name   为字符集名称。         COLLATE   :指定字符集的校对规则,   collation_name   为校对规则名称。         创建数据库时   最好指定字符集   。如果指定了,在其内部创建的表、表中的字段都将继承利用这个字符集。若没有指定,则会继承利用服务器级的字符集。         IF NOT EXISTS   :如果指定了已有的数据库名,会出现错误信息。   IF NOT EXISTS   可防止同名,且不报错。    检察与打开数据库

      检察本服务器中的全部数据库       mysql> SHOW DATABASES;
       打开或选定命据库      创建了数据库并不表示选定并利用它,必须明确地操作。为了使JXGL成为当前的数据库,利用如下命令。
  mysql> USE  JXGL;

   检察当前正在利用的数据库名称。       mysql> select database();
修改数据库

      数据库创建后,如果需要修改数据库的参数,可以利用   ALTER  DATABASE   命令。语法类似创建:        ALTER {DATABASE | SCHEMA} [db_name]
    CHARACTER SET charset_name
    | COLLATE collation_name

   将   JXGL   库修改字符集为   utf8   ,校对原则为   utf8_general_ci       mysql>ALTER  DATABASE  JXGL  DEFAULT
  CHARACTER SET utf8 
  COLLATE utf8_general_ci
删除数据库

      已经创建的数据库,如果需要删除,可利用   DROP DATABASE   命令。语法格式:       
DROP DATABASE  [IF EXISTS] db_name

   删除   YGGL   库。      mysql> DROP  DATABASE  YGGL;

注: 删除了数据库,数据库里的全部表也同时被删除。因此,最好先对数据库做好备份,然后再实行删除操作。
创建与管理表

      数据库创建之后,数据库是空的,是没有表的,可以打开数据库检察。       mysql> USE  JXGL;
   mysql> SHOW TABLES;
       表决定了数据库的结构, 表是存放数据的地方,一个库需要什么表,各数据库表中有什么样的列,是要合理设计的。    创建表

      创建表的语法如下:    CREATE TABLE table_name
    [ ( [column_definition] , ... | [index_definition] ) ]
    [table_option] [select_statement];

   其中:   column_definition    col_name  type  default_value]  | KEY]  [reference_definition]
       学生管理系统(   JXGL   ),在这个库中要设计   6   张表。         students(   学生信息表   )       course   (课程表)       score   (结果表)       departments   (院系单位表)       teachers   (教师表)       teach   (教学表)       student       https://img-blog.csdnimg.cn/direct/a882e37220b44a55818bcf1b91ddfa1d.png       course       https://img-blog.csdnimg.cn/direct/cc5942b9518045b0856265bdce6bfbe2.png       score       https://img-blog.csdnimg.cn/direct/2ccc5c0c442041d6a8bf39bc0fd99fa8.png       department       https://img-blog.csdnimg.cn/direct/912fdb4bd7884d21af76f4355b6e1da6.png       teacher       https://img-blog.csdnimg.cn/direct/61fe634951434e4b8fce1ee2f2397175.png       teach       https://img-blog.csdnimg.cn/direct/d89f597e1dac45dc995c7559dabd2b84.png    //创建表teachers           
mysql>CREATE TABLE IF NOT EXISTS teachers
        (   
        T_NO char(8) NOT NULL COMMENT '教师编号',
       T_NAME char(8) NOT NULL COMMENT'教师姓名',
       D_NO char(8) NOT NULL COMMENT '院系编号',
        PRIMARY KEY (T_NO)
        )
        ENGINE=InnoDB DEFAULT CHARSET=utf8;
//创建表departments。
mysql>CREATE TABLE IF NOT EXISTS departments
                (
                D_NO char(8) NOT NULL COMMENT '院系编号',
                D_NAME char(8) NOT NULL COMMENT '院系名称',
               PRIMARY KEY (D_NO)
                  )
                 ENGINE=InnoDB DEFAULT CHARSET=utf8;
//创建表STUDENTS。          
mysql>CREATE TABLE IF NOT EXISTS STUDENTS
                       (
                       s_no char(4) NOT NULL COMMEN'学号',
                       s_name char(4) NOT NULL COMMENT'姓名',
                        sex ENUM('男', '女') DEFAULT '男' COMMENT '性别',
                       birthday date NOT NULL COMMENT'出生日期',
                       d_no varchar (4) NOT NULL COMMENT'所在系部',
                        address varchar(20) NOT NULL COMMENT'家庭地址',
                          phone varchar(12) NOT NULL COMMENT'联系电话',
                          photo blob COMMENT'照片',
                          PRIMARY KEY (s_no)
                        )
                ENGINE=InnoDB DEFAULT CHARSET=utf8;
      关于设置主键。   PRIMARY KEY   表示设置该字段为主键。如在   STUDENTS   表中,   PRIMARY KEY (   s_no   )   表示将   s_no   字段定义为主键。 在   score   表中,   PRIMARY KEY (   s_no,c_no   )   表示把   s_no   、   c_no   两个字段一起作为复合主键。         添加注释。   COMMENT'   学号   '   表示对“   s_no   ”字段增加注释为“学号”。         字段范例的选择。   SEX  ENUM('   男   '    ,   '   女   ')   表示   sex   字段的字段范例是   ENUM   ,取值范围为   '   男   '   和    '   女   '   。         默认值的设置。DEFAULT‘男’表示默认值为“男”。         设置精度。Score表中的report float(5,1)表示精度为6 ,小数位1位。         “ENGINE=InnoDB”表示接纳的存储引擎是InnoDB,InnoDB是MySQL在Windows平台默认的存储引擎,所以“ENGINE=InnoDB”可以省略。         DEFAULT CHARSET=utf8表示表的字符集是utf8。         如果没有指定是NULL或是NOT NULL,则列在创建时假定为NULL。         设置自动增量。一个整数列可以拥有一个附加属性AUTO_INCREMENT。AUTO_INCREMENT序列从一样平常1开始,也可以自定义(通过修改表语句实现)开始值。一样平常只用于主键字段。         在CPXS库中,创建进货单表,进货ID是自动增量,将进货单价列的精度设置为8  ,小数位设置为2位,进货时间默认为当前时间。    检察表

      创建了数据表后,现在再用   SHOW TABLES   查询已创建的表的环境。    mysql> SHOW TABLES; 修改表
      ALTER TABLE   用于更改原有表的结构。         可以增加或删减列、重新命名列或表,还可以修改默认字符集。    语法格式:
    ALTER TABLE tbl_name  //主句,指定要修改在表名

    alter_specification [, alter_specification] ...   //子句,指定要作的修改操作      其中:        IGNORE   :       是   MySQL   对   ANSI SQL92    的一个扩充,如果在表中的唯一键上有重复,它控制   ALTER TABLE   怎样工作。         如果   IGNORE   没被指定,副本被放弃而且恢复原状。         如果   IGNORE   被指定,那么对唯一键有重复的行,只有利用第一行;其余被删除。    alter_specification:
ADD column_definition //添加字段
| ALTER col_name {SET DEFAULT literal | DROP DEFAULT} //修改字段默认值
| CHANGE old_col_name column_definition             //重命名字段               
| MODIFY column_definition //修改字段数据类型
| DROP col_name                //删除列
| RENAME new_tbl_name                //对表重命名
| ORDER BY col_name    //按字段排序
| CONVERT TO CHARACTER SET charset_name //将字符集转换为二进制
| CHARACTER SET charset_name
                        //修改表的默认字符集
      在   STUDENTS   表的   department   列后面增加一列   speciality   。     mysql> ALTER TABLE STUDENTS
    ADD speciality VARCHAR(5 ) NOT NULL AFTER department;

   给   STUDENTS   表的   birthday   列后增加一列“入学日期   ”   ,并定义其默认值为   '2014-9-1'   。    mysql>ALTER TABLE STUDENTS 
    ADD 入学日期 date NOT NULL DEFAULT
'2014-9-1'  AFTER birthday;


   修改表   STUDENTS   的   sex   列的默认值为女。     mysql> ALTER TABLE STUDENTS CHANGE 性别  性别 char(2) NOT NULL DEFAULT '女';

   删除   STUDENTS   表的入学日期列的默认值。    mysql>ALTER TABLE STUDENTS ALTER  入学日期 DROP DEFAULT;


   将表   STUDENTS   重名为学生表。       mysql   > ALTER TABLE STUDENTS rename to   学生表   ;         修改   course   表的字符集为   utf8   。       ALTER TABLE course DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;       复制表

      可以通过   CREATE TABLE     命令复制表的结构和数据。         语法格式:        CREATE TABLE tbl_name
    old_tbl_name | (LIKE old_tbl_name )]  //复制表结构
    | select_statement)]  ;       //复制表结构和数据
       创建一个表   STUDENTS   的附表   STUDENTS1   。    mysql> CREATE  TABLE  STUDENTS1  LIKE STUDENTS;

   用命令检察   STUDENTS1   的结构。    mysql> DESC STUDENTS1;

   复制表   Students   的结构和数据,名为   students_copy   。    mysql> CREATE  TABLE  STUDENTS_COPY  AS  SELECT  *  FROM  STUDENTS
总结

      本使命将学习创建和管理数据库、创建和管理表以及表数据操作的基本方法和技巧。         在使命实施过程中,要特别注意   表的规范化   ,要注意   数据范例   的精确选择,还要注意   数据库和数据表字符集   的同一题目。       希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
https://img-blog.csdnimg.cn/direct/7f1c93914be54fb5829b5433c25d6f64.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: [MySQL]数据库原理3——喵喵期末不挂科