MySQL是DBMS软件系统,通过这些系统来维护管理数据库。
DBMS类似于用于和数据库之间的桥梁。
下载免费的MySQL 社区版,安装后需要下载MySQL workbench vscode phpmyadmin等工具来接入MySQL。
MySQL可以管理多个数据库的,数据库存放在某台主机上面,数据库上级是服务器,服务器是用来作为数据库的,每台服务器可以有多个数据库,MySQL里的数据库称为schema,schema里面可以有不同的table(表格)。
官网: https://www.mysql.com/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VulDSNC3-1686821300640)
点击社区版
下载
安装后打开控制台(快捷键win+r)
输入:
mysql -uroot -p
MySQL大致分为三类:
1、整数类型
2、浮点数类型
3、定点数类型
4、日期类型
5、时间类型
6、字符串类型
Show databases;
Create database huang;
Drop database huang;
语法:
CREATE TABLE 表名( 属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件]
);
约束:
标识 | 说明 |
---|---|
PRIMARY KEY | 属性为该表的主键,可以唯一的标识对应的记录 |
FOREIGN KEY | 属性为该表的外键,与某表的主键关联 |
NOT NULL | 属性不能为空 |
UNIQUE | 属性的值是唯一的 |
AUTO_INCREMENT | 属性的值自动增加 |
DEFAULT | 设置默认值 |
实例:
查看基本表的结构
DESCRIBE(DESC) 表名;
查看表的详细结构
SHOW CREATE TABLE 表名;
修改表名
ALTER TABLE 旧表名 RENAME 新表名;
修改字段
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型
增加字段
ALTER TABLE 表名 ADD 属性名 1 数据类型 [完整性约束条件] [FIRST | AFTERR 属性名 2]
删除字段
ALTER TABLE 表名 DROP 属性名
DROP TABLE 表名
数据查询 重要项,简称sql语句。
此处建了一个表hun(内容随机):
SELECT hun.`name` FROM hun
查询多行,用逗号隔开。
SELECT hun.`name`,hun.sex FROM hun
SELECT * FROM hun
SELECT hun.`id`,hun.`name`,hun.`sex`,hun.`age`-18 FROM hun
DISTINCT
在原有表上加了一行重复项
SELECT DISTINCT hun.`name` FROM hun
查询大于18岁的
SELECT * FROM hun WHERE hun.`age`>18
查询小于18岁的
SELECT * FROM hun WHERE hun.`age`<18
查询17-18这个范围之间的人物。
SELECT * FROM hun WHERE hun.`age` BETWEEN 17 AND 18
SELECT * FROM hun WHERE hun.`name` IN ('黄昏','夏目')
SELECT * FROM hun WHERE hun.`name` LIKE '黄%'
SELECT * FROM hun WHERE hun.`name` LIKE '%黄'
SELECT * FROM hun WHERE hun.`name` LIKE '%黄%'
SELECT * FROM hun WHERE hun.`name` LIKE '黄_'
此处我修改了表单,新增了一个空值。
查询为空的
SELECT * FROM hun WHERE hun.`sex` IS NULL
查询不为空的
SELECT * FROM hun WHERE hun.`sex` IS NOT NULL
查询性别是男,年龄大于18
SELECT * FROM hun WHERE hun.`sex`='男' AND hun.`age`>18
Order by子句用来排序的。
ASC 升序
DESC 降序
例子:根据年龄排序。
SELECT * FROM hun ORDER BY hun.`age` ASC
SELECT * FROM hun ORDER BY hun.`age` DESC
SELECT COUNT(*) FROM hun
例子:计算所有人员年龄的总和。
SELECT SUM(hun.`age`) FROM hun
将查询结果按某一列或多个列分组,值相等就是一组。
例子:男女分组(GROUP BY hun.sex
)。
SELECT COUNT(hun.`age`),hun.`sex` FROM hun GROUP BY hun.`sex`
此时再新加一个表格,内容如下,和上面用到的表格进行连接查询。
等值连接查询:
SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s,hun stu WHERE s.`h_id`=stu.`id`
不等值连接查询:
!=
<>
外连接分为:左外连接和右外连接。
SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s LEFT OUTER JOIN hun stu ON (s.`h_id`=stu.`id`)
SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s RIGHT OUTER JOIN hun stu ON (s.`h_id`=stu.`id`)
新建表格,内容如下: