百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

MySQL入门 day03

bigegpt 2024-08-12 14:12 8 浏览

MySQL-Day02回顾

1、where子句

配合 删、改、查使用

2、update

update 表名 set 字段名=值,字段名=值 where 条件;

3、delete

delete from 表名 where 条件;

4、运算符操作

1、数值比较 = != > >= < <=

2、字符比较 = !=

3、逻辑比较 and or

4、范围内比较 between 值1 and 值2 in not in

5、匹配空、非空

is null

is not null

空字符串"" 和 空值null 不同

count()

**** "" 会被统计

null 不会被统计

6、模糊比较 like

_ : 匹配1个字符

% : 匹配0到多个字符

5、SQL高级操作

1、order by

ASC(默认) : 升序

DESC : 降序

2、limit

limit m --> 显示前m条记录

limit m,n --> 显示从 m+1 条记录开始的n条记录

3、聚合函数

max(字段名) sum(字段名) max(字段名) min(字段名)

count(字段名)

4、group by

select之后的字段名如果不在group by之后,那么必须要对这个字段进行 聚合处理

5、distinct

select distinct 字段名,字段名 from 表名;

6、在查询表记录时做数学运算

+ - * / %

6、约束

1、默认约束(default)

1、创建表

字段名 数据类型 default 值

2、已有表

alter table 表名 modify 字段名 数据类型 default 值;

2、非空约束(not null)

同 默认约束

3、主键约束(primary key)

1、规则

** 一个表中只能有一个主键

** 字段值不允许重复,且不能为null

** KEY标志 PRI

2、创建

1、创建表

字段名 数据类型 primary key

primary key(字段名)

2、已有表

alter table 表名 add primary key(字段名);

3、删除

alter table 表名 drop primary key;

注意:

如果主键有自增长属性,必须先删除自增长属性,然后才能删除主键

4、自增长属性 auto_increment

1、创建

1、创建表

字段名 数据类型 primary key auto_increment

2、已有表

** alter table 表名 change

字段名 字段名 auto_increment;

2、删除

alter table 表名 modify 字段名 数据类型;

4、唯一约束

1、规则

** 字段值不可以重复,但可以为空

** 一个表中可以有多个unique字段

** KEY标志 UNI

2、创建

1、创建表

1、

unique(字段名),

unique(字段名)

2、

字段名 数据类型 unique

2、已有表

alter table 表名 add unique(字段名);

3、删除

** alter table 表名 drop index 字段名;

MySQL-Day03笔记

1、外键约束

1、定义

让当前表字段的值在另一个表的范围内选择

2、语法

foreign key(参考字段名)

references 被参考表名(被参考字段名)

on delete 级联动作(cascade)

on update 级联动作(cascade)

3、使用规则

1、两张表被参考字段和参考字段数据类型要一直

2、被参考字段必须是key的一种,通常primary key

示例

表1:缴费信息表(财务)

学号 姓名 班级 缴费金额

1 唐伯虎 AID1711 28000

2 秋香 AID1711 20000

表2:学生信息表(班主任)

学号 姓名 缴费金额

1 唐伯虎 28000

2 秋香

1、创建表

1、缴费信息表(主表)

create table jftab(

id int primary key,

name char(20),

class varchar(25),

money int

)default charset=utf8;

insert into jftab values

(1,"唐伯虎","AID1711",20000),

(2,"秋香","AID1711",28000),

(3,"祝枝山","AID1711",25000);

2、创建学生信息表(从表)

create table bjtab(

stu_id int,

name char(20),

money int,

foreign key(stu_id) references jftab(id)

on delete cascade

on update cascade

)default charset=utf8;

insert into bjtab values

(1,"唐伯虎",20000),

(2,"秋香",28000);

注意:

1、删除同步

删除主表中记录时,从表中记录会同步删除

2、修改同步(update)

只针对于修改主表被参照字段时,从表参照字段才会级联更新

3、在从表中插入记录时,如果参照字段的值没有在主表被参照字段中,则不允许插入

2、删除外键约束

语法:

alter table 表名 drop foreign key 外键名;

注意:

1、外键名的查看方式

show create table 表名;

3、在已有表中添加外键

alter table 表名 add

foreign key(参照字段名)

references 表名(被参照字段名)

on delete cascade

on update cascade;

注意:

在已有表中添加外键时,会受到原有数据的限制

3、数据导入

1、作用

把文件系统的内容导入到数据库中

2、语法

load data infile "文件名"

into table 表名

fields terminated by "分隔符"

lines terminated by "\n"

示例:

把 /etc/passwd 文件中的内容导入到库db3下的userinfo表中

用户名 密码 uid gid

tarena: x: 1000: 1000:

用户描述 主目录 登录权限

tarena,,,: /home/tarena: /bin/bash

操作步骤:

1、在数据库中创建对应的表

create table userinfo(

username char(20),

password char(1),

uid int,

gid int,

comment varchar(50),

homedir varchar(50),

shell varchar(50)

);

2、将要导入的文件拷贝到数据库的默认搜索路径

1、如何查看数据库默认搜索路径

show variables like "secure_file_priv";

/var/lib/mysql-files/ "sec%iv"

2、sudo cp /etc/passwd /var/lib/mysql-files/

3、将系统文件导入到创建的表中

4、数据导出

1、作用

将数据库中表的记录保存到系统文件里

2、语法

select ... from 表名

into outfile "文件名"

fields terminated by "分隔符"

lines terminated by "分隔符";

示例:

select username,password,uid from userinfo

into outfile "/var/lib/mysql-files/userinfo.txt"

fields terminated by " "

lines terminated by "\n";

注意:

1、导出的内容由SQL查询语句决定

2、执行导出命令时路径必须指定在对应的数据库目录下

练习:

将mysql库下的user表中的 user、host两个字段的值导出到 user2.txt,将其存放在数据库目录下

select user,host from mysql.user

into outfile "/var/lib/mysql-files/user2.txt"

fields terminated by " : "

lines terminated by "\n";

5、嵌套查询

1、定义

把内层的查询结果作为外层查询的条件

2、语法

sql查询语句 where 条件(sql查询语句);

示例(利用userinfo表操作)

1、把 uid的值 小于 这个字段的平均值的

用户名和uid显示出来

select username,uid from userinfo

where uid < (select avg(uid) from userinfo);

2、查找userinfo表中 username的值 在

mysql库下的user表中host字段值为localhost并且user的值是root的user字段值 中

的用户名

select username from userinfo

where username in

(select user from mysql.user where host="localhost" and user="root");

6、表的复制

1、表的复制

1、语法

create table 表名 select 查询命令;

示例:

1、复制userinfo表的全部记录和字段,userinfo2

create table userinfo2

select * from userinfo;

2、复制userinfo表的前10条记录,userinfo3

create table userinfo3

select * from userinfo limit 3;

3、复制userinfo表的 username,password,uid 三个字段的第2-10条记录,userinfo4

create table userinfo4

select username,password,uid from userinfo

limit 1,9;

注意:

复制表的时候不会把原有表的 键 属性复制过来

2、复制表结构

1、语法

create table 表名 select 查询命令 where false;

示例:

1、复制一下userinfo表的表结构,userinfo5

create table userinfo5

select * from userinfo where false;

练习 + 环境准备:

1、创建t1表,包含userinfo表中的 username,uid,shell三个字段的前 2 条记录

create table t1 select username,uid,shell from userinfo limit 2;

2、创建t2表,包含userinfo表中的 username,uid,gid,homedir四个字段的前 3 条记录

create table t2 select username,uid,gid,homedir from userinfo limit 3;

7、多表查询

1、两种方式

1、select 字段名列表 from 表名列表; ->笛卡尔集

示例:

1、select * from t1,t2;

2、select t1.username,t1.uid,t2.username from t1,t2;

2、select 字段名列表 from 表名列表 where 条件;

示例:

1、找到t1和t2中相同的用户名,全部显示信息

select * from t1,t2

where t1.username = t2.username;

2、找到t1和t2表中相同的uid号,把两张表的uid和username都显示出来

select t1.uid,t1.username,t2.uid,t2.username from t1,t2 where t1.uid = t2.uid;

7、连接查询

1、创建两张表

1、create table t3 select username,uid from userinfo limit 2;

2、create table t4 select username,uid from userinfo limit 3;

2、左连接

1、定义

以左边的表为主显示查询结果

2、语法

select 字段名 from 表1 left join 表2 on 条件;

示例:

把t3和t4表中username相同的记录显示出来,以t3为主

select * from t3 left join t4 on t3.username = t4.username;

3、右连接

用法同左连接,以右边的表为主显示查询结果

1、索引

2、事务和事务回滚

3、备份与恢复

4、python数据库编程

相关推荐

有些人能留在你的心里,但不能留在你生活里。

有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...

Python学不会来打我(34)python函数爬取百度图片_附源码

随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

软网推荐:图像变变变 一“软”见分晓

当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...

首款WP8.1图片搜索应用,搜照片得资料

首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...

分享一组美图(图片来自头条)(头条美女头像)

...

盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载

出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...

微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版

IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...

谷歌手把手教你成为谣言终结者 | 域外

刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...

NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!

还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...

为庆祝杜特尔特到访,这个国家宣布全国放假?

(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...

一课译词:毛骨悚然(毛骨悚然的意思是?)

PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...

Bing Overtakes Google in China&#39;s PC Search Market, Fueled by AI and Microsoft Ecosystem

ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...

找图不求人!6个以图搜图的识图网站推荐

【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...

浏览器功能和“油管”有什么关联?为什么要下载

现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...