目录

MySQL数据库

数据库

MySQL

基本操作

SQL语言

SQL分类

DCL(数据库控制语言)了解

DDL(数据定义语言)

数据类型

浮点型

建表约束

对表的修改操作

DML(数据操作语言)最重要

插入数据


MySQL数据库

数据库

数据库【按照数据结构来组织、存储和管理数据的仓库】,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

数据对于公司来说是最宝贵的财富,程序员的工作就是对数据进行管理,包括运算、流转、存储、展示等,数据库最重要的功能就是【存储数据】,长期保存数据。

MySQL

Mysql是一个【关系型数据库管理系统】,瑞典的公司研发,被【Oracle】收购

MySQL使用了一种语言【SQL语言】

MySQL分为社区版和商业版,体积小、速度快、成本低,开源(开放源代码)。

基本操作

MySQL保存数据的模式:

创建一个数据库

在数据库下保存多张表

在每张表中保存多条数据

登录mysql:

mysql -h 127.0.0.1 -p3306 -uroot -p

MySQL是一个数据库管理系统,管理多个数据库。

创建一个数据库:

create database 数据库名;
create schema 数据库名;

查看所有的数据库: show databases

使用数据库:use 数据库名

用来存储数据的对象,是有结构的数据的集合

行:一行即为一条数据,数据库一共有多少条数据,实际就有几行数据

列:一行即为一个字段,数据库一共有多少个字段,实际上就有几行数据

SQL语言

sql是一种特殊目的的编程语言,是一种数据库查询和程序设计的语言,用于存储数据以及查询,更新和管理关系型数据库系统

SQL分类

DCL:数据控制语言,用来定义访问权限和安全级别

DDL:数据定义语言,用来定义数据库对象:库,表,字段。功能:创建,删除,修改库和表结构

DML:数据操作语言,用来定义数据的增删改数据

DQL:数据库查询语言,用来查询记录

TCL:事务控制语言,用来管理事务

DCL(数据库控制语言)了解

创建用户

创建一个用户,该用户只能在指定的ip地址上登录MySQL

create user 用户名@IP地址 identified by '密码';

创建一个用户,该用户可以在任意ip地址上登录mysql:

create user 'moon'@'%' identified by 'root';

修改密码

-- 5.7版本需要使用passwod对密码进行加密
set password for moon@'%' = password('新密码');
-- 8.0版本直接赋值
set password for moon@'%' = '新密码';

给用户授权

给指定用户在指定数据库上赋予指定权限,权限有很多,常用:

creat:可以创建数据库

select:查询数据

delete:删除数据

updata:修改数据

insert:插入数据

-- 语法:grant `限1,权限2,....权限n` on 数据库名.* to 用户名@IP地址
grant select,insert,update,delete,create on `jsoft`.`user` to `moon`@`%`;

注意:这里用的是着重符,不是单引号。

撤销授权

-- 语法:revoke 权限1,....权限n on 数据库.* from 用户名@IP地址
revoke all on `jsoft`.* from `moon`@`%`;

DDL(数据定义语言)

DDL主要用在定义或改变表的结构

创建表

create table表明(字段名1(列名)类型(长度)约束条件,字段名2(列名)类型(长度)约束条件,字段名3(列名)类型(长度)约束条件,······);

在关心型数据库中,我们需要这顶表名和列名,同时设定。

数据类型

整型

MySQL数据类型

含义
tinyint***** 1字节,范围(-128~127)
int 4字节,范围(-21个亿~21个亿)

在整型中,我们默认使用的是【有符号】的,我们可以使用unsigned关键字,定义成无符号类型,tinyint unsigned的取值范围是0~255.

如果长度需要配合zerofill:

int(4) unsigned zerofill;

说明:上树的int长度为4,如果设置了zerofill,如果数据时1,最终存在表格中的数据格式为0001,0010.

浮点型

MySQL数据类型

含义
fioat(m,d) 4字节,单精度浮点型,m总长度,d小数位
double(m,d) 8字节,双精度浮点型,m总长度,d小数位
decimal(m,d) decimal是存储为字符串的浮点数,对应我们ava中的BIgDecimal

比如定义一个float(5,3):

插入123.45678,最后查询得到的结果就是99.999;

插入12,。3456789,最后查询得到的结果就是12.346;

所以,在使用浮点型的时候,要以插入到数据库中的实际结果为准

字符串类型

MySQL 含义
char(n) 固定长度,最多255个字符
varchar(n) 可变长度,最多65535个字符
tinytext 可变长度,最大255个字节
text 可变长度,最大65535个字节

mediumtext

可变长度,最大16MB
longtext 可变长度,最大4GB

(1)char和vachar的区别:

char类型是【定长】的类型,当定义char(10),输入时“123”,他们占用的空间依然是10个字符。当输入的字符如果超出指定的范围,char会截取超出的字符。而且,当存储char时,MySQL会自动删除输入字符串末尾的空格

char适合存储很短的,一般固定长度的字符串。例如,char非常适合存储密码MD5值,因为他是一个定长的值。对于端的列,char比varchar在存储空间上效率更高。

varchar类型用来存储可变长度,长度最大为n个字符的可变长度的字符串数据,比如varchar(10),然后存储“abc”,实际就是存储了3个字符

char类型每次修改的数据长度相同,效率更高,varchar,每次修改的数据长度如果不同,效果更低

(2)varchar和text区别:

text不能设置默认值,varchar可以设置默认值

text类型,由于单表的最大行宽的限制,支持溢出存储,智慧存放768字节在数据页中,剩余的数据存储在溢出段中

一般我们都用varchar

日期类型

MySQL数据类型 含义
date 3字节,日期,格式2022-08-15
time 3字节,时间,格式:10:54:30
datatime 8字节,日期时间,格式:2022-08-15 10:55:40
timestamp

4字节,时间戳,毫秒数

year 1字节,年份

建表约束

因为一个表要有多个列,数据库中的表不止有一张,建表约束说的就是我们应该如何规范表中的数据以及表之间的关系

约束名称 描述
NOT NULL 非空约束
UNIQUE 唯一约束,取值不允许重复
PRIMARY KEY

主键约束(主关键字),自带非空,唯一,索引

DEFAULT 默认值
FOREIGH KEY 外键约束,表和表之间的约束
creat table `book` (`id` int PRIMARY KEY auto_incrememt
)

(1)NOT NULL约束

CREATE TABLE `student` (`stu_id` int,`stu_name` VARCHAR(50) NOT NULL,`gender` char(1) DEFAULT '男',`brithday` datetime,PRIMARY KEY(stu_id)
);

(2)UNIQUE约束

create table `book` (`id` int PRIMARY KEY auto_increment,`name` varchar(50) not null,`bar_code` VARCHAR(30) not null,`aut_id` int not null,UNIQUE(bar_code)
);

(3)主键约束

create table `author`(`aut_id` int,`aut_name` varchar(50) not null,`gender` char(1) default '男',`country` varchar(50),`birthday` datetime,PRIMARY KEY(aut_id,aut_name)
);

(4)外键约束

配合主键去使用,有了这个约束,我们在向表中插入数据时,来源去另一张标的主演

外键会产生的效果:

(1)删除表的时候,如果不删除引用外键的表,被引用的表是不能直接删除

(2)外键的值不许来源于引用的表

create table `author`(`aut_id` int,`aut_name` varchar(50) not null,`gender` char(1) default '男',`country` varchar(50),`birthday` datetime,PRIMARY KEY(aut_id)
);``
create table `book` (`id` int PRIMARY KEY auto_increment,`name` varchar(50) not null,`bar_code` VARCHAR(30) not null UNIQUE,`aut_id` int not null,FOREIGN KEY(aut_id) REFERENCES author(aut_id)
);

在创建表的时候,建议字段名使用着重符。

对表的修改操作

查看当前库中的所有表:

show tables;

查看表结构:

desc 表名;

修改表有5个操作,但是前缀都是一样的alter table 表名 ....

添加列:

ALTER table author add (hobby varchar(20),address varchar(50));

修改列数据类型

ALTER table author MODIFY address varchar(100);

修改列名称和数据类型

alter table author change address addr VARCHAR(60);

删除列

alter table author drop addr;

修改表名

ALTER TABLE author RENAME `authors`;

删除表

drop table if EXISTS `user`;

DML(数据操作语言)最重要

该语言来对表记录进行操作(增、删、改),不包含查询。

插入数据

INSERT INTO `authors` ( aut_id, aut_name, gender, country, birthday, hobby ) VALUES (4,'罗曼罗兰','女','漂亮国','1945-8-15','写字');

如果插入的是全字段,字段名可以省略。

INSERT INTO `authors` VALUES (5,'韩寒','男','中国','1984-8-15','赛车');

说明:

  1. 在数据库中所有的字符串类型,必须使用引号。

  2. 如果部分字段插入,必须列名和值要匹配。如果全字段插入,则列名可以省略。

批量插入。

INSERT INTO `authors` VALUES
(7,"李诞",'男','中国','1985-8-15','脱口秀'),
(8,"史铁生",'男','中国','1967-8-15','绘画');

修改数据

修改某列的全部的值:

update `authors` set aut_name = '郭小四',country='中国';

修改特定行的数据:

update `authors` set aut_name = '金庸',country='中国' where aut_id = 1;

where是一个关键字,我们可以使用where关键字实现丰富的筛选,它很像我们的if语句,可以使用各种复杂的条件运算:

  • =(没有==,也没有equals)

  • !=

  • >

    • where aut_id > 1

  • <

  • >=

  • <=

  • <> 不等于

  • between...and

    • where aut_id between 1 and 4

    • where aut_id > 1 and aut_name='xxx'

  • in(....)

    • where aut_id in(1,3,5)

  • is null

    • where name is null

  • not

    • where name is not null

  • or

  • and

删除数据

全部删除:

delete from `student`;

根据条件删除:

delete from `authors` where aut_id = 8;

说明:通过delete这种删除方式删除的数据,主键如果是自动递增,会断档。

截断(清空表):

TRUNCATE student;

说明:

truncate实际上应该属于DDL语言,操作立即生效,不能撤回。

  • truncate和delete都是删除数据,drop删除整个表。

  • truncate速度快,效率高,可以理解为直接删除整个表,再重新建立。

  • truncate和delete都不会是表结构及其列、约束、索引的发生改变。

-

2022-08-15 第八组 常竞文 DCL DDL DML相关推荐

  1. 2022.08.15 第三组 高小涵

    目录 Mysql数据库 数据库 Mysql 基本操作 表 SQL语言 SQL分类 DCL(数据库控制语言) DDL(数据定义语言) DML(数据操作语言) Mysql数据库 数据库 数据库[按照数据结 ...

  2. 2022.08.10 第三组 高小涵

    目录 JavaSE总结: 1.数据类型 1.1基本数据类型 1.2引用数据类型 1.3变量的声明 2.运算符 3.条件判断语句 4.循环语句 4.1for循环 4.2while循环 4.3do...w ...

  3. 2022.08.12 第三组 高小涵

    目录 1.异常 1.1运行器异常 1.2编译器异常 1.3处理异常 try...catch throws throw 1.4自定义异常 2.枚举 3.泛型 3.1泛型类 3.2泛型方法 4.常用API ...

  4. 2022.08.03 第三组 高小涵

    锁: 1.synchronized(重量级锁)多线程并发编程.          JDK1.6为了减少获得锁和释放锁带来的性能消耗引入的偏向锁和轻量级锁. 拓展:  1.无锁:不加锁          ...

  5. 2022/08/15 吉软 MySQL数据库(1)

    目录 一.数据库: 二.SQL 2.1.SQL的优点 2.2.SQL的分类 2.2.1.DCL(数据控制语言) 2.2.2.DDL(数据定义语言) 2.2.3.DML(数据操作语言) 三.MySQL: ...

  6. 2018.12.08【NOIP提高组】模拟B组总结(未完成)

    2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...

  7. Windows批处理命令快速获取文件夹下特定类型的文件名(2022.5.15)

    Windows批处理命令快速获取文件夹下特定类型的文件名 (2022.5.15) 1.需求分析 2.batch简介 3.代码实现 3.1 八种编程语言分别实现 3.1.1 C# 实现 3.1.2 C+ ...

  8. 2022年江西省中职组“网络空间安全”赛项模块A解析

    2022年山西省中职组"网络空间安全"赛项模块A解析 A模块基础设施设置/安全加固(200分) A-1:登录安全加固 A-2:Web安全加固(Web) A-3:流量完整性保护与事件 ...

  9. 2022年山东省中职组“网络安全”赛项比赛任务书-2

    2022年山东省中职组"网络安全"赛项 比赛任务书-2 一.竞赛时间 总计:360分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180 ...

最新文章

  1. 我平常整理了CString的一些用法,很实用,发给你共享,相信你以后遇到CString的问题都会迎刃而解:...
  2. VMware View Composer 虚拟机映像管理
  3. Android的AlertDialog详解
  4. 计算机组成原理实验箱使能开关,计算机组成原理微程序计数器实验报告
  5. Centos 7 搭建nginx 服务 使得别人能够访问自己的个人网站
  6. python的缺陷和不足_python中异常和错误的区别
  7. c语言case语句块,JavaScript使用Switch语句来选择将要执行的代码块
  8. Windows 会有开源的一天吗?
  9. Web API-定时器
  10. 【ISL-1】统计学习概览
  11. 图片裁剪_如何使用word裁剪图片图形?如何使用word修整图片?
  12. AutoCAD2000命令详解
  13. 从快感到成就感:多巴胺vs内啡肽
  14. 【计算机组成原理】程序,指令,机器指令,微程序,微指令,微命令,微操作的关系
  15. CCS中调试DM6467高清视频采集(TVP7002输入)
  16. 中国智能电饭煲行业市场供需与战略研究报告
  17. chm文档的编辑办法
  18. 计算机无法继续安装程序,解决方法:如果计算机继续无法安装图形驱动程序,该怎么办...
  19. MySQL及达梦数据库数字金额转人民币大写
  20. Ajax 异步同步请求

热门文章

  1. pandas中访问使用多个索引的Series
  2. awx,micaps,hdf,nc,radar,多普勒雷达,grib等各种数据解析,出图,计算等,有需要,欢迎联系.
  3. 将敏捷应用于工业机械开发
  4. iOS最强下片神器,免费不限速,秒杀其他下载神器!
  5. 【Hadoop】HBase 数据模型(Data Model)
  6. 7-3 狡猾的财主,个人思路及解答
  7. 抓取某一个网站整站的记录
  8. Mac 32/64位平面、3d设计软件集子
  9. “利空”砸盘?中本聪:这个锅我不背
  10. tomcat(非安装版) 服务不能启动但是startup 却可以启动的问题