mysql笔记整理

1. 启动mysql

a. windows服务管理器

搜索框搜索services.msc寻找mysql后改为自动

b. dos方式 启动
启动关闭
net start mysqlnet stop mysql

注意: 这里启动最好看一下服务中的名称 如sql80

2. 数据库基本操作

创建数据库
create database xxgc

查看已创建的数据库

show create database 数据库名称

修改数据库

ALTER DATABASE 数据库名称
	DEFAULT CHARACTER SET 编码方式
	COLLATE 编码方式_bin ;  (写在一行)

(注:编码方式指压缩方式不同,结果也不同,常见的字符下型编码方式有GBK、ASCLL、UTF-8等等)

删除数据库

DROP DATABASE 数据库名称;(如数据库不存在报错)
DROP DATABASE IF EXISTS 数据库名称;(不报错)
3. 数据表基本操作

注意:这里对数据表的操作需要 先创建数据库,再使用激活数据库,然后创建数据表
创建数据库(见上方)

使用数据库

use 数据库名称

创建数据表

CREATE TABLE 表名
(
字段名1 数据类型 [完整性约束条件]
字段名2 数据类型 [完整性约束条件]
……….
字段名n 数据类型 [完整性约束条件]
);

查看数据表

SHOW CREATE TABLE  数据表名称    查看指定表
SHOW TABLES;                   查看数据库中所有表
DESCRIBE 表名;(或DESC 表名;)

修改数据表(名)

ALTER TABLE 旧表名 RENAME [TO] 新表名;  [to]可加可不加

修改数据表(字段名)

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型(约束性条件)

约束性条件:如valchar(5)
修改属性表(字段数据类型)

ALTER TABLE 表名 MODIFY 字段名 新数据类型;

修改属性表(添加字段)

 ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件][FIRST|ARTER 已存在字段名]
    FIRST可选参数,用于将新添加得字段设置为表的第一个字段
	ALTER可选参数,用于将新添加的字段添加到指定得字段后边

修改属性表(删除字段)

ALTER TABLE 表名 DROP 字段名;

修改属性表(修改字段位置)

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER字段名2

删除数据表

DROP TABLE 表名
4. 数据表的约束(防止数据库插入错误的数据)
约束条件说明
PRIMARY KEY主键约束,用于唯一标识对应的记录
FOREING KEY外键约束
NOT NULL非空约束
UNIQUE唯一性约束
DEFAULT默认值约束,用于设置字段默认值
主键约束

A.单字段主键(可做列级约束、也可做表级约束)
在这里插入图片描述

B.多字段主键(只可做表级约束)
在这里插入图片描述

C.外键约束(用来在两个表的数据之间建立关联,可为一个列或多个列,一个表可以由一个或多个外键。)
D.

CONSTRAINT fk_emp_dept【fk_从表名_主表名】FOREIGN KEY(dept_id【从表字段/外键】) REFERENCES dept(id)【主表字段】

例.创建表dept和员工表emp,在员工表上创建外键。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

E.非空约束(字段不为NULL)

字段名 数据类型 NOT NULL;

F.唯一约束(用于保证数据表中字段的唯一性,即表中的值不能重复出现)

字段名 数据类型 UNIQUE;

G.默认约束(用于给数据表中字段指定默认值,在表中插入一条新纪录时,如没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值。默认值通过defaylt关键字定义的)

字段名 数据类型 DEFAULT 默认值;

设置表字段值自动增加
利用AUTO_INCREMENT约束(可以是任何整数类型,默认情况下,该字段从1开始自增)

字段名 数据类型 AUTO_INCREMENT
5. 记录的操作

向数据表中插入数据

  • 向表中所有字段都插入数据
INSERT[INTO] 表名(字段名1,字段名2,……)必须列出所有字段,[]不写
VALUES(1,2,……); 与字段相匹配
  • 向部分字段插入数据

在这里插入图片描述

  • 插入多条记录
INSERT [INTO] 表名[(字段名1,字段名2,字段名3,,字段名n)]
VALUES(1,2,,值n),
	   (1,2,,值n),
	   ……
       (1,2,,值n);
[]表示可省略 

修改数据表的记录

UPDATE 表名
SET 列名=新数值[]
[WHERE 子句]

注:where子句指定要修改的数据条件,不写改所有,写改满足条件的
将studentinfo中class列改为计算机
将张翠华性别男改为女
将张翠华性别男改为女

数据表记录的删除

DELETE FROM 表名
[WHERE 子句]

注:如不写子句,则将默认整列删除(清除所有语句/清空数据表)

TRUNCATE TABLE 表名;

在这里插入图片描述
删除丽萍的班级信息

6. 查询

基本查询(两个部分:查询字段以及查询的数据表)

SELECT 字段名1,字段名2,……
FROM 表名;

*代表所有列    select * from 表名

2.为列取别名
A.列名 AS 别名
B.列名 别名
例.查询studentinfo表,输出所有学生学号、姓名以及此次查询日期和时间,并分别使用“学生学号”,“学生姓名”,“查询日期”作为别名
在这里插入图片描述
3.使用distinct关键字取消重复查询结果

SELECT DISTINCT 字段 FROM 数据表;

4.使用where语句

SELECT 字段名1,字段名2,……FROM 表名
WHERE 条件表达式;

5.使用模式匹配字符串进行模糊查询(条件不明确)
A.列名 [NOT] LIKE ‘模式字符串’
注:模式字符串…一般字符串或有通配符字符串

通配符
%匹配任意长度的字符串
_匹配任意单个字符

例.查询姓张同学的信息
在这里插入图片描述

B.条件and连接
姓张的女同学信息
在这里插入图片描述

6.使用ORDER BY子句(对结果集中的数据行按指定列排序)

SELECT [ALL|DISTINCT] 要查询的内容
FROM 表名列表
[WHERE 条件表达式]
ORDER BY 列名[ASC|DESC]; ASC为升序,DESC为降序。(不写默认ASC

在这里插入图片描述

7.对数据表进行统计查询
A.使用集合函数(用于查询结果集中指定列进行统计,输出统计值)

集合函数功能描述
COUNT([DISTINCT |ALL]列表达式|*)计算一列中值的个数/COUNT(*)返回行数/不能与DISTINCT一起使用
SUM([DISTINCT|ALL]列表达式)计算一列数据的总合
AVG([DISTINCT|ALL]列表达式)计算一列数据的平均值
MAX([DISTINCT|ALL]列表达式)计算一列数据的最大值
MIN([DISTINCT|ALL]列表达式)计算一列数据的最小值

例 查询studentinfo表,统计学生总人数。

SELECT COUNT(*) AS 学生总人数 FROM 数据表;

在这里插入图片描述
例 查询姓张同学的总人数
在这里插入图片描述
例.选出学号最大的女学生
在这里插入图片描述

B.分组统计/使用GROUP BY子句(对查询结果集按指定的列的值进行分组,列值相同的一组)

SELECT [ALL|DISTINCT]要查询的内容
FROM 表名
[WHERE 条件表达式]
GROUP BY 列表列名
[HAVING 条件表达式]

例 查询信息表,统计男女人数。
在这里插入图片描述

显示语文成绩大于70小于90的学生姓名和学号
在这里插入图片描述

7. 多表链接查询

内连接

SELECT 列名列表
FROM 表名1[INNER] JOIN 表名2
ONAS.列名 比较运算符 表名2.列名;
或
SELECT 列名列表
FROM 表名1,表名2
WHERE 表名1.列名 比较运算符 表名2.列名`在这里插入代码片`

在这里插入图片描述
外连接(表有主从之分)
在这里插入图片描述

SELECT 列名列表
FROM 表名1 LEFT|RIGHT|FULL JOIN 表名2
ON 表名1.列名 比较运算符 表名2.列名

自连接(一个表两个副本之间内连接,必须制定不同别名以区别)
在这里插入图片描述
对数据表进行子查询

  1. 批量比较子查询(子查询结果不止一个,且父查询与子查询之间需要比较运算符连接,需在子查询前加上all或any的谓词)
    注:all 所有为true,表达式为true
    Any 只要一次为true,表达式为true
    在这里插入图片描述

  2. IN子查询(父查询与子查询之间用IN或NOT IN 进行连接,判断剖个属性列的值是否在子查询查找的集合中)

  3. 在这里插入图片描述

  4. EXISTS子查询(子查询前面加上EXISTS运算符或NOT EXISTS运算符

  5. 在这里插入图片描述

8.视图
9. 触发器
10. 数据备份与恢复
11. 用户管理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值