mysql第一天
1. Mysql的安装
| datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" |
1.2 启动MySQL服务

1.3 MySQL 的登录和退出(cmd命令行窗口)
| mysql -h(ip地址) -uroot -proot |
| mysql --host=ip地址 --user=root --password=root |
2.SQL
- 定义:SQL(Structured Query Language):结构化查询语言
2.1 SQL的作用
- 所有关系型数据库的查询规范,不同数据库都支持
- 通用数据库操作语言,可以用于不同数据库系统
- 不同的数据库SQL有一定区别
2.2 SQL 语句类别
-
DDL(数据定义语言):例如:建库,建表
-
DML(数据操纵语言):例如:对表中的记录增删改
-
DQL(数据查询语言):例如:对表中的查询操作
-
DCL(数据控制语言):例如:对用户权限控制
-
图解

2.3 SQL的语法规范
-
语句以分号结尾
-
不区分大小写
-
3种注释
注释的语法 | 说明 |
---|
–空格 | 单行注释 |
/**/ | 多行注释 |
# | MySQL的特有注释 |
-
图解



3.DDL(操作数据库,表)
3.1 操作数据库:CRUD
- C(Create):创建
- R(Retrieve):查询
- U(Update):改
- D(Delete):删
- 使用数据库
R.1: 查看所有数据库的名称
R.2:查看某个数据库的字符集(查看某个数据库的创建语句)
| show creat database mysql(数据库名称); |

C.1 创建一个数据库
| creat database db1(数据库名称); |

C.2创建一个数据库(看数据库名是否存在,存在才创建)
| create database if not exists db1(数据库名); |

C.3 创建一个数据库以gbk为编码
| CREATE DATABASE IF NOT EXISTS db4 CHARACTER SET gbk; |

U.1 修改数据库的字符集
| alter database 数据库名称 character set 字符集名称; |

D.1 删除数据库(判断是否存在,存在再删除)
| drop database if exists db4; |

使用数据库
1. 查询当前正在使用的数据库名称

2. 使用数据库(进入数据库)

4.DDL:操作表
R.1 查询某个数据库中所有的表的名称

R.2 查询某个表中的结构

C.1 创建表
| create table 表名{ |
| 字段名1 字段类型, |
| 字段名2 字段类型, |
| ... |
| 字段名n 字段类型 |
| } |
常用的数据类型
类型 | 语法 | 示例 |
---|
整数(int) | int | age int, |
小数(double) | double | score double(5,2),表示最大长度为5,保留2位小数 |
日期(date) | date | atime date,取值为yyyy-MM-dd |
日期(datetime) | datetime | atime datetime,取值为yyyy-MM-dd HH:mm:ss, |
时间戳类型(timestamp) | timestamp | atime timestamp,取值为yyyy-MM-dd HH:mm:ss, |
字符串类型(varchar) | varchar() | name varchar(8),8代表最大字符为8 |
注意点
- 时间戳类型如果不给这个字段赋值,或赋值为null,则默认使用当前系统时间,来自动赋值
示例
| create table student( |
| id int, |
| age int, |
| score double(4,2), |
| birthday date, |
| insert_time timestamp |
| ) |

C.2 复制一个相同的表
| create table stu like student; |

D.1 删除表
| drop table if exists 表名; |
| drop table 表名; |

U.1 修改表名
| alter table 表名 rename to 新的表名; |

R.1 查看一个表的字符集

R.3 修改一个表的字符集
| alter table 表名 character set 字符集的名称; |

U.2 表中添加一列
| alter table stu add 列名 数据类型 |

U.3 修改列的名称,数据类型
| alter table 表名 change 列名 新列名 新数据类型; |

| alter table 表名 modify 列名 新数据类型; |

D.2 删除表中的某一列

5.DML(增删改表中记录)
5.1添加数据
| insert into 表名(列名1,列名2,列名3...列名n) values(值1,值2,值3.....值n) |
| |
| |
| |
| insert into 表名 values(值1,值2,值3....值n) |


5.2 删除数据
| delete from 表名 [where 条件表达式]; |
| |
| delete from 表名; |
| |
| |
| |
| truncate table 表名; |


注意点
- 第二种方法删除记录不推荐(表中多少记录,执行多少次删除操作,效率低)
- 第三种方法先删除表,再创建表,效率高
5.3 修改数据
| update 表名 set 列名1=值1,列名2=值2... where 条件 |


6. 查询表中的记录(DQL)
| select |
| 字段列表 |
| from |
| 表名列表 |
| where |
| 条件列表 |
| group by |
| 分组列表 |
| having |
| 分组之后的条件 |
| order by |
| 排序 |
| limit |
| 分页限定 |
6.1 基础查询
6.2 多个字段的查询
| |
| CREATE TABLE student3 ( |
| id INT, |
| NAME VARCHAR(20), |
| age INT, |
| sex VARCHAR(5), |
| address VARCHAR(100), |
| math INT, |
| english INT |
| ); |
| INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男',' |
| 杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩 |
| ',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港 |
| ',99,99),(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65); |
| |
| |
| |
| SELECT *FROM student3; |
| |
| |
| |
| |
| SELECT NAME,age FROM student3; |



6.3 去除重复的结果集


6.4 计算列的和


6.5 起别名
| SELECT NAME AS 姓名,math AS 数学,english AS 英语,math+IFNULL(math+english,0) AS 总分 FROM student3; |

| SELECT NAME 姓名,math 数学,english 英语,math+IFNULL(math+english,0) 总分 FROM student3; |

7.DQL(条件查询)
1.>、<、<=、>=、=、<>
2.BETWEEN…AND
3.IN(集合)
4.LIKE ‘张%’
5.IS NULL
6.and 或 &&
7.or 或 ||
8.not 或 !
7.1 查询关系表达式(>,<,=…)




7.2 between…and…查询
- 查询年龄20到30之间
- && 连接关系表达式
- and 连接关系表达式
- age between 20 and 30



7.3 or 或者 || 和IN(集合)


7.4 is null 和 is not null
- 不能用等号判断值是否为null
- 需要使用 is null判断



7.5 like(模糊查询)




8.总结
8.1 数据库的操作
8.2 库中表的操作
| create table student{ |
| id int, |
| name varcha(10), |
| age int |
| } |
8.3 表中数据的操作
| insert into 表名(列名)values(值); |
| update 表名 set 列名=值 where 条件; |
| delete from 表名 where 条件; |
| truncate [table] 表名; |
| selete 字段名 as 别名 from 表名; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!