MySQL知识点

MySQL 数据类型


MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。


一、连接数据库

终端输入:

$ mysql -u root -p

输入密码

Enter password: 

二、创建“数据库” 和 “表”

【注意】

esc 按键下面的那一个 ~ 按键,坑惨了。 如  表名 或 字段名 与 mysql关键字order相同时      使用---->   `order`

反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。

1、数据库的基本操作

a、====创建数据库=======

方法1:  连接mysql成功后,创建名为yjl_test的数据库

mysql> create database yjl_test;
方法2: 使用 mysqladmin 创建数据库

使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。

所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。

以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:

[root@host]# mysqladmin -u root -p create RUNOOB
Enter password:******
b、=====删除数据库======
方法1:  连接mysql成功后,删除名为yjl_test的数据库
mysql> drop database yjl_test;

方法2: 使用 mysqladmin 删除数据库


2、"表"操作

在名为“yjl_test”的数据库中创建名为“student”的表

第一步:使用数据库

mysql> use yjl_test;

第二步:创建表create table 表名();

mysql> create table student(
    -> student_id int not null auto_increment,
    -> name varchar(50) not null,
    -> sex varchar(20) not null,
    -> primary key (student_id)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

字段说明:
字段student_id   类型为 int   不能为空(not null)    值(自动填充/生成  auto_increment)
         name   类型为字符串且长度最大为50(varchar(50))  不能为空(not null) 
         sex    同name一样
   primary key (student_id)     设置student_id为主键
ENGINE=InnoDB  使用innodb引擎 
DEFAULT CHARSET=utf8  数据库默认编码为utf-8
AUTO_INCREMENT=1   自增键的起始序号为1

扩展:
1.InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一。
2.AUTO_INCREMENT会在新记录插入表中时生成一个唯一的数字。希望在每次插入新记录时,自动地创建主键字段的值,可以在表中创建一个 auto-increment 字段。


====【补充】======

查看student表中的所有字段:mysql> desc student;

删除student表:  mysql> drop table student;


三、查看所有的数据库  和 数据库对应的所有表

1、显示mysql中所有的数据库

mysql> show databases;

2、使用数据库testmysql

mysql> use testmysql;

3、显示数据库 testmysql中所有的表

mysql> show tables;

四、数据的“增删改查”

1. “添加”数据到数据库yjl_test下面的student表中:    insert into

mysql> insert into student(student_id,name,sex)
    -> values
    -> ("1000","yjl","男");

2、从student表中“删除”数据student_id=2000的数据

mysql> delete from student where student_id='2000';


3、修改数据

语法:update 表名 set 字段=新值,… where 条件

student_id=1000的学生的名字改为yjl

mysql> update student set name='yjl' where student_id='1000';


4、查询

查询整个表: mysql> select *from student;

查询student_id=1000的这条数据:  mysql> select *from student where student_id='1000';


limit N : 返回 N 条记录

返回2条数据:mysql> select *from student limit 2;


limit N,M : 相当于 offset N limit M , 从第 N 条记录开始, 返回 M 条记录

返回第2条数据:mysql> select *from student limit 1,2;


符合某个条件的数据的所有条数
select count(*) from `order`  where delivery_day='2018-06-25';


5、排序

降序 “order by”   “desc” 

mysql> select *from student order by student_id desc;


升序 “order by”    “asc”

mysql> select *from student order by student_id desc;


符合某个条件的数据 按某个条件降序排列
select *from `order` where delivery_day='2018-06-25' order by goods_price desc ;

6、取出某个字段为“不为空”的所有数据

Select   *   From   table Where id<>'';

Select   *   From   table Where id!='';


7、取出某个字段为“为空”的所有数据

Select   *   From   table Where id='';

Select   *   From   table Where   ISNULL(id);

8、MySQL -> Like  使用

like 匹配/模糊匹配,会与 % 和 _ 结合使用。
'%a'     //以a结尾的数据
'a%'     //以a开头的数据
'%a%'    //含有a的数据
'_a_'    //三位且中间字母是a的
'_a'     //两位且结尾字母是a的
'a_'     //两位且开头字母是a的

【举栗子】
查询以 java 字段开头的信息。
SELECT * FROM position WHERE name LIKE 'java%';
查询包含 java 字段的信息。
SELECT * FROM position WHERE name LIKE '%java%';
查询以 java 字段结尾的信息。
SELECT * FROM position WHERE name LIKE '%java';

9、“主键” 与  “外键”   

例如:
学生表student(学号(student_id),姓名(student_name),性别(student_sex))

表内有:1,aa,女

student表

student_id      student_name    student_sex

1                             aa                 女

课程表subject(课程编号(subject_id),课程名(subject_name))

表内有:1,语文

subject表

subject_id    subject_name

       1                   语文

成绩表grade(成绩编号(grade_id),学号(student_id),课程号(subject_id),成绩(grade))

表内有:1,1,1,90

grade表

grade_id        student_id      subject_id      grade

     1                    1                   1                90

成绩表的学号就是学生表的学号相对应,并且为学生表的主键,这样就称成绩表中的学号是学生表的外键,同理,成绩表中的课程号是课程表的外键。



基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值