zoukankan      html  css  js  c++  java
  • Mysql 数据插入 修改删除

    MYSQL基础上机练习题(二) 数据插入、修改、删除

    一、实验目的:

    1. 数据插入、修改、删除
    2. 数据表的复制
    3. 字段分列

    二、实验内容:

    对实验一所展示的表进行数据输入、修改、删除 
    以下为Employees,Departments,Salary表中的内容

    Employees 
     

    Departments 

    Salary 

    三、题目:

    1. 按照Departments表的内容插入数据(知识点:数据插入)

    2. 按照Employees表的内容插入数据(知识点:数据插入)

    3. 修改Employees中修改李丽的DepartmentID为’4’(知识点:数据修改)

    4. 创建一个与Employees结构和内容一致的表,名为Employees_Duplicated (知识点:数据表的复制)

    5. 对Employees_Duplicated表中的Address字段以空格为间隔符,分列为StreetName(街道名)和RoomName(房号)(知识点:字段分列)

    6. 删除Employees_Duplicated表中编号为’000001’的行内容(知识点:删除某行数据)

    7. 删除Employees_Duplicated表中Address字段中所有内容(知识点:删除某字段所有数据)

    8. 在Salary表中插入Employees表中所有的EmployeesID (知识点:选择性数据插入)

    9. 在Salary表中插入InCome和OutCome值(知识点:带存储过程的数据插入)

    10. 在Salary中,修改编号为’020018’的InCome值(知识点:带存储过程的数据修改)

    ###三、代码:

    1. 按照Departments表的内容插入数据(知识点:数据插入)

    (1)代码方式插入(注意,该表有外键Departments中的DepartmentsID来插入):

    INSERT INTO Departments VALUES('1', '财务部', NULL)

    • 1

     

    (2)数据比较多的时候建议界面方式插入,插入后: 

    2. 按照Employees表的内容插入数据(知识点:数据插入)

    (1)代码方式插入:

    INSERT INTO Employees VALUES('000001', '王林', '大专', '1966-01-23', 1, 8, '中山路 32-1-508', '83355668', '2')

    • 1

     

    (2)数据比较多的时候建议界面方式插入,插入后: 

    3. 修改Employees中修改李丽的DepartmentID为’4’(知识点:数据修改)

    UPDATE employees SET DepartmentID = '4' WHERE Name = '李丽'

    • 1

     

    4. 创建一个与Employees结构和内容一致的表,名为Employees_Duplicated (知识点:数据表的复制)

    CREATE TABLE Employees_duplicated SELECT * FROM Employees

    • 1

    Employees_duplicated 表结构 

    Employees_duplicated 数据 
     
    (同样,如果仅仅需要复制表的结构,可以用:

    CREATE TABLE Employees_duplicated2 LIKE Employees

    • 1

    使得创建一个新的TABLE和Employees的TABLE有同样的表结构 

    5. 对Employees_Duplicated表中的Address字段以空格为间隔符,分列为StreetName(街道名)和RoomName(房号)(知识点:字段分列)

    首先,需要新增两个字段:StreetName和RoomName

    ALTER TABLE Employees_duplicated ADD COLUMN RoomNumber VARCHAR(40) COMMENT '房号' AFTER Address

    ALTER TABLE Employees_duplicated ADD COLUMN StreetName VARCHAR(40) COMMENT '街名' AFTER Address

    • 1
    • 2

     
    然后,把根据间隔符提取的字段分别插入到StreetName和RoomNumber两个字段中,其中SUBSTRING_INDEX函数的用法为SUBSTING_INDEX(需要分列的字段,’间隔符’,间隔符前(为正)/后(为负)的第几个的字符串)

    UPDATE Employees_duplicated SET RoomNumber = SUBSTRING_INDEX(Address, ' ', -1);

    UPDATE Employees_duplicated SET StreetName = SUBSTRING_INDEX(Address, ' ', 1);

    • 1
    • 2

     

    6. 删除Employees_Duplicated表中编号为’000001’的行内容(知识点:删除某行数据)

    DELETE FROM Employees_Duplicated WHERE EmployeeID = '000001'

    • 1

     

    7. 删除Employees_Duplicated表中Address字段中所有内容(知识点:删除某字段所有数据)

    UPDATE Employees_Duplicated SET Address = ''

    • 1

     

    8. 在Salary表中插入Employees表中所有的EmployeesID (知识点:选择性数据插入)

    INSERT INTO Salary(EmployeeID) SELECT EmployeeID FROM Employees

    • 1

     

    9. 在Salary表中插入InCome和OutCome值(知识点:带存储过程的数据插入)

    (1)代码方式插入(注意,该表有外键Departments中的DepartmentsID来插入) 
    因为ActInCome是通过存储过程来计算的,因此有两种插入方式,结果都一样

    INSERT INTO Salary VALUES('000001', 2100.8, 123.09, 0)

    • 1

    INSERT INTO Salary(EmployeeID, InCome, OutCome) VALUES('000001', 2100.8, 123.09)

    • 1

     
    (插入时,插入的字段数必须和表结构一致,多一个数据或少一个数据都会导致发生#1136错误)

    情况:在插入数据时可能会遇到这种情况:

    原因:

    插入时的数据个数与表中的字段个数不一致

    解决方法:

    检查表中的字段数与代码中所插入的数据字段数是否一致

    例如:以下为Salary表中结构

    虽然ActInCome中设置了空值,且是根据InCome-OutCome的存储过程得出的结果字段,但代码不能为(以下为错误代码):

    INSERT INTO Salary VALUES('000001', 2100.8, 123.09)

    1

    正确代码应该为:

    INSERT INTO Salary VALUES('000001', 2100.8, 123.09, 0)

    1

    或者定义只插入某几个字段

    INSERT INTO Salary(EmployeeID, InCome, OutCome) VALUES('000001', 2100.8, 123.09)

    1

    P.S:Mysql和SQL SERVER 不一样,SQL SERVER不输入该字段时,可以显示默认值

    (2)界面方式插入(刷新后,ActInCome就可以算出来) 

    10. 在Salary中,修改编号为’020018’的InCome值(知识点:带存储过程的数据修改)

    UPDATE Salary SET InCome = 5000 WHERE EmployeeID = '020018'

    • 1

     

  • 相关阅读:
    Java之路---Day09(继承)
    Java之路---Day08
    Java之路---Day07
    Java之路---Day06
    转载:js 创建对象、属性、方法
    Javascript类型检测
    jQuery 如何写插件
    js浮点数精度问题
    IE7.JS解决IE兼容性问题方法
    CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
  • 原文地址:https://www.cnblogs.com/Pythons/p/10760636.html
Copyright © 2011-2022 走看看