文章目录
数据库:
数据在内存:
- 优点:读写速度快。
- 缺点:程序结束数据丢失。
数据保存到文件:
- 优点:数据可以永久保存。
- 缺点:1.频繁的IO操作,效率低。
2.数据的管理非常不方便,需要把所有的数据整体都读取出来才能操作。
数据库:
- 数据永久保存。
- 管理方便。
Mysql
一:数据库操作:
创建数据库
CREATE DATABASE school DEFAULT CHARACTER SET UTF8;
- SHOW DATABASES; 展示所有数据库。
删除数据库
DROP DATABASE school;
二:数据库表的操作:
创建表
-- 建表
CREATE TABLE student(
id INT,
`name` CHAR(10),
age INT,
gender CHAR(1)
)
--查找所有表
SHOW TABLES;
查看表结构
-- 查看表结构
DESC student;
删除表
--删表
DROP TABLE student;
更改表结构
1.添加字段
-- 添加字段
ALTER TABLE student ADD COLUMN address CHAR(255);
2.修改字段
-- 修改字段
AlTER TABLE student CHANGE address addr char(20);
3.删除字段
-- 删除字段
ALTER TABLE student DROP COLUMN addr;
修改表名
-- 修改表名
ALTER TABLE student RENAME TO teacher;
添加主键和设置自增:
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
name
CHAR(20),
age INT,
gender char(1)
)
三:表的基本操作
1.增
- 1
-- 插入列(一次插一条)
INSERT INTO student(`name`,age,gender) VALUES("张三",1,"男");
- 2
--插入列(一次插多条)
INSERT INTO student(`name`,age,gender) VALUES("李四",2,"女"),("王五",3,"男");
2.改
--修
UPDATE student SET gender="男" WHERE `name`="李四";
3.删
--删
DELETE FROM student WHERE `name`="李四";
4.查
SELECT * FROM student;
查询表的所有内容,不推荐,内容少时可以操作,建议需要哪个列就找哪个列。
- 1
-- 查询指定列
SELECT `name`,age,gender FROM student WHERE id=1;
- 2
-- 查询时候合并列,字段可以当成java里面的变量来运算
SELECT id,`name`,(php+java) AS '总成绩' FROM student;
-
– 查询时候去掉重复的记录
SELECT DISTINCT address FROM student; -
查询时候添加常量列,通过as可以起别名
SELECT id,name,age AS ‘年龄’ FROM student;
拓展:
1.聚合查询
2.查询排序
3.分组查询
- 1
--分组查询
-- select后面的查询都是基于group by之后的
SELECT gender,COUNT(id) AS "个数" FROM student GROUP BY gender;
- 2
-- group by之后的条件查询使用having
SELECT gender,COUNT(id) AS "个数" FROM student GROUP BY gender HAVING COUNT(id)>2;