mysql数据库基本知识点整理笔记
学习目标:
- SQL的基本分类
- MYSQL数据库中的数据类型
- DDL表的相关操作
- DML表中数据的增删改
学习内容:
数据库系统的结构
1. 一个DBMS(数据库系统)中 可以有多个数据库(database)
2. 一个数据库(database)中 可以有多个表(table)
3. 一个表中 可以有多条数据 多个字段(列)
比如说,把一个数据库比化成一个excel文件,一个excel文件中可以有多个表,一个单独的表中我们可以列多行数据。
1,SQL基本分类
1)DDL 数据定义语言:
对数据库的创建和删除 以及对数据库表的创建删除和修改 关键字:create、drop
2)DML 数据操作语言:
对数据库表中数据的增 删 改 关键字:insert、delete、update
3)DQL 数据查询语言:
对数据库表中数据 查询 关键字:select
4)DCL 数据控制语言:
指定用户 分配权限 关键字:grant、revoke
2,MYSQL数据库中的数据类型
1)整形
tinyint / smallint / int / bigint byte(-128 127) short int long
2)浮点型
float(n,m) double(n,m) decimal(n,m) 准确值 n和m可以省略
n:整数位+小数位的个数
m:小数位的个数
例如:decimal(6,2) 总共能存6位数字,末尾2位是小数,字段最大值 9999.99
3)字符型,
实际开发中,varchar相对比较多
varchar(n) 变长字符串 n必选 保存字符最大个数 性能低
例如: 定义姓名数据类型varchar(10), 可以存储的姓名对应的字符个数0-10, 10表示最多可以存储的字符个数, 实际客户姓名叫 AB, 在数据库中存储占有的空间就是2, 不是10
char(n) 定长字符串 n可选 默认为1 保存字符最大个数 性能高
例如: 定义姓名数据类型char(10), 可以存储的姓名对应的字符个数0-10, 10表示最多可以存储的字符个数, 实际客户姓名叫 AB, 在数据库中存储占有的空间还是10, 不是10
4)日期
data 日期 年月日
time 时分秒
datetime 日期 年月日时分秒,默认值为null,最大值到9999年23:59:59
timestamp 时间戳 1970开始 2037年12月31日 23:59:59, 默认值为当前系统时间
mysql中没有boolean类型、通常我们会使用int类型来表示boolean类型 0:false 1:true
3,DDL表的相关操作
Data Definition Language数据定义语言
关键字:create 创建 drop 删除 alter 修改 show 展示 databese 数据库
一,库的基本操作
1,查看所有数据库
show database
2,创建数据库
#语法一:create database 数据库名
create database day01;#语法二:create database if not exists 数据库名(如果不存在此数据库再创建)
3,删除数据库
#语法:drop database 数据库名;
drop database day01;
4,选中数据库
#语法:use 数据库名
use day01;
选中数据库,数据库系统中一般会有多个数据,我们对数据库操作时,不需要写数据库名,但我们要保证我们操作的数据库是哪一个数据库,此时我们用选中数据库来决定我们的操作是对选中的数据库有效,当我们选中数据库时,数据库名称会变粗,例如:
5,查看创建数据库语句
#语句:show create database 数据库名
show create database day01;#除此之外我们根据需求,修改show后面的语句来查看其他语句的创建或修改语句
二,表的操作
关键字:show 展示 create 创建 table 表 drop 删除
1,查看所有表
show table;
2,创建表
#语法 create table 表名(字段1 字段类型,字段2 字段类型,...字段n 字段类型
);create table student( #创建学生表sid int, #id号sname varchar(20), #姓名ssex char(2) #性别
);#我们可以在table 后面加上if not exists 表示如果没有此表,再创建
3,删除表
#语法 drop table 表名
drop table student;
4,查看表结构
#语法 desc 表名
desc student;
5,查看创建表语句
#语句 show create table 表名
show create table student
三,修改表
关键字:alter 修改 add 添加列 drop 删除
rename 表名修改 change 列名及类型修改 modlify 修改列的类型
1,修改表名
#语法 alter table 表名 rename 新表名
alter table student rename stu;
2,修改列名
#语法 alter table 表名 change 原列名 新列名 列的类型
alter table student change sname name varchar(20);
3,修改列的类型
#语法 alter table 表名 modify 原列名 新类型;
alter table student modify sname char(10);
4,添加列
#语法:alter table 表名 add 新列名 类型
alter table student add sclass varchar(20);
5,删除列
#语法:alter table 表名 drop 列名
alter table student drop sclass;
modify与change区别
1、modify关键字只能修改列的类型、change关键字既可以修改列的类型也可以修改列的名称
4,DML表中数据的增删改
Data Manipulation Language数据操作语言
一,插入字段(新增数据)
1,不指定字段插入
#语法 插入单个表(表中字段对应值)
insert into 表名 values (值1,值2,值3,值4) 默认情况下需要给所有的列赋值insert into student values (1,"kenken","男");
注意事项:
1、有多少列对应就应该有多少值
2、如果插入的是数值直接给值、除数值以外用双引号|单引号都可以
2,指定字段插入
#语法:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3)insert into student (sid,sname,ssex) values (1,"kenken","男");#在指定字段添加数据时,可以添加部分数据
#例如:insert into 表名 (列名2,列名3) values (值2,值3)insert into student (sname,ssex) values ("kenken","男");
注意事项:
1、声明的列和值要一一对应
2、如果插入的是数值直接给值、除数值以外用双引号|单引号都可以
3,字段插入部分值第二种方式
#语法:insert into 表名 set 列名=值
insert into student set sname="kenken"; #只添加一个值
insert into student set id=2,sname="maimai"; #只添加两个值
注意事项:
1、列和值要一一对应
2、如果插入的是数值直接给值、除数值以外用双引号|单引号都可以
4,批量插入
#语法:insert into 表名 (列1,列2,列3) values (值1,值2,值3),(值1,值2,值3);
insert into student (sid,sname,ssex)values (1,"kenken","男"),(2,"maimai","nv");
注意:
1. 整型、浮点型 不需要加引号 ,字符型和日期类型 需要加引号
2. 插入的值必须满足类型和约束
3. 值和列名一一对应
4. 如果约束:(对当前列进行限制保证当前列数据的有效性和准确性)是 null 和 default 可以不插入
二,删除字段
1,删除单个字段
#语法 delete from 表名 [where 条件]
delete from student where sid=1; #删除sid为1的字段
2,删除多个字段
#语法:delete from 表名 [where 条件]
delete from student where sid in(1,2); #删除sid为1,2的字段#可以根据需求在in后面的括号里添加要删除的字段
#或者
delete from student where sid=1,sname="maimai";
3,删除所有
#语法
delete from 表名
truncate table 表名
注意事项:
delete删除和truncate删除的区别
方式上:delete删除是逐行删除、truncate是删除整张表、然后再创建一张一模一样的表结构
效率上:truncate删除效率要高于delete
回滚上:delete删除数据可以回滚(可以找回来)truncate一旦删除数据将无法找回
自增序列上:delete删除会保留原有的自增序列、而truncate不会保留
三,修改
1,修改单个字段数据
#语法:update 表名 set 列1=值1,列2=值2,列3=值3 [where 条件]
update student set sname="lala" where sid = 1;#where 后面的条件是要告诉计算机要修改那一条数据,set后面的是列名=新数据
2,修改多个字段数据
#1,不加条件
#语法:update 表名 set 列=值;
update student set ssex="男"; #所有字段的ssex列改为男#2,部分字段修改成同一种值
#语法:update 表名 set 列=值 where 条件
update student set ssex="男" where sname in("kenken","maimai");
#sname为kenken和maimai的字段ssex值改为男
今天就写这么多吧,剩下的看明天能不能写完。。。。
mysql数据库基本知识点整理笔记相关推荐
- MySQL数据库字符集和整理
MySQL数据库字符集和整理(2009-11-20 22:23:37) mysql数据库 it 其实这个表在MySQL数据库中通过phpMyAdmin就能看到,icech只是把表格整理了一下方便 ...
- MYSQL数据库常用知识整理
为什么80%的码农都做不了架构师?>>> MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQ ...
- MySQL数据库基础到进阶笔记整理包含事务、SQL优化、锁等内容
写在前面 本文是在学习MySQL数据库时整理的笔记,可供初学者学习 是在https://dhc.pythonanywhere.com/entry/share/?key=12e4a7324f68371d ...
- mysql数据库基础知识点总结--看完即入门
疫情在家,在家简单复习了SQL数据库的基础知识.其实回过头来,当时本科时候学习的时候,还没有多大的感触.现在学习了这么多的语言和结构化知识,再回头来看这门语言,很多东西息息相关.就像是瞬间打通了六脉, ...
- 一图看懂 pytz 模块:现代以及历史版本的世界时区定义数据库,资料整理+笔记(大全)
本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pytz 模块:现代以及历史版本的世界时区定义,将时区数据库引入 ...
- mysql数据库的优化整理之查询优化
作为程序员,天天都要和数据库打交道,而且以mysql居多,而数据库的优化,也是一个老生常谈的话题.今天我就整理一下mysql数据库的优化方式. 开始: 首先是查询优化: 一条查询语句在数据库中执行,如 ...
- 您是否也需要用到Visual Studio 2017连接MySQL数据库,请看正文笔记
开篇 为了开发.net应用程序,选择了Visual Studio 2017开发软件,公司用的数据库是MySQL,所有写了这篇文章记录笔记,方便以后查找. 正文 需要工具(我本地用以下版本): 1.My ...
- Mysql数据库常用操作整理
0.说明 MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便.灵活.开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用.从 ...
- MySQL数据库学习教程全套笔记完整版
[MySQL学习1]SQL语言简介及数据库简介https://www.52txr.cn/2021/mysql1.html 本节大致介绍数据库. [MySQL学习2]MySQL简介及安装和卸载https ...
- 黑马程序员MySQL数据库之基础篇笔记(SQL语法)(每日更新)
文章目录 0 SQL 1 SQL通用语法 2 SQL分类 2.1 DDL语句 2.1.1 DDL数据库操作 2.1.2 DDL表操作 2.1.3 DDL表操作数据类型 0 SQL SQL通用语法 SQ ...
最新文章
- Postman请求linux服务器报错:503Forwarding failure,由于服务器端口未开放;服务器端口开放与关闭
- c改java_Android NDK开发:C修改Java的属性
- Windows Phone 7 学习网址总结
- uml和模式应用 pdf_总结分享:PHP中常见的五种设计模式
- pythoncgi模块文档_python使用cgi模块处理表单
- Linux里10个最危险的命令
- Spring Bean范围
- java获得指定的开始时间与结束时间之间的所有日期
- webkit事件处理
- 容器编排技术 -- Kubernetes StatefulSet基本使用
- 单片机成长之路(51基础篇) - 013 MCS-51单片机控制详解–T2MOD
- sleep() wait() yield() join()
- 《实用软件工程》复习知识点
- Aegisub制作字幕从入门到精通:制作srt字幕,制作ass字幕,压制字幕和视频
- 小米pro15拆机_15.6寸小米笔记本Pro拆后盖加装扩展硬盘图文记录
- s3c6410的GPIO操作
- 【MySQL】MySQL之导入和导出
- vivox27计算机功能,vivo x27 怎么连接电脑?
- 逻辑卷管理员(Logical Volume Manager)介绍
- docker-compose部署xxl-job-admin 分布式任务调度平台