一、mysql

本文详细介绍了MySQL的数据库连接、操作、表的创建与修改、数据管理,包括DML语句(增删改查)及DQL查询。重点讨论了数据字段属性、表的创建语法,并提供了各种示例,如添加、修改和删除数据的命令,以及使用DQL进行数据查询的方法,如WHERE条件语句和逻辑操作符。
摘要由CSDN通过智能技术生成


常用命令

//添加数据
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')

//修改数据
UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];

//删除数据

一、初识MySQL

1.7 连接数据库

//连接数据库f
//方式一
mysql -uroot -p
//方式二
mysql -uroot -p123456

//结尾必须带分号
update user set password=password('123456')where user='root'; 修改密码

flush privileges; 刷新数据库

show databases; 显示所有数据库

use dbname;  打开某个数据库,use+数据库名

show tables;  显示数据库mysql中所有的表

describe user;  显示表mysql数据库中user表的列信息

create database name;  创建数据库


use databasename;  选择数据库
exit; 退出Mysql
? 命令关键词 : 寻求帮助
-- 表示注释

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

2、操作数据库

2.1、结构化查询语句分类

在这里插入图片描述

2.2、数据库操作 (了解)

说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键).

  • 1、命令行操作数据库
  • 创建数据库 : create database [if not exists] 数据库名;
  • 删除数据库 : drop database [if exists] 数据库名;
  • 查看数据库 : show databases;
  • 使用数据库 : use 数据库名;

2.3 数据库的列类型

在这里插入图片描述

列类型 : 规定数据库中该列存放的数据类型

  • 数值类型
    decimal:金融计算的时候,一般使用
    在这里插入图片描述

  • 字符串
    常用varchar
    在这里插入图片描述

  • 日期和时间型数值类型
    在这里插入图片描述

  • null
    在这里插入图片描述

2.4、数据字段属性 (重点)

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

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

2.5、创建数据库表(重点)

create table [if not exists] `表名`(
'字段名1' 列类型 [属性][索引][注释],
'字段名2' 列类型 [属性][索引][注释],
#...
'字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];

说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键).
在这里插入图片描述

-- 目标 : 创建一个school数据库
-- 创建学生表(列,字段)
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 创建表之前 , 一定要先选择数据库
CREATE TABLE IF NOT EXISTS `student` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`address` varchar(100) DEFAULT NULL COMMENT '地址',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

-- 查看数据库的定义
SHOW CREATE DATABASE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student; -- 设置严格检查模式(不能容错了)SET
sql_mode='STRICT_TRANS_TABLES';

关于数据库引擎

INNODB 默认使用
MYISAM 早些年使用
在这里插入图片描述
在这里插入图片描述

2.6、修改数据库

2.6.1 修改表

修改表名 : ALTER TABLE 旧表名 RENAME AS 新表名

添加字段 : ALTER TABLE 表名 ADD字段名 列属性[属性]

修改字段 :
	ALTER TABLE 表名 MODIFY 字段名 列类型[属性]

	ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]

删除字段 : ALTER TABLE 表名 DROP 字段名

在这里插入图片描述

在这里插入图片描述

2.6.2 删除数据表

 DROP TABLE [IF EXISTS] 表名
  • IF EXISTS 为可选 , 判断是否存在该数据表
  • 如删除不存在的数据表会抛出错误

2.6.3 其他数据表操作

1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!

2. 每个库目录存在一个保存当前数据库的选项文件db.opt。

3. 注释:
单行注释 # 注释内容
多行注释 /* 注释内容 */
单行注释 -- 注释内容 (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、
换行等))

4. 模式通配符:
_ 任意单个字符
% 任意多个字符,甚至包括零字符
单引号需要进行转义 \'

5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结
束。delimiter 可修改当前对话的语句结束符。

6. SQL对大小写不敏感 (关键字)

7. 清除已有语句:\c

3、MySQL数据管理 (最重点)

3.1、外键(了解)

  • 添加外键
    方式一

在这里插入图片描述

方式二
在这里插入图片描述

  • 删除外键
    在这里插入图片描述

3.2、DML语言(全部记住,增删改查)

数据库意义 : 数据存储、数据管理

管理数据库数据方法:

  • 通过SQLyog等管理工具管理数据库数据
  • 通过DML语句管理数据库数据

DML语言 : 数据操作语言

  • 用于操作数据库对象中所包含的数据
  • 包括 :
    • INSERT (添加数据语句)
    • UPDATE (更新数据语句)
    • DELETE (删除数据语句)

3.3、添加( INSERT)

INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')

注意 :

  • 由于主键自增,我们可以忽略(如果不写表的字段它会一一匹配)
  • 字段或值之间用英文逗号隔开 .
  • ’ 字段1,字段2…’ 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致 .
  • 可同时插入多条数据 , values 后用英文逗号隔开 .
    在这里插入图片描述
//在后台引入数据库
 <insert id="addUser">
        INSERT INTO easyuser
        (username,password,email,role,state)
        VALUE
        (#{username},#{password},#{email},#{role},#{state})
</insert>

在这里插入图片描述

3.4 修改数据(update命令)

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];

注意 :

  • column_name 为要更改的数据列
  • value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
  • condition 为筛选条件 , 如不指定则修改该表的所有列数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
 <select id="getUpdateUser" resultType="com.urlhouduan.houduan.bean.User">
        SELECT * FROM easyuser WHERE id = #{id}
    </select>

    <update id="editUser">
        UPDATE easyuser SET username = #{username} , password = #{password} ,
        email = #{email} WHERE id = #{id}
    </update>

3.5 删除数据(DELETE命令 和 TRUNCATE)

 <delete id="deleteblack">
        DELETE FROM blacklist WHERE id = #{id}
    </delete>

在这里插入图片描述

注意:区别于DELETE命令

  • 相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
  • 不同 :
    使用TRUNCATE TABLE 重新设置 自增列 计数器归零
    使用TRUNCATE TABLE不会对事务有影响 (事务后面会说)

在这里插入图片描述

4、使用DQL查询数据 (最最最重要)

4.1、DQL语言

DQL( Data Query Language 数据查询语言 )

  • 查询数据库数据 , 如SELECT语句

  • 简单的单表查询或多表的复杂查询和嵌套查询

  • 是数据库语言中最核心,最重要的语句

  • 使用频率最高的语句

  • SELECT语法


4.2、指定查询字段

-- 查询所有学生信息
SELECT * FROM student;

-- 查询指定列(学号 , 姓名)
SELECT studentno,studentname FROM student;

AS 子句作为别名

作用:
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另一个新名称来代替

-- 这里是为列取别名(当然as关键词可以省略)
SELECT studentno AS 学号,studentname AS 姓名 FROM student;
-- 使用as也可以为表取别名
SELECT studentno AS 学号,studentname AS 姓名 FROM student AS s;
-- 使用as,为查询结果取一个新名字
-- CONCAT()函数拼接字符串
SELECT CONCAT('姓名:',studentname) AS 新姓名 FROM student;

DISTINCT关键字的使用

作用 : 去掉SELECT查询返回的记录结果中重复的记录 ( 返回所有列的值都相同 ) , 只返回一条

-- # 查看哪些同学参加了考试(学号) 去除重复项
SELECT * FROM result; -- 查看考试成绩
SELECT studentno FROM result; -- 查看哪些同学参加了考试
SELECT DISTINCT studentno FROM result; -- 了解:DISTINCT 去除重复项 , (默认是ALL)

在这里插入图片描述

使用表达式的列

数据库中的表达式 : 一般由文本值 , 列值 , NULL , 函数和操作符等组成

应用场景 :

  • SELECT语句返回结果列中使用
  • SELECT语句中的ORDER BY , HAVING等子句中使用
  • DML语句中的 where 条件语句中使用表达式
-- selcet查询中可以使用表达式
SELECT @@auto_increment_increment; -- 查询自增步长
SELECT VERSION(); -- 查询版本号
SELECT 100*3-1 AS 计算结果; -- 表达式

-- 学员考试成绩集体提分一分查看
SELECT studentno,StudentResult+1 AS '提分后' FROM result;
  • 避免SQL返回结果中包含 ’ . ’ , ’ * ’ 和括号等干扰开发语言程序.

4.3、where条件语句

作用:用于检索数据表中 符合条件 的记录
搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假.

逻辑操作符

在这里插入图片描述

-- 满足条件的查询(where)
SELECT Studentno,StudentResult FROM result;

-- 查询考试成绩在95-100之间的
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult>=95 AND StudentResult<=100;

-- AND也可以写成 &&
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult>=95 && StudentResult<=100;

-- 模糊查询(对应的词:精确查询)
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult BETWEEN 95 AND 100;

-- 除了1000号同学,要其他同学的成绩
SELECT studentno,studentresult
FROM result
WHERE studentno!=1000;

-- 使用NOT
SELECT studentno,studentresult
FROM result
WHERE NOT studentno=1000;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值