遇见狂神---Mysql(持续更新)

1.1为什么学习数据库

1.岗位需求

2,现在的世界,大数据时代,得数据者得天下

3.被迫需求:存数据

4.数据库是所有软件体系中最核心的存在 DBA

 

1.2什么是数据库

 数据库(DB,DataBase)
概念:数据仓库,软件,安装在操作系统(window,linux,mac、...)之上!SQL,可以存储大量的数据。500万!
作用:存储数据,管理数据
 
1.3数据库分类
关系型数据库:(SQL)
MySQL,Oracle,Sql Server,DB2,SQLlite
通过表和表之间,行和列之间的关系进行数据的存储,学员信息表,考勤表,...
 
非关系型数据库:(NoSQL) Not Only
Redis,MongDB
非关系型数据库,对象存储,通过对象的自身的属性来决定。
 
DBMS(数据库管理系统)
数据库的管理软件,科学有效的管理我们的数据。维护和获取数据;
MySQL,数据库管理系统
 

1.3MySQL简介

MySQL是一个关系型数据库管理系统
前世:瑞典MySQL AB 公司
今生:属于Oracle旗下公司
MySQL是最好的RDBMS(Relational Management System,关系数据库管理系统)应用软件之一。
开源的数据库软件
体积小,速度快,总体拥有成本低,招人成本较低,所有人必须会-
中小型网站、或者大型网站。集群!
 官网:https://www.mysql.com
 官网下载地址:https://dev.mysql.com/downloads/mysql/
 
安装建议:
1.尽量不要使用exe,注册表(不然以后想卸载干净mysql极其困难)
2.尽可能使用压缩包安装
 

1.4、安装MySQL

教程:https://mp.weixin.qq.com/s/E1PM4EHwU6Joot4OG0gDjw(先关注“狂神说”微信公众号,然后在浏览器打开)
 进入网址后应该出现如下文章:
 
按照文章教程进行安装

 操作步骤:

1.下载后得到zip压缩包

2.解压到自己想安装的目录 

3、添加环境变量:我的电脑->属性->高级->环境变量

选择Path,在其后面添加: 你的mysql 安装文件下面的bin文件夹

4、新建my.ini 文件 ,注意替换路径位置(先新建my.txt,再改后缀名为ini)(下面这五行代码中第二行和第三行需要修改,并且只需要修改第二行,第三行会自动生成)

[mysqld]
basedir=D:\Program Files\mysql-5.7\(目录换成自己的)
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables

5、启动管理员模式下的CMD(此处的cmd并不是win+R嗖cmd,那不是管理员模式,在控制面板\系统和安全\Windows 工具中找到命令控制符,然后“以管理员的身份运行”),并将路径切换至mysql下的bin目录,然后输入mysqld –install (安装mysql)

 

 

我在安装过程中出现了这个问题

 

 

 

进入网址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=40784

 

 

 

 

 安装完成后重新打开一个CMD,记住是重新打开一个

 

 出现了“Istall/Remove of the Service Denied!”是因为没有用管理员权限打开。

接下来,it‘s show time

 

 安装成功!我真牛逼!哦不,你们也很牛逼(手动doge)

 

6、再输入  mysqld --initialize-insecure --user=mysql(一点也不改) 初始化数据文件(之前那个第三行的data)

 

 发现此时多了一个data文件夹

7、然后再次启动mysql (net start mysql)然后用命令 mysql –u root –p(注意这些空格)(注意-p后面不能写空格,因为-p代表password是密码的意思,加了空格就代表空格也算密码的一部分了) 进入mysql管理界面(密码可为空)

 

 

 

 

8、进入界面后更改root密码

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';


 


 

9、刷新权限

flush privileges;

10、修改 my.ini文件(之前的作用是跳过密码进入数据库,刚才已经设置了用户名密码,不需要再跳过了,所以需要将其修改)删除最后一句skip-grant-tables

11、重启mysql即可正常使用

net stop mysql
net start mysql

 


 

12、连接上测试出现以下结果就安装好了

 

 

 步骤小结(更简洁一些比我上面的步骤)

1.解压

2.把这个包放在自己的电脑环境目录下

3.配置环境变量

4.新建mysql配置文件ini

[mysqld]
basedir=D:\Program Files\mysql-5.7\(目录换成自己的)
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables

 5.启动管理员模式下的CMD,运行所有的命令

6.安装mysql服务

7.初始化数据库文件

8.启动mysql,进去修改密码

9.进入mysql通过命令行(-p后面不要加空格),修改密码(sql语句后面一定要加分号)(记得还有必须刷新权限)

10.注掉ini中的跳过密码

11.重启mysql。连接测试,如果连接成功就OK了!

 1.5安装Navicat

(狂神安装的SQLyog,但是更推荐navicat,最好弄个破解版)

1.安装破解教程,详见这篇文章:https://www.cnblogs.com/kkdaj/p/16260681.html

虽然博主美图比较多,但是文章质量属实不错,激活成功了

 

 

 

2.打开连接数据库(建立连接)

 

 对比这个我们看一下navicat的

 

 3.新建一个数据库school

 

 每一个navicat的执行操作,本质就是对应了一个sql,可以在软件的历史记录中查看

4.新建一张表student

注意引擎是InnoDB

 

 

 

 

 

 1.6连接数据库

 命令行连接

 

mysql -uroot -p123456  --连接数据库

 

update mysql.user set authentication_string=password('123456') where user = 'root' and Host = 'localhost'; --修改用户密码

flush privileges; --刷新权限

 

-----------------------------------------------------------------------

--所有的语句都使用:结尾

show databases;   --查看所有的数据库

 

mysql> use school   --切换数据库 use 数据库名

Database changed

 

show tables;  --查看数据库中所有的表

describe student;   --显示数据库中所有表的信息

 

create database westos;  --创建一个数据库,名为westos

 

exit;   --退出连接

 

--单行注释  (SQL的本来的注释)

/*          (sql的多行注释)

helloi

asdas

dasdas

*/

 

数据库xxx语言 

DDL  定义

DML  操作

DQL  查询

DCL  控制

 

 

2.1操作数据库

1.创建数据库

CREATE DATABASE [IF NOT EXISTS] westos;

2.删除数据库

DROP DATABASE [IF EXISTS] westos

3.使用数据库

-- tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带` `

 

mysql语句中单引号、双引号、反引号用法与区别(见下面链接,特别注意反引号的用法)

 

https://blog.csdn.net/xueyan2018/article/details/121670566

USE `school`

4.查看数据库

 SHOW DATABASES  -- 查看所有的数据库

 

 

5.1.)学习思路: 对照Navicat的可视化历史记录查看sql

2.)固定的语法或关键字必须要强行记住

 

2.2数据库的列类型

数值

tinyint 十分小的数据 1个字节
smallint 较小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准的整数 4个字节  常用的   int
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节(精度问题!)
decimal 字符串形式的浮点数 金融计算的时候,一般是使用decimal

 

    

 

          

字符串

char 字符串固定大小的 0~255
varchar 可变字符串 0~65535       常用的变量   Strong
tinytext 微型文本 2^8-1 
text 文本串 2^16-1    保存大文本

 

时间日期

java.util.Date

date YYYY-MM-DD 日期格式
time HH:mm:ss 时间格式
datetime YYYY-MM-DD  HH: mm:ss 最常用的时间格式
timestamp 时间戳,1070.1.1到现在的毫秒数 较为常用
year 年份表示  

 

 null

 没有值,未知

注意,不要使用NULL进行运算,结果为NULL

 

2.3、数据库的字段属性(重点)

Unsigned:

无符号的整数

声明了该列不能生命为负数

zerofill:

0填充的

不足的位数,使用0来填充,int(3),5 --- 005

自增:

通常理解为自增,自动在上一条记录的基础上+1(默认)

通常用来设计唯一的主键- index,必须是整数类型

可以自定义设计主键自增的起始值和步长

非空:  not null

假设设置为 not null ,如果不给它赋值,就会报错!

NULL,如果不填写值,默认就是null!

 

默认:

设置默认的值!

sex,默认值是男,如果不指定该列的值,则会有默认的值!

 

 拓展:听听就好

 /*每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在意义!

id  主键

` version`  乐观锁

is_delete  伪删除

gmt_create  创建时间

gmt_update  修改时间

*/

 

2.4、创建数据库表

--  目标:创建一个school数据库

--  创建学生表(列,字段)  使用SQL创建

--  学号int登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,email

 

--  注意点,使用英文(),表的名称和字段尽量使用` `括起来

--  AUTO_INCREMENT  自增

--  字符串使用  单引号括起来!

--  所有的语句后面加,(英文的),最后一个不用加

--  PRIMARY  KEY 主键,一般一个表只有一个唯一的主键!

CREATE TABLE IF NOT EXISTS `student`(

  `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',  

  `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '学号',

  `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',

  `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',

  `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',

  `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',

  `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',

  PRIMARY KEY(`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

 

(注意,在navicat中写sql语句的地方是查询那里,有点离谱)

 

 

 

 

格式

CREATE TABLE [IF NOT EXISTS] `表名`(

  '字段名'  列类型  [属性]  [索引]  [注释],

  '字段名'  列类型  [属性]  [索引]  [注释],

  ......

  '字段名'  列类型  [属性]  [索引]  [注释],

)[表类型][字符集设置][注释]

 

常用命令

SHOW CREATE DATABASE school -- 查看创建数据库的语句

SHOW CREATE TABLE student -- 查看student数据表的定义语句

DESC student -- 显示表的结构

 

2.5数据库的类型

 -- 关于数据库引擎

/*

INNODB 默认使用~

MYISAM 早些年使用的

*/

  MYISAM INNODB
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为2倍

 

 常规使用操作:

   MYISAM  节约空间,速度较快

  INNODB  安全性高,事务的处理,多表多用户操作

 

在物理空间存在的位置

所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库本质还是文件的存储!

 

MySQL引擎在物理文件上的区别

  InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

  MYISAM对应文件

    *.frm  表结构的定义文件

    *.MYD  数据文件(data)

    *.MYI  索引文件 (index)

 

 

设置数据库表的字符集编码

CHARSET = utf8

不设置的话,会是mysql默认的字符集编码~ (不支持中文!)

 MySQL的默认编码是Latin1,不支持中文

 在my.ini中配置默认的编码

 character-set-server=utf8

 

 https://www.jianshu.com/p/ec0c86ee3e04

 

2.6.修改和删除表(在navicat中除了查询语句可以写,没发现其他可以直接写的比如修改删除创建语句。所以此处直接截老师各种图)

 

 

 

 

 3.MySQL数据管理

3.1、外键(了解即可)

。。。。。。(省略了)

3.2、DML语言(全部记住)(也就是下面的3.3 3.4 3.5)

3.3、添加

一般写插入语句,我们一定要数据和字段一一对应!

插入多个字段

INSERT INTO `grade`(`gradename`)

VALUES('大二'),('大一')

 

INSERT INTO `student`(`name`) VALUES('张三')

 

INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('张三',‘aaaaaa’,'男')

 

INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('张三',‘aaaaaa’,'男'),('王五','aaaaaa','男')

 

INSERT INTO 'student' VALUES (5,'李四','aaaaaa','男','2000-01-01',1,'西安','email')

 

小结:

语法:insert into 表名([字段名1,字段名2,字段名3]) values ('值1'),('值2'),('值3'.......)

 

注意事项:

  1.字段和字段之间使用英文逗号隔开

  2.字段可以是省略的,但是后面的值必须要一一对应,不能少

  3.可以同时插入多条数据,VALUES后面的值,需要使用,隔开即可 VALUES(),()......

3.4、修改

update 修改谁 (条件) set原来的值 = 新值

 

--修改学员名字,带了简介

UPDATE `student` SET `name`='狂神' WHERE id = 1;

 

--不指定条件的情况下,会改动所有表!

UPDATE `student` SET `name` = '长江7号'

 

--修改多个属性,逗号隔开

UPDATE `student` SET `name`= '狂神',`email` = '@qq.com' WHERE id = 1;

 

--语法:

--UPDATE 表名 set colnum_name = value.[colnum_name = value.....] where [条件]

 

条件:where 字句 运算符 id等于某个值,大于某个值,在某个区间内修改......

操作符会返回 布尔值

 

操作符 含义 范围 结果
= 等于 5=6 false
<>或!= 不等于 5<>6 true
>      
<      
<=      
>=      
BETWEEN... and... 在某个范围内 [2,5]  
AND 我和你&& 5>1 and 1>2 false
OR 我或你|| 5>1 or 1>2 true

 

--通过多个条件定位数据

UPDATE ·student· SET `name` = '长江7号' WHERE `name` = '狂神' AND sex = '女'

语法: UPDATE 表名 set column_name = value,[column_name = value.....]where [条件]

注意:

  column_name 是数据库的列,尽量带上``

  条件,筛选的条件,如果没有指定,则会修改所有的列

  value,是一个具体的值,也可以是一个变量

  多个设置的属性之间,使用英文逗号隔开

UPDATE `student` SET `birthday` = CURRENT_TIME WHERE `name` = '长江7号' AND sex = '女'

    

3.5、删除

delete命令

语法:delete from 表名 [where 条件]

--删除数据(避免这样写,会全部删除)

DELETE FROM `student`

 

--删除指定数据

DELETE FROM `student` WHERE id = 1;

 

TRUNCATE(truncate)命令

作用:完全清空一个数据库表,表的结构和索引约束不会变!

--清空student 表

TRANCATE `student`

 

delete 和 TRUNCATE 区别

相同点:都能删除数据,都不会删除表结构

不同:

  TRUNCATE 重新设置 自增列 计数器会归零

  TRUNCATE 不会影响事务

 

--测试delete和TRUNCATE区别

CREATE TABLE `test`(

`id` INT(4) NOT NULL AUTO_INCREMENT,

`coll` VARCHAR(20) NOT NULL,

PRIMARY KEY (`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

 

INSERT INTO `test`(``coll) VALUES('1'),('2'),('3')

DELETE FROM `test` -- 不会影响自增

TRUNCATE TABLE `test` -- 自增会归零

 

了解即可: DELETE删除的问题,重启数据库,现象

  InnoDB 自增列会从1开始 (存在内存当中的,断电即失)

  MyISAM 继续从上一个自增量开始(存在文件中的,不会丢失)

 

 

4.DQL查询数据(最重点)

 首先需要新建四张表,让博主来告诉你如何在navicat中执行sql语句

首先感谢水友整理的代码:

CREATE DATABASE IF NOT EXISTS school;
-- 创建一个school数据库
USE school;

-- 创建年级表
DROP TABLE IF EXISTS grade;
CREATE TABLE grade(
gradeid INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号',
gradename VARCHAR(50) NOT NULL COMMENT '年级名称',
PRIMARY KEY (gradeid)
) ENGINE=INNODB AUTO_INCREMENT = 6 DEFAULT CHARSET = utf8;

-- 插入年级数据
INSERT INTO grade (gradeid,gradename) VALUES(1,'大一'),(2,'大二'),(3,'大三'),(4,'大四'),(5,'预科班');

-- 创建成绩表
DROP TABLE IF EXISTS result;
CREATE TABLE result(
studentno INT(4) NOT NULL COMMENT '学号',
subjectno INT(4) NOT NULL COMMENT '课程编号',
examdate DATETIME NOT NULL COMMENT '考试日期',
studentresult INT (4) NOT NULL COMMENT '考试成绩',
KEY subjectno (subjectno)
)ENGINE = INNODB DEFAULT CHARSET = utf8;

-- 插入成绩数据 这里仅插入了一组,其余自行添加
INSERT INTO result(studentno,subjectno,examdate,studentresult)
VALUES
(1000,1,'2013-11-11 16:00:00',85),
(1000,2,'2013-11-12 16:00:00',70),
(1000,3,'2013-11-11 09:00:00',68),
(1000,4,'2013-11-13 16:00:00',98),
(1000,5,'2013-11-14 16:00:00',58);

-- 创建学生表
DROP TABLE IF EXISTS student;
CREATE TABLE student(
studentno INT(4) NOT NULL COMMENT '学号',
loginpwd VARCHAR(20) DEFAULT NULL,
studentname VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
sex TINYINT(1) DEFAULT NULL COMMENT '性别,0或1',
gradeid INT(11) DEFAULT NULL COMMENT '年级编号',
phone VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空',
address VARCHAR(255) NOT NULL COMMENT '地址,允许为空',
borndate DATETIME DEFAULT NULL COMMENT '出生时间',
email VARCHAR (50) NOT NULL COMMENT '邮箱账号允许为空',
identitycard VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
PRIMARY KEY (studentno),
UNIQUE KEY identitycard(identitycard),
KEY email (email)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;

-- 插入学生数据 其余自行添加 这里只添加了2行
INSERT INTO student (studentno,loginpwd,studentname,sex,gradeid,phone,address,borndate,email,identitycard)
VALUES
(1000,'123456','张伟',0,2,'13800001234','北京朝阳','1980-1-1','text123@qq.com','123456198001011234'),
(1001,'123456','赵强',1,3,'13800002222','广东深圳','1990-1-1','text111@qq.com','123456199001011233');

-- 创建科目表
DROP TABLE IF EXISTS SUBJECT;
CREATE TABLE SUBJECT(
subjectno INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程编号',
subjectname VARCHAR(50) DEFAULT NULL COMMENT '课程名称',
classhour INT(4) DEFAULT NULL COMMENT '学时',
gradeid INT(4) DEFAULT NULL COMMENT '年级编号',
PRIMARY KEY (subjectno)
)ENGINE = INNODB AUTO_INCREMENT = 19 DEFAULT CHARSET = utf8;

-- 插入科目数据
INSERT INTO SUBJECT(subjectno,subjectname,classhour,gradeid)VALUES
(1,'高等数学-1',110,1),
(2,'高等数学-2',110,2),
(3,'高等数学-3',100,3),
(4,'高等数学-4',130,4),
(5,'C语言-1',110,1),
(6,'C语言-2',110,2),
(7,'C语言-3',100,3),
(8,'C语言-4',130,4),
(9,'Java程序设计-1',110,1),
(10,'Java程序设计-2',110,2),
(11,'Java程序设计-3',100,3),
(12,'Java程序设计-4',130,4),
(13,'数据库结构-1',110,1),
(14,'数据库结构-2',110,2),
(15,'数据库结构-3',100,3),
(16,'数据库结构-4',130,4),
(17,'C#基础',130,1);

 

 在任意一个文件夹下建立一个txt记事本文件,将上述代码复制粘贴进去,保存后将文件后缀名改为sql 即school.sql

然后看如下图片

 

 此处选择运行sql文件

 

 

 

 显示0个错误代表运行成功了

如图

 

 

 

 

 

 

 

 

 

 

 

 4.1、DQL

(Data Query LANGUAGE:数据查询语言)

  所有的查询操作都用它 Select

  简单的查询,复杂的查询它都能做~

  数据库中最核心的语言,最重要的语句

  使用频率最高的语句

 

4.2、指定查询字段

--查询所有的学生  SELECT 字段 FROM 表

SELECT * FROM student

 

--查询指定字段

SELECT ·StudentNo·,`StudentName` FROM student

 

--别名,给结果起一个名字  AS  可以给字段起别名,也可以给表起别名

SELECT `StudentNo` AS 学号,`StudentName` AS 学生姓名 FROM student AS s

 

--函数  Concat(a,b)

SELECT CONCAT('姓名:',StudentName)  AS  新名字 FROM student

语法:SELECT 字段...FROM 表

 

有的时候,列名字不是那么的见名知意,我们起别名  AS  字段名 as 别名  表名 as 别名

 

 

 

 去重 distinct

作用:去除SELECT查询出来的结果中重复的数据,重复的数据只显示一条

--查询一下有哪些同学参加了考试,成绩

SELECT * FROM result --查询全部的考试成绩

SELECT `StudentNo` FROM result --查询有哪些同学参加了考试

SELECT DISTINCT `StudentNo` FROM result --发现重复数据,去重

 

 

 

数据库的列(表达式)

SELECT VERSION() --查询系统版本 (函数)

SELECT 100*3-1 AS 计算结果 --用来计算 (表达式)

SELECT @@auto_increment_increment --查询自增的步长 (变量)

 

--学员考试成绩 +1分查看

SELECT ·StudentNo·,`StudentResult`+1 AS '提分后' FROM result

 

 

 数据库中的表达式:  文本值,列,Null,函数,计算表达式,系统变量......

select 表达式 from 表

 

 

 4,3、where 条件字句

作用:检索数据中符合条件的值

搜索的条件由一个或者多个表达式组成!结果 布尔值

逻辑表达式

 

运算符 语法 描述
and  && a and b  a&&b 逻辑与,两个都为真,结果为真
or    || a or b     a||b 逻辑或,其中一个为真,则结果为真
Not   ! not a    !  a 逻辑非,真为假,假为真!

 

 尽量使用英文字母

 

-- =============================================where=================================================

SELECT studentNo.`StudentResult` FROM result

 

--查询考试成绩在95~100分之间

SELECT studentN0,`StudentResult` FROM result

WHERE StudentResult >=95 AND StudentResult <=100

 

-- and  &&

SELECT studentNo,`StudentResult` FROM result

WHERE StudentResult>=95 && StudentResult<=100

 

--模糊查询(区间)

SELECT studentNo,`StudentResult` FROM result

WHERE StudentResult BETWEEN 95 AND 100

 

--除了1000号学生之外的同学的成绩

SELECT studentNo,`StudentResult` FROM result

WHERE StudentResult !=1000;

 

--  !=  not

SELECT studentNo,`StudentResult` FROM result

WHERE NOT studentNo = 1000

 

                                                                          

 模糊查询:比较运算符

运算符 语法 描述
IS NULL a is null 如果操作符为NULL,结果为真
IS NOT NULL a is not null 如果操作符不为NULL,结果为真
BETWEEN a between b and c 若a在b和c之间,则结果为真
Like a like b SQL匹配,如果a匹配b,则结果为真
In a in (a1,a2,a3...) 假设a在a1,或者a2......其中的某一个值中,结果为真

 

 

  -- ===============================================模糊查询==============================================

-- 查询姓刘的同学

-- like结合  %(代表0到任意个字符)  _(一个字符)

SELECT `StudentNo`,'StudentName' FROM `student`

WHERE StudentName LIKE '刘__'

 

--查询名字中间有嘉字的同学 %嘉%

SELECT ·StudentNo·,`StudentName` FROM `student`

WHERE StudentNo IN (1001,1002,1003);

 

--查询在安徽,河南洛阳的学生

SELECT `StudentNo`,`StudentName` FROM `student`

WHERE `Address` IN ('安徽','河南洛阳');

 

-- ==== null  not null====

 

--查询地址为空的学生 null  ' '

SELECT `StudentNo`,`StudentName` FROM `student`

WHERE address=' ' OR address IS NULL

 

--查询有出生日期的同学  不为空

SELECT `StudentNo`,`StudentName` FROM `student`

WHERE `BornDate` IS NOT NULL

 

--查询没有出生日期的同学  为空

SELECT `StudentNo`,`StudentName` FROM `student`

WHERE `BornDate` IS NULL

 

 

4.4、联表查询

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-07-19 00:17  ꧁༺ཌ仨下花果山ད༻꧂  阅读(68)  评论(0)    收藏  举报