MY SQL 实验二:

实验2 创建实验用的数据库

一、实验目的

    通过实验掌握使用Mysql数据库管理系统中建立数据库和用SQL定义基本表、修改基本表和删除基本表的方法。

二、实验原理

  数据库定义:

   (一)创建数据库(模式)

        CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] database_name

         数据库名 database_name

         MySQL不区分数据库及模式

   (二 )创建表及 MySQL 数据类型  

       一般分为数值型(Numeric), 字符串型(String)及 日期时间型(Date/Time) 三类

      1.数值型 分为整型及小数型

         1) 整型

    TINYINT: 8-bit,[-128, 127] , [0, 255]

    SMALLINT: 16-bit  [-32768, 32767] , [0, 65535]

    MEDIUMINT: 24-bit [-8388608, 8388607] , [0, 16777215]

    INT (or INTEGER): 32-bit [-2147483648, 2147483647]  [0, 4294967295]

    BIGINT: 64-bit  [-9223372036854775808, 9223372036854775807] [0, 18446744073709551615]

    BIT(n): A n-bit 列.

    BOOLEAN (or BOOL): 与 TINYINT(1)相同

      2) 小数型

   FLOAT: 32-bit

   DOUBLE (or DOUBLE PRECISION or REAL): 64-bit

   DECIMAL(n, d) 例如 DECIMAL(6, 2),-9999.99 to 9999.99.

   FLOAT(n, d) or DOUBLE(n, d):

    2、字符串-文本型

   

      CHAR(n): 固定长字符, 最大255个字符。

      VARCHAR(n): 变长字符串最大65535(utf8 characters range from 1-4 bytes).

      TINYTEXT:  255 Bytes

      TEXT:  64 KBytes

      MEDIUMTEXT:  16 MBytes

      LONGTEXT:  4 GBytes

   3、日期时间Date/Time

     DATETIME:  'YYYY-MM-DD HH:MM:SS' 年-月-日-时-分-秒

     DATE: 'YYYY-MM-DD'

     TIME:  'HH:MM:SS'

     YEAR(4|2):  'YYYY' or 'YY'.

     TIMESTAMP: 与 DATETIME 类似

  4.其他类型

     1) 枚举 -enu, MySQL在存储枚举时非常紧凑,会根据列表值的数量压缩到一个或者两个字节中。

         sex 字段只允许插入 male , female , unknow 中的其中之一

 枚举最大可以有 65535 个成员值。

 create table tt2(sex enum('男','女','未知')default '未知');

     2)二进制数据Binary Data and BLOB

      BINARY(n),VARBINARY(n),TINYBLOB: 255 bytes,BLOB:  64KBytes,MEDIUMBLOB: 16MBytes

      LONGBOLB:  4GBytes

    3) 空间数据类型 Spatial Data Types(点,线,几何图)及 enum, Set 等

   

   (三)修改表的结构

     ALTER TABLE <表名>

         [ ADD <新列名> <数据类型> [ 完整性约束 ] ]

         [ DROP <完整性约束名> ]

     [ ALTER COLUMN<列名> <数据类型> ];

 例如

   #表test_tab增加列test

     alter table test_tab add(test char(10));

   #表test_tab修改列test

     alter table test_tab modify test char(20) not null;

   #表test_tab修改列test默认值

       alter table test_tab alter test set default 'system';

    #表test_tab去掉test默认值

   alter table test_tab alter test drop default;

     #表test_tab去掉列test

   alter table test_tab drop column test;

  

  三、实验条件

     windows7 操作系统, mysql5.6 数据库服务器。

 四、实验内容和方法

   实验数据库,老师提供数据库脚本TradeDBSQL.txt

   (一) 建立实验数据库

         1. 启动MYSQL服务器

              在命令窗口(cmd),输入mysqld --console 命令

         2. 登录MYSQL系统

           在另外一个命令窗口(cmd)输入mysql -u root -p 回车

          密码为空 进入系统

        3.在E盘创建自己的工作目录,例如db2021,将老师提供的数据库脚本文件TradeDBSQL.txt放在此目录下

运行数据库脚本

mysql> source e:\db2021\TradeDBSQL.txt

  将自动创建Trade数据库,创建产品、订单等8张表,并且插入数据。

   系统将花一点时间自动建立数据库。

       4.了解实验用数据库

           show databases; - 列出所有数据库,有没有trade 数据库?

           use trade; 进入trade 数

   status; 将显示数据库的关键信息,版本号,登录用户,端口号,特别是服务器、客户端的字符集

           show tables; 显示trade 有多少张表

           desc Products;  显示Products 表的结构,用此方法显示所有的表,并且打开TradeDBSQL.txt 文件,与每张表的定义进行比较。

   

      打开数据库结构图,表名及字段用中文名的利弊。

          1) Products -产品表

    ProductID -产品ID, ProductName -产品名称,  SupplierID -供应商ID, CategoryID -类别ID,QuantityPerUnit -单位数量

    UnitPrice -单价,UnitsInStock -库存量, UnitsOnOrder -订购量, ReorderLevel -再订购量,Discontinued -中止

         2) Orders -订单

   OrderID -订单ID,CustomerID -客户ID, EmployeeID -雇员ID, OrderDate -订购日期, RequiredDate -到货日期,ShippedDate -发货日期,

  ShipVia -运货商, Freight -运货费, ShipName -货主名称, ShipAddress -货主地址, ShipCity -货主城市, ShipRegion -货主地区,

  ShipPostalCode -货主邮政编码, ShipCountry -货主国家

         3) OrderDetails -订单明细

    OrderID -订单ID,  ProductID -产品ID, UnitPrice -单价, Quantity -数量, Discount -折扣

        4) Suppliers - 供应商表

    SupplierID -供应商ID, CompanyName -公司名称, ContactName -联系人姓名,ContactTitle -联系人职务, Address -地址, City -城市, Region -地区, PostalCode -邮政编码, Country -国家, Phone -电话, Fax -传真, HomePage -主页

       5) Employees -雇员表  

   EmployeeID 雇员ID,  LastName -姓氏,  FirstName -名字, Title -职务, TitleOfCourtesy -尊称, BirthDate -出生日期, HireDate雇用日期,

  Address -地址, City -城市, Region -地区, PostalCode -邮政编码, Country -国家, HomePhone -家庭电话, Extension -分机, Notes -备注, ReportsTo -上级

       6) Customers -客户表

    CustomerID -客户ID, CompanyName -公司名称, ContactName -联系人姓名, ContactTitle -联系人职务, Address -地址, City-城市,

    Region -地区, PostalCode -邮政编码, Country -国家, Phone -电话, Fax -传真

      7) Categories -类别表

    CategoryID -类别ID, CategoryName -类别名称, Description -说明

    8) Shippers -运货商表

    ShipperID -运货商ID,CompanyName -公司名称,Phone -电话

     4 优化数据类型

      MYSQL 的 procedure analyse() 用于分析优化的数据类型定义。

               select * from Products procedure analyse() \G;

       select * from Products procedure analyse(5,256)\G;  (对于所有表进行比较)

     说明: procedure analyse(5,256)不要建议含有多于5个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;

           比较优化结果与原设计的异同    

    (二)创建 school 数据库

       1. 创建数据库

           CREATE database school DEFAULT CHARACTER SET gbk ;

       

      2. 创建表-表定义

  根据下列表的信息,参照实验数据库的脚本,定义下列三张表

  

    Student表

Sno       Sname         Ssex         Sage          Sdept

95001     李勇          男           20             CS

95002     刘晨          女           19             IS

95003     王敏          女           18             MA

95004     张立          男           19             IS

Course表

Cno     Cname          Cpno       Credit

1      数据库           5           4

2      数学                         2

3      信息系统         1           4

4      操作系统         6           3

5      数据结构         7           4

6      数据处理                     2

7     PASCAL语言        6           4

SC表

Sno        Cno          Grade

95001      1             92

95001      2             85

95001      3             88

95002      2             90

95002      3             80

   3 修改基本表 alter table

    1) 添加新列

     在SC表中添加2个新列,名为T1和T2数据类型均为整型。参考ALTER TABLE 语法

      增加新列方法

     参考: ALTER TABLE 表名 ADD 列名 数据类型;

       用desc sc 查看结果

     2) 修改列名及数据类型

          1) 改变某列的数据类型

  修改SC表中T1的数据类型为 TINYINT

  参考: ALTER TABLE 表名 MODIFY 列名 新数据类型      

          2) 改变某列的列名及数据类型

  将T2名改为T22类型改为varchar(20)

  参考: ALTER TABLE 表名 CHANGE 老列名 新列名  新数据类型

       用desc sc 查看结果

    3) 删除列

       删除SC 表的T22列

      参考:   ALTER TABLE 表名 DROP COLUMN 列名;      

  

    4) 修改表名    

       重命名 将SC表名名改为SC1

       参考: ALTER TABLE 表名 RENAME 新表名;

  4 添加记录

insert into  student values ('95001','李勇','男',20,'CS');

insert into student values ('95002', '刘晨','女',19,'IS');

insert into  student values('95003', '王敏', '女',18, 'MA');

insert into student values('95004', '张立', '男',19, 'IS');

insert into Course values('1','数据库', '5',4);

insert into Course values('2', '数学', '' ,2);

insert into Course values('3', '信息系统', '1', 4);

insert into Course values('4', '操作系统', '6', 3);

insert into Course values('5', ' 数据结构', '7', 4);

insert into Course values('6', '数据处理',  '',  2);

insert into Course values('7',  'PASCAL语言', '6', 4);

insert into SC1 values('95001', '1', 92);

insert into SC1 values('95001', '2', 85);

insert into SC1 values('95001', '3', 88);

insert into SC1 values('95002', '2', 90);

insert into SC1 values('95002', '3', 80);

   分别用select * from student, select * from course 和select * from sc,检验三张表是否存在正确的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/603304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】实现快速改变内容大小选择框

简言 简单实现选择框改变内容大小和位置。 内容 这里实现选择框改变内容大小是让内容宽高等于选择框的百分之百&#xff0c;当选择框大小改变时&#xff0c;内容也会响应的改变。 位置则是根据定位实现的。 选择框 选择框就是一个div&#xff0c;然后定位上下左右四条边和…

FastText 算法原理及使用方法

文章目录 1. 前言2. 模型架构2.1 Hierarchical Softmax2.2 n-gram 特征 3. 训练及评估4. 使用5. 参考 1. 前言 FastText 是一个由 Facebook AI Research 在2016年开源的文本分类器&#xff0c;它的设计旨在保持高分类准确度的同时&#xff0c;显著提升训练和预测的速度。 论文…

https证书免费申请

https证书也称SSL证书或是TLS证书&#xff0c;主要是用于网站实现https加密访问。 1、工作原理&#xff1a;HTTPS证书在HTTP协议基础上加入了SSL/TLS协议层&#xff0c;实现数据的加密传输。当用户访问启用HTTPS的网站时&#xff0c;浏览器会与网站服务器建立一个安全连接。这个…

C++:继承-继承权限

在C中&#xff0c;类的权限分为公有、私有和保护三种。这些权限控制了类的成员&#xff08;数据成员和成员函数&#xff09;对外部代码的可见性和访问性。 公有&#xff08;public&#xff09;权限&#xff1a; 在公有权限下声明的成员可以被类的外部代码直接访问&#xff1b;公…

STM32、GD32驱动PCA9685控制舵机源码分享

一、PCA9685介绍 PCA9685是一种16通道PWM&#xff08;脉宽调制&#xff09;控制器芯片&#xff0c;由NXP Semiconductors公司生产。它具有高速I2C总线接口&#xff0c;可以通过I2C总线与微控制器或其他设备进行通信。PCA9685广泛应用于各种需要精确控制多路PWM信号的应用&…

一种利用MPLS实现IPv4网络向IPv6网络过度的技术

前言 6PE&#xff08;IPv6 Provider Edge&#xff09;是一种利用MPLS&#xff08;(Multi-Protocol Label Switching&#xff09;&#xff0c;实现IPv4网络向IPv6网络过渡的技术。6PE技术能够使得多个IPv6孤岛网络采用MPLS LSP隧道&#xff0c;跨越IPv4 MPLS骨干网相互进行通信…

碳课堂|如何开展碳排放核算? ISO 14064-2 项目层次要点解读

为提高企业组织碳排放报告信誉度&#xff0c;国际标准化组织&#xff08;ISO&#xff09;发布了ISO14064标准&#xff0c;其中《ISO 14064-2 项目层次上对温室气体减排和清除增加的量化、监测和报告的规范及指南》提供了项目策划阶段的原则要求&#xff0c;以及项目实施阶段的量…

VBA中类的解读及应用第十二讲:限制复选选择(上)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

Mybatis Plus二级缓存 使用@CacheNamespace 失效@CacheNamespace和@CacheNamespaceRef

1、注解 CacheNamespace(flushInterval 100000,eviction LruCache.class,readWrite false,size 1024)2、xml配置 <cache eviction "LRU" flushInterval "100000" readOnly "true" size "1024"/> 二级缓存&#xff0c;配置文…

基础设施即代码——灵活构建具备弹性和可扩展性的基础设施

本书的初衷是帮助大家更好地编写基础设施即代码(Infrastructure as Code&#xff0c;IaC)&#xff0c;并且能够在不影响关键业务系统的情况下&#xff0c;稳定高效地变更基础设施资源。本书重点介绍了个人、团队或公司在基础设施系统中应用的模式与实践&#xff0c;聚焦能够应用…

【C++】——内存管理

&#x1f600;&#x1f600;前言 好久没更新了&#xff0c;五一小长假&#xff0c;有点玩脱了&#xff0c;今天赶紧补一篇博客&#xff0c;回回状态 一 c/c内存分配 下面看下面一段代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; i…

华为eNSP中型企业局域网网络规划设计(上)

敲半天一个闪退全™给我干没了呜呜呜&#xff0c;eNSP&#xff0c;wcnm&#xff01;wcnm&#xff01;wcnm&#xff01; →b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;下&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩←…

抖音小店怎么运营?最全的运营攻略来了?

大家好&#xff0c;我是电商糖果 很多开好店铺的小伙伴&#xff0c;都会遇到一个难题&#xff0c;那就是不会运营店铺。 可能好几个月才出十几单&#xff0c;甚至体验分都没有弄出来。 说实话&#xff0c;这种情况糖果见多了。 糖果做抖音小店也有四年多了&#xff0c;也开…

【全开源】Java淘宝客多商户系统APP源码任务聚合优惠券多商户源码

功能特点&#xff1a; 商户管理&#xff1a;支持多商户入驻&#xff0c;包括商户的注册、审核、信息维护等功能。同时&#xff0c;系统可以对商户进行分类、排序和搜索&#xff0c;方便管理。全行业覆盖√ miui52086商品管理&#xff1a;提供商品发布、编辑、上下架等功能&…

PMP考试没过怎么办?如何补考?(附复核流程)

最近刷小红书&#xff0c;看很多人都在晒PMP通过的成绩截图&#xff0c;一方面为大家开心&#xff0c;终于拿到了期盼已久的PMP&#xff0c;但同时也有宝子发挥失常没通过考试&#xff0c;所以这期针对没考过的宝子们&#xff0c;出一期复盘文章&#xff0c;无论结果如何&#…

QT4-升级到QT5(1)

1.C报错汇总_nafxcwd.lib error lnk2001-CSDN博客1 1.QT3Support QWidget::setShown 改为QWidget::setVisible 2.头文件 #include<QWidget> 3.部分函数替换

印章常见问题如何防?君子签电子印章实现管章、用章、控章一体化

企业公章管理和使用关乎企业经营&#xff0c;近年来&#xff0c;各类印章问题层出不穷&#xff1a;“通过PS、图片章伪造授权、合同等文件”、“冒充公司员工利用假身份、假印章签约”、“管理层私刻印章伪造业务材料”等常见假印章套路&#xff0c;让企业防不胜防&#xff0c;…

内网渗透(二)

预备知识 什么是域&#xff1f; 域是若干台计算机组成的集合&#xff0c;一个电脑也是。域中的电脑是分等级的&#xff0c;分为域控和成员机。 如何安装域&#xff1f; 在服务器管理中添加服务器角色&#xff0c;添加域服务 如何加入域? 首先一定要修改DNS服务器 ip为域…

解密某游戏的数据加密

前言 最近有个兄弟通过我的视频号加我&#xff0c;咨询能否将这个dubo游戏游戏开始前就将数据拿到从而进行押注&#xff0c;于是通过抓包工具测试了下&#xff0c;发现数据有时候是明文&#xff0c;有时候确实密文&#xff0c;大致看了下有这几种加密&#xff1a;Md5aes、Md5&a…

squeeze的用法

squeeze是压缩张量的命令 import torch a torch.randn(1,3) print(a) print(a.shape) 比如说squeeze&#xff08;&#xff1f;&#xff09;括号里是啥 就是在哪个维度上删除维度为1 之后的结果 比如上上面那个里子 a是&#xff08;[[]]&#xff09; 但是在下面那个例子中d…
最新文章