【mysql学习笔记】

创建数据表

命令

create database mydb charset utf8; 创建数据库,使用字符编码为utf-8 (create database 数据库名称 charset utf-8;)

show databases;                        //展示database里面内容

use sys;                               //使用数据库(use + 数据库的名称)

use mydb;

show tables;                           //显示所有数据表

desc 数据表名;                        //显示表的结构

实例1

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

/*创建数据表*/

create table student

(

id int primary key auto_increment,

name varchar(20),

age int,

tel varchar(20)

);

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

/*插入数据 ,字符串加单引号*/

insert into student(name,age,tel) values('小明',20,'166666666')   

/*查找数据*/

select * from student;       

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

 (navicat使用)

create database student;                         // 创建数据库

use student;                                           //使用数据库

create table user                                     //创建数据列表

(id int primary key auto_increment,       //自动增加

username varchar(50),

password varchar(50)

);

insert into user(username,password) values('小明','12346');

//插入内容insert into 数据列表(,) 值(,)

insert into user(username,password) values('小红','13464')

利用可视化创建表

creat database if not EXISTS user; //如果不存在数据表创建数据表

use user;使用数据库

(id int primary key auto_increment,     //自动增加auto_increment主要用于整数

username varchar(50),

password varchar(50)

);

drop table if exists user;             //删除存在数据表

drop database if exists mydata;      //删除存在数据表

show engines;                   //展示存在引擎

create database gradem;

use gradem;

CREATE TABLE student

(sno char(10) PRIMARY KEY,

sname varchar(8),

ssex char(2) DEFAULT '男',

sbirthday date DEFAULT '2004-01-01',

sid varchar(18),

saddress varchar(30),

spostcode char(6),

sphone char(18) DEFAULT '不详',

spstatus varchar(20),

sfloor char(10),

sroomno char(5),

sbedno char(2),

tuixue tinyint(1) NOT NULL DEFAULT 0,

xiuxue tinyint(1) NOT NULL DEFAULT 0,

smemo text,

classno char(8)

);

CREATE TABLE course

(cno char(3) NOT NULL,

cname varchar(20) NOT NULL,

cterm tinyint NOT NULL,

CONSTRAINT C1 PRIMARY KEY(cno,cterm)

);

CREATE TABLE sc

(sno char(10) NOT NULL,

cno char(3) NOT NULL,

degree decimal(4,1),

cterm tinyint NOT NULL,

CONSTRAINT A1 PRIMARY KEY(sno,cno,cterm),

CONSTRAINT A2 CHECK(degree>=0 and degree<=100),

CONSTRAINT A3 FOREIGN KEY(sno) REFERENCES student(sno),

CONSTRAINT A4 FOREIGN KEY(cno,cterm) REFERENCES course(cno,cterm)

);

插入语句格式(接上一节数据库)

Insert into student(sno,sname,ssex,sid,saddress,spostcode,spstatus,sfloor,sroomno,sbedno,classno)

values('19dsj0101','小明','男','10000000000','广东广州','51050','群众','1','101','01','19数据1');

insert into student(sno,sname,ssex,sid,saddress,spostcode,spstatus,sfloor,sroomno,sbedno,classno)

values('19dsj0102','小董','女','10000000001','广东广州','51050','群众','2','201','02','19数据1');

insert into student(sno,sname,ssex,sid,saddress,spostcode,spstatus,sfloor,sroomno,sbedno,classno)

values('19dsj0203','小李','男','10000000002','广东广州','51050','群众','3','301','03','19数据2');

insert into course(cno,cname,cterm) values('kc1','python','1');

insert into course(cno,cname,cterm) values('kc2','java','2');

insert into course(cno,cname,cterm) values('kc3','hadoop','3');

insert into sc(sno,cno,cterm) values('19dsj0101','kc1',1);

insert into sc(sno,cno,cterm) values('19dsj0101','kc2',2);

insert into sc(sno,cno,cterm) values('19dsj0101','kc3',3);

insert into sc(sno,cno,cterm) values('19dsj0102','kc1',1);

insert into sc(sno,cno,cterm) values('19dsj0102','kc3',3);

insert into sc(sno,cno,cterm) values('19dsj0203','kc1',1);

insert into sc(sno,cno,cterm) values('19dsj0203','kc2',2);

insert into sc(sno,cno,cterm) values('19dsj0203','kc3',3);

维护数据表以及数据表alter语句修改,查找语句

1.使用describe/desc查看表结构

命令语句:describe 表名 / desc 表名

2.使用alter table 语句修改表结构

Alter table student add province varchar(10) after sname;

//命令结构: alter table 表名 add 新字段名 数据类型 【若没有用(first/after)加字段名,字段将加在最后】

alter table student modify sbirthday varchar(10);

//命令结构alter table 表名 modify 字段名 新数据类型 完整的约束条件

alter table student change sbirthday sbirth date;

//命令结构 alter table 表名 change 旧字段名 新字段名 约束条件

alter table student drop smemo;

//命令结构 alter table 表名 drop 删除的字段名

alter table sc rename student_course;

//命令alter table student

SELECT * from student;

SELECT * from student limit 4;

select sno,sname,ssex,sbirth,sid,classno from student limit 4;

SELECT distinct classno as 班级 from student;

查询表

SELECT * from student;

//查询student表所有内容

SELECT * from student LIMIT 2;

//查询student表前两行的内容

SELECT sno,sname,sid,classno FROM student

//查询student表sno sname sid classno 的内容;

select * from student where classno='22数据2' ;

//查询student表内有关22数据2的内容

select * from student where ssex='男'and classno='22数据2';

//查询student表内数据内容为ssex和classno的内容

select * from student order by sid desc;

//让student表内数据根据sid,来降序(desc)。[默认为升序(asc)]

SELECT count(*) as 总人数 from student;

//统计总人数有几个人.

SELECT * from student where sid like '%2';

//查找身份证以二结尾

select classno,count(sno) as 班级人数 from student group by classno;

//查找以组分类的人数数据

select * from student_course where degree>=70 and degree <=90;

//查找成绩在70-90之间的人

聚集函数统计数据、交叉连接、内连接

select * from student_course where degree between 80 and 90;

select * from student where sid is null

select * from student where saddress regexp '^广'

select * from student where sid regexp '10'

select * from student where classno in ('2020数据1','2020数据2')

select sum(degree) as 总成绩 from student_course

select avg(degree) as 平均成绩 from student_course

select max(degree) as 最高成绩 from student_course

select student_course.* from student_course, course

select student.sno,sname,classno,cno,degree from student inner join student_course on student.sno=student_course.sno

select student.sno,sname,classno,cno,degree from student, student_course where student.sno=student_course.sno

select student.sno,sname,classno,cname,degree from student, student_course, course where student.sno=student_course.sno and student_course.cno=course.cno

内连接:查询学生学号、姓名、班级、选课的课程名、分数:学生表student、选课表sc、课程表course

SELECT student.sno,sname,classno,cname,degree from student,sc,course

where student.sno = sc.sno and sc.cno=course.cno

等价与下面语句

SELECT student.sno,sname,classno,cname,degree from student inner join sc on student.sno=sc.sno

inner join course on sc.cno =course.cno

自连接:查询同时选了编号为kc1 kc2的学号

SELECT sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno ='kc1' and sc2.cno='kc2'

左外连接

select student.sno,sname,classno,cno,degree from student left join sc on student.sno=sc.sno

右外连接

select sno,degree,cname from sc right join course on sc.cno =course.cno

//全连接

SELECT * from student full join sc

//嵌套查询

//查询学生分数大于80的学生:学号 姓名 班级 选课的课程名 分数:学生表student 选课表sc 课程表sc

select * from

(select student.sno,sname,classno,cname,degree from student,sc,course

where student.sno=sc.sno and sc.cno=course.cno)as t

where degree>80

//嵌套查询:查找选择了课程号为kc2的学生姓名

select sname from student where sno in (select sno from sc where cno='kc2')

//查询大于平均年龄的学生

select * from student

where(year(CURRENT_DATE)-year(sbirth)) < (select AVG(year(CURRENT_DATE)-year(sbirth))from student);

//查询没有选python的学生信息

select * from student

where sno not in

(select sno from sc

where cno not in (SELECT cno from course where cname='python')

)

where sno not in

(select sno from sc

where cno not in (SELECT cno from course where cname='python')

)

/*查找所有选修了课程号为kc1的学生姓名*/

select sname from student where sno in (select sno from sc where cno='kc1')

select sname from student where EXISTS (select * from sc where sno=student.sno and cno='kc1')

/*查询选修了全部课程的学生姓名*/

SELECT * from student where not EXISTS

(SELECT * from course where not EXISTS

       (SELECT * from sc where student.sno =sc.sno and sc.cno=course.cno) )

      

/*查询成绩比该课程平均成绩高的学生学号及成绩*/

SELECT sno,cno,degree from sc as a where degree > (SELECT avg(degree) from sc as b where a.cno=b.cno)

/*插入语句:课程表插入数据*/

INSERT into course(cno,cname,cterm) values('kc9','history',4);

/*插入多条记录*/

INSERT into course(cno,cname,cterm) values('kc7','hbase',3),('kc6','kafka',3);

/*按照course表重新创建一个新的表*/

create table course2 like course

/*插入子查询的结果*/

insert into course2 select * from course

创建视图

create view stu_view(sno,name,sex,class)

as select sno,sname,ssex,classno from student

/*通过视图修改数据*/

insert into stu_view(sno,name,sex,class) values('23sj0101','小五','男','23数据1');

update stu_view set name = '小小五' where name='小五'

DELETE from stu_view where name='小小五'

/*修改视图*/

alter view stu_view

as select sno,sname,ssex,classno from student

/*删除视图*/

drop view stu_view

/*创建视图:从学生表,课程表,选课表,对选择了python课程的所有学生信息*/

create view sc_view as

select student.sno,sname,ssex,classno,cname from student,sc,course

where student.sno=sc.sno and course.cno and cname='python'

/*给课程表course的cno字段创建索引*/

create index idx_cno on course(cno);

/*给选课表sc的cno字段创建索引*/

alter table sc add index idx_sc(sno,cno);

/*删除索引*/

drop index idx_cno on course;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/833317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用的Chrome 浏览器命令

Google Chrome 浏览器提供了许多快捷命令和实用功能&#xff0c;可以帮助用户提高效率和改善浏览体验。这里列举了一些非常实用的Chrome浏览器命令&#xff1a; 1. **CtrlT** / **CmdT** - 打开一个新的标签页。 2. **CtrlShiftT** / **CmdShiftT** - 重新打开最后关闭的标签页…

智慧之巅:大数据与算力中心的融合演进

智慧之巅&#xff1a;大数据与算力中心的融合演进 1 引言 在这个数据驱动的时代&#xff0c;我们站在了一个前所未有的历史节点上。大数据和算力中心&#xff0c;这两个曾经各自为政的领域&#xff0c;如今正以一种前所未有的方式交织在一起&#xff0c;共同推动着数字经济的蓬…

MFC扩展库BCGControlBar Pro v34.1 - 可视化设计器、主题新升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v34.1已正式发布了&#xff0c;这个版本包含了对Windows 10/11字体图标的支持、功能区和…

有哪些方式可以有效地评估精益生产咨询公司的能力?

在寻求精益生产咨询服务的过程中&#xff0c;评估咨询公司的能力至关重要。这不仅关乎企业精益生产转型的成功与否&#xff0c;更直接影响到企业未来的竞争力和发展。那么&#xff0c;有哪些方式可以有效地评估精益生产咨询公司的能力呢&#xff1f; 首先&#xff0c;了解咨询公…

git:分支删除

删除本地分支&#xff1a; git branch -d branch_name其中&#xff0c;branch_name 是你要删除的本地分支的名称。如果分支上有未合并的更改&#xff0c;使用 -d 选项会提示你确认删除。 如果要强制删除未合并的分支&#xff0c;可以使用 -D 选项&#xff1a; git branch -D…

纯血鸿蒙APP实战开发——短视频切换实现案例

短视频切换实现案例 介绍 短视频切换在应用开发中是一种常见场景&#xff0c;上下滑动可以切换视频&#xff0c;十分方便。本模块基于Swiper组件和Video组件实现短视频切换功能。 效果图预览 使用说明 上下滑动可以切换视频。点击屏幕暂停视频&#xff0c;再次点击继续播放…

tensorflow学习笔记(1)环境准备写个简单例子(小白手册)-20240506

一、安装python、tensorflow 1、Mac上默认python已经安装,自带pip 2、pip3 install tensorflow 如果报错,提示pip3版本较低,可以根据提示来更新pip3:/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip 3、然后再使用pip3来安装tensor…

【排序算法】之快速排序

一、算法介绍 快速排序(Quick sort)是由C.A.R.Hoare提出来的。快速排序法又叫分割交换排序法&#xff0c;是目前公认的最佳排序法&#xff0c;也是使用“分而治之”的方式&#xff0c;会先在数据中找到一个虚拟的中间值&#xff0c;并按此中间值将所有打算排序的数据分为两部分…

本地项目上传gitlab

要将本地项目上传到GitLab仓库&#xff0c;请按照以下步骤操作&#xff1a; 在GitLab上创建一个新仓库。初始化本地仓库&#xff08;如果尚未这样做&#xff09;&#xff1a; cd your_project_directory git init 添加所有文件到本地仓库&#xff1a; git add . 提交更改到本…

常用大模型介绍

GPT&#xff08;Generative Pre-Trained Transformer&#xff09; 工作原理&#xff1a; 自我注意机制&#xff08;Self-Attention&#xff09;&#xff1a;GPT基于Transformer架构&#xff0c;该架构的核心组件是自我注意层&#xff0c;它允许模型查看整个输入序列来计算每个…

Verilog中4位数值比较器电路

某4位数值比较器的功能表如下。 请用Verilog语言采用门级描述方式&#xff0c;实现此4位数值比较器 参考代码如下&#xff1a; &#xff08;CSDN代码块不支持Verilog&#xff0c;代码复制到notepad编辑器中&#xff0c;语言选择Verilog&#xff0c;看得更清楚&#xff09; t…

ESP8266固件烧写

概述 因为手上有块闲置的ESP8266开发板&#xff0c;想着拿来倒腾一下WIFI探针&#xff0c;倒腾了一阵测试成功&#xff0c;博文记录用以备忘 硬件 ESP8266 NodeMCU 环境 Windows 11 步骤 1.下载esp32_win32_msys2_environment_and_toolchain-20181001.zip 2.下载xtensa…

docker安装部署服务后docker网段和主机网段冲突解决

一&#xff1a;现象 docker安装后&#xff0c;dockers的内部网段在172.[17-31].xx.xx&#xff0c;如果主机网段在这之间时就可能出现网段冲突问题 二&#xff1a;解决 修改Docker 的 daemon 配置文件(/etc/docker/daemon.json) "default-address-pools": [{"…

SEO之高级搜索指令(二)

初创企业需要建站的朋友看这篇文章&#xff0c;谢谢支持&#xff1a; 我给不会敲代码又想搭建网站的人建议 新手上云 &#xff08;接上一篇。。。。&#xff09; 5 、inanchor: inanchor:指令返回的结果是导入链接锚文字中包含搜索词的页面。百度不支持inanchor:。 比如在 Go…

fork,execve,_exit从第一个程序到所有程序

操作系统启动后到底做了什么 CPU Reset → Firmware → Loader → Kernel _start() → 第一个程序 /bin/init → 程序 (状态机) 执行 系统调用 操作系统会加载 “第一个程序” 寻找启动程序代码 if (!try_to_run_init_process("/sbin/init") ||!try_to_run_init_p…

在 Windows 上将 Tomcat 设置为服务并在启动时添加 JVM 参数

在 Windows 上将 Tomcat 设置为服务并在启动时添加 JVM 参数&#xff08;如 -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTIONtrue&#xff09;&#xff0c;你需要修改 Tomcat 服务的启动配置。这通常通过使用 tomcat9w.exe&#xff08;对于 To…

Git的常见面试题

Git 是一种广泛使用的版本控制系统&#xff0c;对于开发者面试来说&#xff0c;了解 Git 相关的知识非常重要。以下是一些常见的 Git 面试题及其答案&#xff0c;这些问题可以帮助你准备软件开发相关的面试。 1. 什么是 Git&#xff1f; 答案&#xff1a;Git 是一个开源的分布…

学成在线 - 第3章任务补偿机制实现 + 分块文件清理

7.9 额外实现 7.9.1 任务补偿机制 问题&#xff1a;如果有线程抢占了某个视频的处理任务&#xff0c;如果线程处理过程中挂掉了&#xff0c;该视频的状态将会一直是处理中&#xff0c;其它线程将无法处理&#xff0c;这个问题需要用补偿机制。 单独启动一个任务找到待处理任…

Java+SpringBoot+JSP实现在线心理评测与咨询系统

前言介绍 随着互联网技术的高速发展&#xff0c;人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理&#xff0c;交易等&#xff0c;而且过程简单、快捷。同样的&#xff0c;在人们的工作生活中&#xff0c;也就…

一体化设计的ATA(FXS网关)设计——电源插头、WiFi、双网口、S口、USB等接口集于一身

目录 集成电源插头集成WiFi集成USB两个网口FXS接口&#xff08;Phone&#xff09;集成创新 ATA&#xff08;FXS网关&#xff09;已经走过几十年的发展&#xff0c;很难有创新。 下面介绍的这款ATA&#xff08;FXS网关&#xff09;通过一体化设计的集成创新&#xff0c;成为一款…