前言
Navicat Premium 17 数据表需要经常清缓存,不然之前的自增的数据可能会一直存在,所以把之前的表删除重新创建是对练习数据库最简单的办法。新建数据库的命令如下:
/* 创建有 自增主键的属性id,非空的属性name,唯一的属性tel,代表性别的属性sex,代表年龄的属性age,代表职位的默认为“学生”的属性position */
CREATE TABLE student(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
tel INT(11) UNIQUE,
sex char(1),
age int(4),
position VARCHAR(4) DEFAULT('学生'));
/*添加数据,因为id是自增的position是默认的所以不需要填写*/
INSERT INTO student
(name,tel,sex,age)
VALUES
('张三','1516666777','男',18),
('张四','1516666778','男',19),
('李三','1516666779','女',20),
('李五','1516666780','男',22),
('张三','1516666788','男',17),
('赵武','1516666789','女',23),
('不思量','1516666795','女',22),
('自难忘','1516666796','男',21),
('李明','1516666678','男',20),
('小明','1516666679','男',22),
('萧炎','1516666567','男',23),
('孙武','1516666122','男',18),
('李华','1516666123','女',19),
('孙武','1516666124','男',19);
创建数据表结果如下:
一. 查询一列数据或几列数据
1.1 查询一列数据
SELECT `name` FROM student;
在数据表 student 中查询 ‘name’ 属性
命令原型:SELECT 属性名 FROM 表名;
反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号,一般不影响正常使用。
1.2 查询多列数据
SELECT tel,sex FROM student;
在数据表 student 中查询 tel,sex 属性
命令原型:SELECT 属性名,属性名··· FROM 表名;
1.3 查看全部列数据
SELECT * FROM 表名;
查看表中所有的数据
1.4 查询经过计算的值
SELECT age+10 FROM student;
查询结果是 年龄+10,是一个表达式
命令原型:SELECT 表达式1,表达式2 FROM 表名;
普通的表达式可以理解为 属性乘1
二. 查询某一列重复数据
2.1 单属性数据去重
SELECT DISTINCT `name` FROM student;
对数据表 student 的 name 属性进行去重
命令原型:SELECT DISTINCT 属性名 FROM 表名;
2.2 多属性数据去重
INSERT INTO student (name,tel,sex,age) VALUES ('李华','1516676777','男',19);
/* 插入一条数据,与第十三条数据性别不同,电话号码也不同,电话号码是禁止重复*/
SELECT DISTINCT `name`,sex FROM student;
对数据表 student 的 name 属性进行去重,当两条数据都重复的时候才会去重
命令原型:SELECT DISTINCT 属性名1,属性名2,属性名3... FROM 表名;
应用在多个字段时,只有