提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

第一次使用csdn记录


提示:以下是本篇文章正文内容,下面案例可供参考

#一、安装MySQL

学习安装使用,已安装好了

#二、使用步骤

#1.使用

代码如下(示例)

win+R  进入命令提示符,输入cmd:进入小黑框

输入cd /d  MySQL下的bin路径,进入该目录下

cd /d D:\MySQL\mysql-8.0.28-winx64\bin

启动MySQL服务 (结束即为另一条)

 net start mysqlnet stop mysql

输入命令后   ,输密码进入MySQL

mysql -u root -p

如上,进入MySQL数据库服务,即可对数据库进行操作。

#2.MySQL基础操作

只需要一些基础操作,特意记录一下

#2.1DDL(数据定义语言)  对数据库操作

查询所有数据库

show databases;

查询当前所用的数据库

select database();

创建一个数据库

create database test_sql;

删除数据库

drop database test_sql;

使用想用的数据库(后面的是数据库名字)

use mysql;

查询当前数据库所有表

show tables;

创建表

create table testtable(
id int comment '序号',
age int comment '年龄',
name varchar(20) comment '名字'
);

显示表结构

desc testtable;

查询指定表的建表语句

show create table testtable;

往指定表里加入内容

alter table testtable add sexy varchar(1) comment '性别';

修改表中的数据类型

alter table testtable modify name varchar(15) comment '姓名';

修改表中名字

alter table testtable change name username varchar(15) comment '用户名';

删除字段

alter table testtable drop sexy;

修改表名

alter table testtable rename to newtable;

删除表

drop table newtable;

#2.2 DML(数据操作语言)

对表中数据进行操作

对指定字段插入数据

insert into testtable (id,sexy) values (1,'男');

对全部字段插入数据

insert into testtable values (1,18,'小明','男');

批量添加数据

指定字段

insert into testtable (id,name) values (2,'叶银松'),(3,'程思齐'),(4,'孔德鹏');

全部字段

insert into testtable values (1,25,'叶银松','男'),(2,25,'倪超','男'),(3,25,'孔德鹏','男'),(4,26,'王昊东','男'),(5,25,'程思齐','男');

修改数据

update testtable set name='叶银松' where age=18;

删除数据

delete from testtable where age=18;

#2.3DQL(数据查询语言)

查询表中数据

部分:

select id,age from testtable;

查询所有数据:

select * from testtable;

设置别名:

select id as uid from testtable;
select name uname from testtable;

去除重复记录:

select distinct id from testtable;


条件查询

select * from testtable where id>2;

模糊查询:

select * from testtable where name like '%鹏';


聚合查询

select max(id) from testtable where sexy='男';


分组查询

select sexy from testtable where id>1 group by sexy;

select sexy from testtable where id>1 group by sexy having sexy=’男’;

感觉分组查询最复杂,其中where和have有区别

where 和 having 的区别:

  • 执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。
  1. -- 年龄小于45,并根据工作地址分组,获取员工数量大于等于3的工作地址
  2. select workaddress, count(*) address_count from employee where age < 45 group by workaddress having address_count >= 3;

排序查询

asc:升序(默认)

select name from testtable order by age asc;

desc:降序

select name from testtable order by id desc;


分页查询

数据不够,只能看一页,关键词是limit

后面第一个参数是起始索引,第二个是查询记录数;

从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数

select * from testtable limit 0,10;

重要!!!!!!

 FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY -> LIMIT

#2.4  DCL(和用户打交道)

创建用户

在当前主机上:localhost

任意主机:%

create user 'sq'@'localhost' identified by '123456';

修改密码

alter user 'sq'@'localhost' identified with mysql_native_password by '111111';

删除用户:

drop user 'sq'@'localhost';

查询用户权限

show grants for 'sq'@'localhost';

后续补充:在后面的学习过程里,遇到问题:需要用到外键约束,使不同表中相同数据互相约束,

并且在创建表时用到了primary key、mul key、auto_increment等属性

create table ordertable (
order_id int not null auto_increment,
user_id int not null ,
primary key (order_id),
key (user_id)
);

primary key 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个主键索引;

PRIMARY KEY 约束:唯一标识数据库表中的每条记录;

主键必须包含唯一的值;

主键列不能包含 NULL 值;

每个表都应该有一个主键,并且每个表只能有一个主键。(PRIMARY KEY 拥有自动定义的 UNIQUE 约束)

unique key 也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个唯一索引;

UNIQUE 约束:唯一标识数据库表中的每条记录。
                                                    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
                                                    (每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束)

表中属性:

key

  • PRI主键约束;
  • UNI唯一约束;
  • MUL可以重复。

auto_increment(自增)

  • 为插入数据指定字段在上一次该字段值的基础上自增 1

  • 只作用于主键,一般用于 ID 的属性

  • 每个表只能有一个 auto_increment 字段

default(设置默认值)

设置默认值,默认值只能是常量

not null(不为空)

限制了空值的插入,用在必填字段上

https://www.jb51.net/article/55853.htm

什么是外键约束

外键是表中的一列或一组列链接到另外一张表的一列或一组列。外键会在相关联的表中起到约束作用,保证数据的一致性和实现一些级联操作。

如果在表A中建立外键,关联到表B,那么表B为主表,表A为从表。主表B中的对应的列的更新或删除会联动到外键所在的表A中的相应的列的操作(具体的操作根据在表A中添加外键时的配置不同而不同)

即,建立外键的表为从表,被外键关联的表是主表。

创建外键约束时,会针对本表中相应的行自动创建索引。

个人理解:相同数据在不同表里建立约束关系、同步

alter table ordertable add foreign key (user_id) references usertable(user_id) on update cascade on delete cascade;

[CONSTRAINT [symbol]] FOREIGN KEY[index_name] (col_name, ...)REFERENCES tbl_name (col_name,...)[ON DELETE reference_option][ON UPDATE reference_option]

首先在CONSTRAINT关键字后面指定外键约束的名字。如果省略名字,那么MySQL会为此外键约束自动创建一个名字。

接下来,通过FOREIGN KEY关键字来指定此外键的列,多个列的话用逗号分隔开来,同样的外键的名字也是可省略的。

第三步指定主表和主表上被引用到的列,多列用逗号分隔。

最后,指定外键在子表和主表之间联动的动作(action),这些动作分为ON DELETEON UPDATEreference_option表示子表中此外键关联的列所采取的行动,当主表中被引用的列被删除(ON DELETE)或更新(ON UPDATE)时。

MySQL有5种reference options:CASCADESET NULLNO ACTIONRESTRICT, and SET DEFAULT

  • CASCADE:级联操作,如果父表中的一行被删除或更新,子表会自动跟着删除或更新。
  • SET NULL:如果父表中的行被删除或更新,子表中相应的列的值被设置为NULL
  • RESTRICT:如果父表中被外键引用的列的值在子表中存在相应的行与之匹配,MySQL拒绝父表的这个删除或更新操作。
  • NO ACTION:同RESTRICT
  • SET DEFAULT:MySQL的语法分析器可以识别,但是InnoDB和NDB引擎不支持。

实际上,MySQL支持三种actions:RESTRICTCASCADE and SET NULL

如果没有设置ON DELETEON UPDATE,那么默认的action是RESTRICT

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单记录了mysql的使用,和常见的数据库的基础操作,让自己有个印象,作为教程是不够的。

预约系统c++ qt mysql相关推荐

  1. java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构:B/S ...

  2. 计算机毕业设计Java医院就诊预约(系统+源码+mysql数据库+Lw文档)

    计算机毕业设计Java医院就诊预约(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java医院就诊预约(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. java计算机毕业设计快滴预约平台源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计快滴预约平台源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计快滴预约平台源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  4. java计算机毕业设计自习室座位预约管理源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计自习室座位预约管理源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计自习室座位预约管理源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

  5. 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...

  6. 计算机毕业设计Java医院预约挂号系统(系统+源码+mysql数据库+Lw文档)

    计算机毕业设计Java医院预约挂号系统(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java医院预约挂号系统(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  7. Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教、用户、管理员)+可以用于学习SSM框架、javaweb、maven项目入门

    Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教.用户.管理员)+可以用于学习SSM框架.javaweb.maven项目入门 可以用于课程设计.毕业设计的知识点入门学 ...

  8. java毕业生设计学校医院预约系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学校医院预约系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学校医院预约系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  9. 教室预约系统mysql_PHP+MySQL教室预约管理系统的设计与实现

    随着我国国民教育的提高,大学生的数量一直在不断的增加,根据网络资料的查询,发现2012年的大学生人数为600万,这是一个不小的数量,说明了我国教育的进步是巨大的.但是问题也随之产生,每年如此多的大学生 ...

最新文章

  1. 关于学习编程的一些看法
  2. R语言ggplot2可视化:自定义函数在箱图(boxplot)上添加分组样本个数(count)、分组均值(mean)、箱体填充色自定义、数据标签色彩自定义
  3. ICLR论文盲审大反转:三个“8”完美过关,又来两个“1”彻底拒绝
  4. Redis 常用命令学四:集合类型命令
  5. charles抓取手机APP,配置正确却抓不到数据
  6. Greenplum5单机部署连接报错 System was started in master-only utility mode问题修复
  7. Ant Design 3.15.0 发布,企业级 UI 设计语言和 React 实现
  8. The prefix mvc for element mvc:annotation-driven is not bound 的解决方法
  9. Linux复习-硬盘相关知识点
  10. PMP认证的教材更新到第几版了?
  11. 国产各数据库厂商数据库梳理
  12. Win7系统怎么截图快捷键
  13. comsol移动网格_COMSOL动网格调试
  14. 苹果屏蔽更新描述文件_iOS屏蔽更新文件失效,教你两个技巧暂停更新
  15. Android图形编程篇--OpenGL实现三角形隧道效果
  16. 我所理解的羽毛球运动(没有教练业余羽毛球如何让自己提高?)
  17. 昆明等保合规怎么建设,企业等保安全解决方案,等保建设测评流程
  18. 如何使用Photoshop(PS)将图片的底色变为透明
  19. java 生成二维码,解析二维码
  20. 搭建 centos7 YUM 源

热门文章

  1. 美团提前批测试开发(电话面试)
  2. 南京东路打卡地上海惊魂密境打造老上海新年味
  3. android汽车手机互联网,通用汽车部署Android Auto:苹果很无奈
  4. tmd26353接近传感器之i2c驱动编写
  5. mysql的功能是什么_数据库的作用是什么
  6. 利用GPU训练的配置方法(Keras)
  7. python列表去重并删除重复那个_Python实现去除列表中重复元素的方法总结【7种方法】...
  8. Python教你迅速成为“蚂蚁森林排行榜”第一名
  9. linux查看网络链路,linux网络链路测试
  10. 游览器大战及JS的起源,node.js由来