mysql面试基本语句
模拟操作的数据库 sql文件
查询基本结构
查询指定列
查询所有列
null的特殊性
过滤查询
起别名
去重复
排序
最近面试经常被问到,复习一下.
模拟操作的数据库 sql文件
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50621
Source Host : localhost:3306
Source Database : mianshi
Target Server Type : MYSQL
Target Server Version : 50621
File Encoding : 65001
Date: 2021-06-07 19:53:43
*/
SET FOREIGN_KEY_CHECKS=0;
-- Table structure for haixin
DROP TABLE IF EXISTS haixin
;
CREATE TABLE haixin
(
xingming
char(6) DEFAULT NULL,
xuehao
char(6) DEFAULT NULL,
xingbie
tinyint(1) NOT NULL,
PRIMARY KEY (xingbie
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of haixin
-- Table structure for xs
DROP TABLE IF EXISTS xs
;
CREATE TABLE xs
(
学号
char(6) NOT NULL,
姓名
char(8) NOT NULL,
专业名
char(10) DEFAULT NULL,
性别
tinyint(1) NOT NULL DEFAULT '1',
出生日期
date NOT NULL,
总学分
tinyint(1) DEFAULT NULL,
照片
blob,
备注
text,
PRIMARY KEY (学号
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of xs
INSERT INTO xs
VALUES ('000001', '李大钊', '计算机', '1', '0000-00-00', '100', null, null);
INSERT INTO xs
VALUES ('081101', '王海新', '计算机', '1', '1999-02-10', '50', null, null);
INSERT INTO xs
VALUES ('081111', '蔡元培', '信息工程', '2', '1999-02-02', '11', null, null);
INSERT INTO xs
VALUES ('109333', '陈独秀', '计算机', '1', '1999-10-08', '20', null, null);
查询基本结构
基础查询:
select … from 表;
查询数据库所有记录的指定字段
查询指定列
select 列名1,列名2... from 表
select 学号,姓名 from xs;
查询所有列
select from 表
select from xs;
还可以做运算
基本的加减乘数
常量和常量
列和常量
列和列
null的特殊性
在sql中,任何数据和null做运算,运行的结果还是null
null不是0
可以通过特定的函数,将null设置为特定的值
—注意有null值时,结果为null
select 学号 + 总学分 from xs;
过滤查询
select ... from 表 where 过滤条件
起别名
可以对查询结果其别名
— as可以省略,如果别名中有空格,需要用引号括起来
select 学号 as number from xs;
去重复
使用distinct
select distinct 性别 from xs;
排序
使用关键字 order by
升序 asc
降序 desc
默认是升序
select … from … order by…
select 学号 from xs order by 学号 asc;
select 学号 from xs order by 学号 desc;
–根据结果的第一列进行排序
select 学号,姓名 from xs order by 1 desc;