MySQL单表与多表

基本介绍

X64是指CPU是64位版本的;

X86是指CPU是32位版本的;

数据在内存:

优点:读写速度快;

缺点:程序结束后数据丢失

保存到文件:

优点:数据可以永久保存

缺点:(1)频繁的IO操作,效率不高

​ (2)数据的管理非常不方便,需要把所有数据整体都读取出来才能操作

数据库:

1.数据永久保存

2.数据管理非常方便


数据库是以表为组织单位存储数据的。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


PRIMARY KEY 主键,不能重复,唯一确定一条记录(unique+not null)

AUTO_INCREMENT 自动增长

varchar(10)、char(10)区别:

相同点:都可以最大放10个字符

不同点:

  • char(10)不管输入的是多少都会占10个字符,例如输入名字“张三’'只有两个字符,但是使用char(10)在数据库里面还是占10个字符的空间。

  • 使用varchar(10)最大支持是10个字符,但是实际长度就是输入字符长度,例如输入名字”张三“只有两个字符,那么在varchar(10)里面就只占两个字符。


-- 列出所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE java2207 DEFAULT CHARACTER SET utf8;

-- 删除数据库
DROP DATABASE java2207;

----------------------------------------
-- 数据库表的操作
-- 切换数据库
USE DATABASE java2207;

-- 创建表
CREATE TABLE student(
	id INT,
    `name` CHAR(10),
    age INT,
    gender CHAR(1)
);

-- 查看所有表
SHOW TABLES;

-- 查看表的结构  description 描述
DESC student;

-- 删除表
DROP TABLE student;

-- 更改表的结构
-- 添加字段
ALTER TABLE student ADD COLUMN address CHAR(10);
-- 删除字段
ALTER TABLE student DROP COLUMN address;
-- 修改表的字段
ALTER TABLE student CHANGE address addr CHAR(20);
-- 修改表的名字
ALTER TABLE student RENAME TO stu;

-- 创建表
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
    `name` CHAR(10),
    age INT,
    gender CHAR(1)
);
-- *代表查询所有的列
SELECT * FROM student;

-- 插入数据
INSERT INTO student(id,`name`,age,gender) VALUES(1,'wangwu',23,'男');
INSERT INTO student(id,`name`,age,gender) VALUES(3,'赵六',23,'男');
INSERT INTO student(id,`name`,age,gender) VALUES(4,'赵六22',33,'男');
-- 插入部分字段(必须把前面的字段名都写上)
INSERT INTO student(`name`,age,gender) VALUES('小张11',23,'男');
-- 一次插入多条数据
INSERT INTO student(`name`,age,gender) VALUES('小张77',23,'男'),('小王',22,'男');

-- 修改数据
UPDATE student SET age=age+1;
UPDATE student SET age=age+1 WHERE id=7;

-- 删除数据
DELETE FROM student; -- 删除表中所有数据(很少使用,非常危险)
DELETE FROM student WHERE age=24; -- 所有age是24的数据都被删除了,可能有很多条数据都是age=24
DELETE FROM student WHERE id=12; -- 因为id是主键是唯一的,所以根据id删除只能删除唯一的一条数据
-- TRUNCATE删除表里面所有数据,自增的id会重新初始化为初始值1
TRUNCATE TABLE student;


-- 查询数据
-- 显示所有列(字段)数据
SELECT * FROM student; -- 学习的时候可以写*,但是在企业开发中需要什么字段就写什么字段
SELECT id,`name`,age FROM student;
-- 查询指定列
SELECT `name`,age FROM student;
-- 查询的时候添加常量列,通过as可以起别名
SELECT id,`name`,age AS '年龄','java2207' AS '班级' FROM student;

在这里插入图片描述

-- 查询的时候可以合并列,字段可以当成java里面的变量来运算
SELECT id,`name`,(php+java) AS '总成绩' FROM student;
-- 查询的时候去掉重复的记录
SELECT DISTINCT address FROM student;

-- 条件查询where
SELECT * FROM student WHERE `name`='小王';

-- 逻辑条件:and(同时成立) or(只要一个成立)
SELECT * FROM student WHERE `name`='小王' AND address='青岛';
SELECT * FROM student WHERE `name`='小王' OR address='北京';

-- 比较运算:> < >= <= !=
SELECT * FROM student WHERE java>=70 AND java<=80;
--between and (等价于>= and <=)
SELECT * FROM student WHERE java BETWEEN 70 AND 80;
-- 查询地址不是青岛的学生信息
SELECT * FROM student WHERE address!='青岛';

--聚合查询
--聚合查询函数:sum(),avg(),max(),min(),count()
--统计学生php总成绩(sum求和)
SELECT SUM(php) AS 'php总成绩' FROM studnet;
--统计学生php平均成绩
SELECT AVG(php) AS 'php平均成绩' FROM student;
--统计学生php的最大值
SELECT MAX(php) AS 'php最大值' FROM student;
--统计学生表里面一共有多少学生
SELECT COUNT(*) AS 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值