mysq练习(二)

Mysql练习(二)

1、 delete,drop,truncate 的区别?

   可以参考这位的:  https://www.cnblogs.com/zhizhao/p/7825469.html

2、 如何修改列名、删除行、删除列、新建列?

 # 修改表名
alter table salary rename demo;

#添加列
alter table demo add column age int(5);

#删除列
alter table demo drop column age;

#修改列类型
alter table demo modify age varchar(20);

 

3、

CREATE TABLE `courses` (
  `student` varchar(50) DEFAULT NULL,
  `class` varchar(50) DEFAULT NULL
) ;
​
INSERT INTO `courses` VALUES ('A', 'Math');
INSERT INTO `courses` VALUES ('B', 'English');
INSERT INTO `courses` VALUES ('C', 'Math');
INSERT INTO `courses` VALUES ('D', 'Biology');
INSERT INTO `courses` VALUES ('E', 'Math');
INSERT INTO `courses` VALUES ('F', 'Computer');
INSERT INTO `courses` VALUES ('G', 'Math');
INSERT INTO `courses` VALUES ('H', 'Math');
INSERT INTO `courses` VALUES ('I', 'Math');
INSERT INTO `courses` VALUES ('A', 'Math');
​
#查询所有超过或等于5名学生的课
select class from courses GROUP BY class HAVING COUNT(class)>4


4、
CREATE TABLE salary (
    id INT (10) NOT NULL PRIMARY KEY,
    NAME VARCHAR (20) NULL,
    sex CHAR (1) NULL,
    salary INT (10) NULL
);

注意:有人说建表语句中字段应该 'id' 这样子写,但是这样写是错误的,如果你想这样写了那么你就必须完全按照下面的格式来写
CREATE TABLE `salary` (
`id` int(10) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` varchar(1) DEFAULT NULL,
`salary` int(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中的 engin指的是数据库的存储引擎


INSERT INTO `salary` VALUES (
'1', 'A', 'f', '2500'); INSERT INTO `salary` VALUES ('2', 'B', 'm', '1500'); INSERT INTO `salary` VALUES ('3', 'C', 'f', '5500'); INSERT INTO `salary` VALUES ('4', 'D', 'm', '500');

​要求:交换所有的 f 和 m 值



上面两个方式结果是一样的

表连接
先创建两张表,兵哥插入三行数据
create table person(
 personId int(10),
 firstName VARCHAR(20),
 lastNamt VARCHAR(20)
);

insert into person values('1',"诸葛","");
insert into person VALUES('2',"司马","");
insert into person VALUES('3',"第五","轻柔");


create table address(
 addressId int(10) not null primary key,
 personId  int(10),
 city VARCHAR(20),
 state VARCHAR(20)
);
insert into address VALUES('1','1',"蜀","蜀国");
insert into address VALUES('2','2',"魏","魏国");
insert into address VALUES('3','3'," "," ");

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State

 

select a.*,b.firstName,b.lastName from address a ,person b where a.personId=b.personid;

编写一个 SQL 查询,来删除 email 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
select * from email  GROUP BY Email ORDER BY  id ;


















原文地址:https://www.cnblogs.com/zhuguangzhe/p/10650613.html