MySQL(二)

这篇博客详细介绍了MySQL中的处理函数、DDL基础操作、DML操作、DQL查询以及约束。重点讲解了主键约束、外键约束、多表查询(内连接、外连接、子查询、自关联查询)的概念和实例,强调了数据的完整性和准确性。
摘要由CSDN通过智能技术生成

一、处理函数

1.1 单行处理函数/数据处理函数

在这里插入图片描述
在这里插入图片描述
单行处理函数的特点:一个输入对应一个输出。和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!)

常见单行处理函数
1、lower() 转换小写,将ename列所有名字转化为小写,(大写同理)
mysql> select lower(ename) from emp;
在这里插入图片描述

二、DDL基础操作

2.1 删除查询数据库

如果删除的数据库不存在会报错所以在后面加上一个判断条件if exists,就是如果存在就删除,不存在就不删除。
在这里插入图片描述
在这里插入图片描述
使用数据库后被使用的数据库会有加粗效果。
在这里插入图片描述

2.2 查询创建数据表

在这里插入图片描述
在这里插入图片描述

实例
在这里插入图片描述

2.3 修改和删除数据表(结构)

在这里插入图片描述

在这里插入图片描述

三、DML基础操作

3.1 新增表数据

在这里插入图片描述

实例
在这里插入图片描述
给全部列添加数据,表里面多少列,每组值也要对应且数据类型都要对应上。

3.2 修改和删除表数据

在这里插入图片描述
如下图如果不加红线条件将会把下面所有价格都变成3500.
在这里插入图片描述

四、DQL基本操作(详情见MySQL1)

4.1 DQL查询操作

4.1.1表数据的查询

在这里插入图片描述
在这里插入图片描述

示例
如果某一列数据为null,替换成0并参加运算。

【初识mysql】 mssql 2000 Access DB2 oracle 【mysql安装】 1、官方下载mysql win32 msi 2、点击安装 3、配置 4、查看是否安装成功 通过cmd 输入netstat -a搜索3306端口是否处于listening状态 【mysql服务的启动与停止】 1、右击我的电脑-管理-服务与应用程序-服务-mysql 2、net stop mysql|net start mysqlmysql的配置文件以及数据位置】 1、安装目录下名为mysql.ini文件 2、默认数据位置 配置文件中字段为datadir 3、配置文件中简单的字段的理解 【mysql的登录与退出】 1、通过图形化界面 phpmyadmin mysqlGUI Navicat for MySQL 2、DOS登录或者自带的MySQL Command Line Client mysql -h IP或者域名 -u username -p -P port 回车 PWD 3、exit或者quit(CLI) 【密码的修改】 1、set password = password('密码'); set password for 用户名@域名或者地址 =password('密码'); 2、cmd下输入mysqladmin -uroot -p password 新密码 回车 旧密码 3、通过修改mysql数据库的user表 update mysql.user set password=password('新密码') where host='ip或者域名' and user='用户名' 【忘记密码的解决办法】 1、停止mysql服务 2、mysqld(mysqld-nt) --skip-grant-tables 3、重新打开窗口cmd 4、输入mysql -u root -p 回车 无需密码 5、通过上述密码修改方法3修改密码 6、flush privileges 7、exit 8、资源管理器kill进程mysqld 或者 mysql-nt 不要把mysql.exe 9、net start mysql 【简单的用户权限管理】 1、用户的创建 create user 用户名 identified by 密码 2、删除用户 drop user 用户名 3、用户重命名 rename user 原始名称 to 新名称 注释 : 用户名@localhost 只能本地登录 用户名@% 可以通过非本地登录 如果本地登录将%自动转换为localhost 【用户的权限】 1、初始用户只具有连接权限不具有其他权限,而且连接这个权限无法收回 只能通过删除用户 2、授权grant 收回权限revoke 3、授权语法 grant 权限 on 数据库.表 to 用户@域名或者IP identified by '密码' 4、收回权限 revoke 权限 on 数据库.表 from 用户@域名或者IP max_queries_per_hour 每个小时最大查询的数 0没有限制 max_updates_per_hour 每个小时最大更新数据的次数 0没有限制 max_user_connects 最大并发数 连接数 0没有限制 max_connects_per_hour 每个小时最大的并发数 0没有限制 【数据库的基本CLI】 1、show databases; 查看服务器中的所有数据库 2、select user(); 查看当前用户 3、select version(); 版本 4、show processlist; 在线详细信息 5、show warnings; 警告信息 6、use 数据库名称; 调用具体的数据库 7、show grants [for 用户名@域名或者IP]; 查看用户权限 8、select database(); 产看当前使用数据库数据库的创建和删除】 1、create database [if not exists] 数据库名称 2、drop database 数据库名称 【表的创建、修改和删除】 1、创建 create table [if not exists] 表名( 字段名称 类型(大小) 属性, 字段名称 类型(大小) 属性, 字段名称 类型(大小) 属性, ⋯⋯ )engine=innodb default charset=编码; create table [if not exists] 表名( 字段名称 类型(大小), 字段名称 类型(大小), 字段名称 类型(大小), ⋯⋯ 属性, 属性, ⋯⋯ )engine=innodb default charset=编码; 2、数据类型 日期类型:date Y-M-D 20110105(自动去除其中的非法符号!,*) time h:m:s 14:12:11 datetime date+time Y-M-D H:m:S timestamp:更新时日期值也会更新 timestamp default current_timestamp:只记录第一次插入的时间 数值类型: tinyint 0|1 smallint mediumint int[M] M默认11 人为设定系统也会根据自动分配空间(类似char和varchar) bigint float[(M,D)] 10的(M-D)次方->代表最大值 D->代表保留位数不够补0 //For float(M,D), double(M,D) or decimal(M,D), M must be >= D //只写M 0-24代表float精确度总的十位数超过6位用科学计数法,小数超出四舍五入,不够不补0 //float和double在desc中不会显示精确度 //select 中通过 float查询的前提是MD都有或者是double double //25-53代表double 但是不可以写精确度 >15位用科学计数法 字符串类型 char varchar text blob enum(v1,v2,v3⋯⋯65535) 插入的值是其中的一个 set(v1,v2,v3⋯⋯64) 插入的值是其中的0到多个 3、属性 1、自增属性 auto_increment 2、不为空not null | null 3、默认值default 4、主键primary key 5、列值的唯一 unqiue 6、索引 index|key 7、前导0 zerofill 属性可以写在末尾的主键 列值唯一 索引 4、查看表 desc 表名 show columns from 表名 show columns in 表名 5、修改表 alter table 表名 a) drop 字段 注意当表中字段为1个的时候不能删除 b) add 字段名 类型[大小] 属性,add 字段名 类型[大小] 属性⋯⋯ [after|first 字段] c) modify 字段名 类型[大小] 属性,modify 字段名 类型[大小] 属性⋯⋯ [after|first 字段] d) change 原始的字段名 新的字段名 字段名 类型[大小] 属性,modify 字段名 类型[大小] 属性⋯⋯ [after|first 字段] e) rename 新的表名 (方法:rename table 旧的表名 to 新的表名) f) engine=存储引擎(type不建议使用) g) charset=字符编码 6、删除表格 drop table 表名 【表创建例题】 例题1:创建一个表用于存储用户上传的文件信息 (文件的原始名,大小,路径,文件名,类型,上传人,是否共享) 例题2:创建一个表用于存储用户注册信息 (用户名,密码,id,email,安全问题,安全问题答案) 例题3:创建一个表用户留言板信息 (给谁留言,是谁留的言,留言时间,留言内容) 【数据库和表相关信息的一些CLI】 1、show create database 数据库名 2、show create table 表名 3、show status; 4、show table status like ""; 5、show variables; 【数据库的备份与导入】 1、备份cmd->mysqldump -u root -p 数据库 [表名] > 文件名.sql->回车->密码 注意:cmd下运行mysqldump >覆盖 >>追加 2、还原:进入mysql下->source 路径 3、备份和还原可以进入配置文件所在数据目录下拷贝 【CURD操作】 1、表中记录的写入 insert into 表名[(字段1,字段2,字段3,⋯⋯)] values(值1,值2,值3,⋯⋯),(值1,值2,值3,⋯⋯) 2、insert into 表名 set 字段1=值1,字段2=值2,字段3=值3⋯⋯ 3、表中记录的删除 delete from 表名 where 条件 4、表中记录的更新 update 表名 set 字段1=值1,字段2=值2,字段3=值3⋯⋯ [where 条件] 5、表中记录的查询 select *|字段[,字段] [as 新字段名称] from 表名 [where 条件 group by 字段 having 附加条件 in() order by ASC|DESC limit开始,长度] 6、where 条件的理解 = | !=() | between and | or | and | in | not 【mysql中的简单的数学函数】 1、统计函数 count()|max()|min()|avg()|sum() 2、mysql运算 php运算一致(除逻辑运算&& || !) 3、数学函数 pi()|round()|rand()|ceil()|floor|sin()|abs()|mod() 4、特殊的 like '' %->任意 regexp '' ->posix 【mysql中的字符串和时间】 concat(字符1,字符2...) 字符连接 instr(字符串,字符) 寻找字符所在字符串的位置 char ascii编码 转化为字符 ord 字符转化为ascii编码 substring(字符串,开始位置,长度); length(字符串) 字符串长度 substr(字符串,开始位置,长度); lpad 往左边填充 rpad 往右边填充 lower 转化为小写 upper 转化为大写 select left(字符串,长度);从左边取几位 select right(字符串, 长度);从右边取几位 select curdate(); 获取当前的日期 select curtime(); 获取当前的时间 select now();获取当前的时间跟日期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值