mysq练习(二)
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 ;