MySQL数据库简介

什么是数据库

按照数据结构来存储、管理、组织数据的仓库;

数据库的的简称DB(database)。

数据库的分类

关系型数据库(SQL)

关系型数据库是把复杂的数据转化为简单的二元关系,也就是二维表格的形式,它是当前使用最广泛的数据库。

mysql、Oracle、SQL Server、DB2、SQLlite。

非关系型数据库

面对高并发的软件,对数据库的IO流、性能要求比较高的情况,要使用非关系型数据库。

Hbase、Redis。

MySQL的简介

mysql使用比较广泛的,是最好的关系型数据库之一。

RDBMS即关系型数据库管理系统。

特点:

1、数据以表的形式来展示。

2、一行为一条记录。

3、一列为一个字段。

4、许多的行和列来组成一张表。

5、若干个表单来组成数据库。

表结构:

所有的表都是由一个或者多个列组成的;

比如:在学生表中,一个学生的信息有学号、姓名、性别、班级等等,相同的字段放在同一列,一组数据放在同一行。

SQL语言

是结构化的查询语言,是一种专门用来与数据库通信的语言;

特点:

1、不区分大小写的。

2、关键字 字段名 表名 需要用空格或者逗号来隔开。

3、每一个SQL语句是用分号来结尾的。

4、语句可以写一行也可以写多行。

数据库的操作(使用SQLyog):

查看当前mysql服务器中有哪些数据库:

#数据库相关操作
#查看当前mysql服务器中有哪些数据库
SHOW DATABASES;

创建数据库:

#创建数据库
#create database 数据库名称
CREATE DATABASE baihu;

切换数据库:

#切换数据库
#use 数据库名称
#因为表在建立的时候必须要先选择数据库才行,
USE student;

删除数据库:

#删除数据库
#drop database 数据库名称
DROP DATABASE baihu;

表的相关操作

创建表:

#创建表
#create table 表名称 (列名1 列1的数据类型, 列名2 列2的数据类型);
CREATE TABLE student (stu_name CHAR(2), age INT);

查看一个数据库中有哪些表:

#查看一个数据库中有哪些表
SHOW TABLES;

删除表操作:

#删除表操作
#drop table 表名;
DROP TABLE student;

查看表结构;

#查看表结构
#desc 表名
DESC test01;

查看建表语句;

#查看建表语句
#show create table 表名;
SHOW CREATE TABLE student;

更新表 :

1、更新表必须要指定更新的表名
2、说明所需要修改的列

给表添加一列
#给表添加一列
ALTER TABLE student ADD telephone CHAR(11) NOT NULL DEFAULT '18888888888';
DESC student;
修改列
#修改列
#alter table 表名 modify 列名 新类型 新参数;
#alter table 表名 change 旧列名 新列名 新类型 新参数;

ALTER TABLE student MODIFY age CHAR(2);
ALTER TABLE student CHANGE age stu_age INT;
删除列
#删除列
#alter table 表名 drop 列名;
ALTER TABLE student DROP telephone;
修改表名
#修改表名
#alter table 当前的表名 rename to 新表名
#rename table 当前的表名 to 新表名
ALTER TABLE student RENAME TO new_stu;
RENAME TABLE new_stu TO student;
表内的数据的插入
#表内的数据的插入
#insert into
#1、插入完整的行
#insert into 表名 (列名1,列名2...) values (值1, 值2....);
INSERT INTO student (stu_name, stu_age, join_time) VALUES
('大娃', 8, '1990-08-08 18:00:30');
INSERT INTO student VALUES ('二娃', 7, '1990-08-09 18:00:30');
INSERT INTO student (stu_age, stu_name, join_time)VALUES
(8, '大娃', '1990-08-08 18:00:30');
#在插入行的时候,如果不写列的名称,mysql默认是按照列的顺序进行插入,
#实际在开发过程中,建议将列写清楚,这样即使表的列的顺序出现变化,也能保证
#sql语句能正常执行。


#2、插入行的一部分
#如果要插入行的一部分,要将需要添加数据的列名写清楚,
#因为不写列名默认要填写所有的数据。
INSERT INTO student (stu_name, stu_age) VALUES ('四娃', 10);

#3、插入多行
#插入多行时,将每一组数据用括号括起来,并用逗号隔开即可。
INSERT INTO student (stu_name, stu_age, join_time) VALUES
('大娃', 13, '1990-08-08 18:00:30'),
('二娃', 12, '1991-08-08 18:00:30'),
('三娃', 11, '1992-08-08 18:00:30');
更新表数据
#更新表数据 update
#格式:update 表名 set 列名1 = 新值1, 列名2 = 新值2[where子句];
#如果按照这种写法没有条件限制,会将所有的值全部改掉
UPDATE student SET stu_name='迪迦';
#修改数据的时候一定要使用where子句来限制条件,否则会出问题。
UPDATE student SET stu_name='赛文' WHERE stu_age=11;
删除表数据
#删除表数据
#delete from 表名 where ... ;
#必须要指定where子句中的条件,否则会将所有的数据全部删掉

#从表中删除特定的行
DELETE FROM student WHERE stu_age=13 AND join_time='1990-08-08 18:00:30';
#删除表中的全部数据
DELETE FROM student;

#清空表数据
TRUNCATE TABLE student;
truncate 和 delete的区别
#truncate 和 delete的区别
# delete from 是直接对表中的数据进行逐行删除,所以相对来说如果数据量比较大,会消耗比较长的时间,
#但是优势是可以灵活指定删除哪些数据

#truncate table 代表是先整张表删除,然后创建一个一模一样的空表

select 查询语句

#select 查询语句
#1、查询哪些字段
#2、从哪里查询(选择哪个表)
#格式:select 字段1, 字段2... from 表名;
SELECT stu_name FROM student;
SELECT stu_name, stu_age FROM student;
#查询表中所有的数据
SELECT * FROM student;

#避免查询到重复的数据
SELECT DISTINCT stu_age FROM student;

MySQL中的常见数据类型

数值类型:

整数型:

int类型:占4个字节,带符号的范围-2147483648~2147483647,不带符号,0~4294967295;

浮点类型:

float:单精度浮点
double:双精度浮点

字符串类型:
#字符串类型
#CHAR(M)
#最多可以容纳M个字符,M可以省略,默认为1;

#VARCHAR(M)
#最多可以容纳M个字符,如果存储的字符数N少于M,
#实际占用的存储空间是L+1个字节,其中L代表的N个字符占用的字节数,M可以省略不写

#char 和 varchar的区别
#char是固定长度,每个值占用相同的字符数,不够的位数mysql会用空格在右边补全
#varchar是一种可变长度类型,每个值占用的空间是它里面存储的字符对应的字节数+1
#因为varchar需要计算每一个值的实际空间,所以要多一个字节来计算。

#值	CHAR(4)		需要存储	VARCAHR(4)	需要存储
#''	'    '		4个字节		''		1个字节
#'ab'	'ab  '		4个字节		'ab'		3个字节
#'abcd'	'abcd'		4个字节		'abcd'		5个字节

#如果数据长度相同就选择char类型,比如手机号、身份证号等等
#如果数据长度不一致,就选择varchar类型,比如姓名、地址等等
#因为这样能更加节约空间
#char的执行效率比varchar高
日期 / 时间类型:
#日期/时间类型
#日期时间类型 DATETIME
#格式"YYYY-MM-DD hh:mm:ss"
#date:日期类型
#time:时间类型
#datetime:日期时间类型
DROP TABLE student;

CREATE TABLE student(stu_name VARCHAR(5), age INT, join_time DATETIME);
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_name VARCHAR(10) NOT NULL,
age INT DEFAULT 18,
join_time DATETIME DEFAULT '2024-08-06 12:00:00'
);

SQL语言总结

SQL语言分为三类:

DML(数据库操作语言) DDL(数据库描述语言) DCL(数据库控制语言)

DML(数据库操作语言)
DML:增删改查:

INSERT INTO    -向数据库中插入数据

DELETE FROM    -从数据库中删除数据

UPDATE SET    -修改数据库中的数据

SELECT FROM    -从数据库中查询数据

DDL(数据库描述语言)

CREATE DATABASE    -创建数据库

DROP DATABASE        -删除数据库

USE DATABASE        -切换数据库

ALTER DATABASE        -修改数据库

CREATE TABLE        -创建表

ALTER TABLE        -修改表

DROP TABLE        -删除表

CREATE INDEX        -创建索引

DROP INDEX        -删除索引

TRUNCATE TABLE        -清空表

DCL(数据库控制语言)

GRANT            -授权

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值