实验一:数据库和表的操作
实验目的: 1:学会使用MySQL语句创建数据库、创建表、使用主键约束、外键约束、添加常用约束 2:学会使用MySQL语句查看表结构与修改表名、修改字段名与字段数据类型、添加与删除字段、修改字段的排列位置、删除表的外键约束 3:学会使用MySQL语句插入数据、更新数据、删除数据
1.1在命令行中连接MySQL,并创建一个名为MyDb的数据库。
mysql -uroot -p123123 -h127.0.0.1
mysql> create database MyDb;
mysql>show databases;
1.2在命令行中操作,创建数据库TestDb,在TestDb下创建表t_emp
mysql> create database TestDb;
mysql> use TestDb;
mysql> create table t_emp(
-> id Int,
-> name VARCHAR(32),
-> deptId Int,
-> salary FLOAT
-> );
mysql> desc t_emp;
1.3在数据库MyDb中,创建两张表t_user1,t_user2,表结构如下,请为两张表分别创建主键约束,t_user1的主键为userId,t_user2的主键为联合主键,将字段name和phone作为t_user2的联合主键。
mysql> create database MyDb;
mysql> use MyDb;
mysql> create table t_user1(
-> userId Int primary key,
-> name VARCHAR(32),
-> password VARCHAR(11),
-> phone VARCHAR(11),
-> email VARCHAR(32)
-> );
mysql> create table t_user2(
-> name VARCHAR(32),
-> phone VARCHAR(11),
-> email VARCHAR(32),
-> PRIMARY KEY(name,phone)
-> );
1.4创建两张表如下,给t_student表添加外键约束,外键为classId,外键名称为fk_stu_class1。
mysql> create database MyDb;
mysql> use MyDb;
mysql> create table t_class(
-> id int primary key,
-> name VARCHAR(22));
mysql> create table t_student(
-> id int primary key,
-> name VARCHAR(22),
-> classId int,
-> CONSTRAINT fk_stu_class1 FOREIGN KEY(classId) REFERENCES t_class(id)
-> );
1.5在数据库MyDb中创建表t_user,表结构如下:
mysql> create database MyDb;
mysql> use MyDb;
mysql> create table t_user(
-> id int primary key AUTO_INCREMENT,
-> username varchar(32) NOT NULL UNIQUE,
-> sex varchar(4) DEFAULT '男'
-> );
2.1根据提示,在编辑器补充代码: 把数据表tb_emp改名为jd_emp; 查看该数据库下数据表的列表; 查看数据表jd_emp的基本结构。
USE Company;
ALTER TABLE tb_emp RENAME jd_emp;
show tables;
describe jd_emp;
2.2根据提示,在编辑器补充代码: 把数据表tb_emp的字段Id改名为prod_id,数据类型不变; 把数据表tb_emp字段Name的数据类型改为varchar(30)。 数据表结构如下:
USE Company;
ALTER TABLE tb_emp change Id prod_id int(11);
ALTER TABLE tb_emp MODIFY Name varchar(30);
DESCRIBE tb_emp;
2.3根据提示,在编辑器补充代码: 在数据表tb_emp的Name字段后添加字段Country,数据格式为varchar(20); 删除数据表tb_emp中的字段Salary。 数据表结构如下:
USE Company;
ALTER TABLE tb_emp ADD Country varchar(20) AFTER Name;
ALTER TABLE tb_emp DROP Salary;
DESCRIBE tb_emp;
2.4根据提示,在编辑器补充代码: 将数据表tb_emp的Name字段移至第一列,数据格式不变; 将DeptId字段移至Salary字段的后边,数据格式不变。 数据表结构如 2.3 中图片所示:
USE Company;
ALTER TABLE tb_emp MODIFY Name varchar(25) FIRST;
ALTER TABLE tb_emp MODIFY DeptId int(11) AFTER Salary;
DESCRIBE tb_emp;
2.5我们已经为你建立了主表tb_dept和子表tb_emp,在表tb_emp上添加了名称为emp_dept的外键约束,外键名称为DeptId,依赖于表tb_dept的主键Id,下面那是两张表的结构展示: 请你根据提示,在编辑器Begin-End中补充代码: 删除数据表tb_emp的外键约束emp_dept。
USE Company;
ALTER TABLE tb_emp DROP FOREIGN KEY emp_dept;
SHOW CREATE TABLE tb_emp \G;
3.1我们为你新建了一个空数据表tb_emp,请你为它同时添加3条数据内容。空数据表结构如下,注意字段3 为DeptId,倒数第二个字母为大写的i:需要你同时添加的数据内容为:(注意,是同时插入多条记录)
USE Company;
INSERT INTO tb_emp(Id,Name,DeptId,Salary)
VALUE(1,"Nancy",301,2300.00),(2,"Tod",303,5600.00),(3,"Carly",301,3200.00);
SELECT * FROM tb_emp;
3.2我们为你新建了一个数据表tb_emp,并添加了3条数据内容。3条数据内容如下表所示:请你将Carly改为Tracy,相应的,301改为302,3200.00改为4300.00。
USE Company;
UPDATE tb_emp
SET Name="Tracy",DeptId=302,Salary=4300.00
WHERE id=3;
SELECT * FROM tb_emp;
3.3请你将3.2图中Salary大于3000的数据行删除。
USE Company;
DELETE FROM tb_emp
WHERE Salary>3000;
SELECT * FROM tb_emp;
|