MySQL知识点总结2

MySQL

关系型数据库:主要是通过关系表的形式

非关系型数据库No SQL(Not only SQL):存储方式灵活,

DBMS:数据库管理系统

数据库系统:由数据库管理系统和...

MySQL:是一个DBMS(数据库管理系统)

关系模型:二维表模型

网络型的关系型模型:

Oracle 、DB2 、Sybase 、MySQL、MS SQL Server

对数据库层面进行操作:

cmd MySQL -uroot -p enter

自带的数据库

information_schema:保存着其他数据库的信息

mysql

test:(可以随意修改)

查看 SHOW DATABASES [LIKE %或者_];

新建 CREATE DATABASE [IF NOT EXISTS] 数据库名;

CREATE DATABASE IF NOT EXISTS test1902;-- 创建数据库

USE test1902;-- 使用指定的数据库

根据数据类型分配内存空间

所占字节不同:所占内存不同,所表示范围不同

字符型:CHAR 定长字符串

VARCHAR 变长字符串

例如: CHAR(30)最多分配30,不满30也是30

VARCHAR(30)最多分配30,不满30,就按实际大小分配内存

CREATE TABLE student(

student_name VARCHAR(30),

student_age INT(4)

);

SHOW TABLES;-- 查看表

DROP TABLE 表名;--删除表

DESC student;--展示表

修改表中的字段

ALTER TABLE student ADD COLUMN student_id INT(10);//新增列名

ALTER TABLE student MODIFY COLUMN student_id CHAR(30);//修改列的类型

ALTER TABLE student DROP COLUMN student_id ;//删除列名

ALTER TABLE student CHANGE COLUMN student_age age INT(4);//修改列名

ALTER TABLE student CHANGE COLUMN age age VARCHAR(4);//修改age字段的类型(另一种方式)

数据库约束

NOT NULL非空

AUTO_INCREMENT 自增

PRIMARY KEY主键约束:不能重复,不能为空

UNIQUE 唯一约束:不能重复

------------------------------------------------------------------------------------------------------------------------------------

关系型数据库:主要是通过关系表的形式

非关系型数据库No SQL(Not only SQL):存储方式灵活,

DBMS:数据库管理系统

数据库系统:由数据库管理系统和...

MySQL:是一个DBMS(数据库管理系统)

关系模型:二维表模型

网络型的关系型模型:

Oracle 、DB2 、Sybase 、MySQL、MS SQL Server

对数据库层面进行操作:

cmd MySQL -uroot -p enter

自带的数据库

information_schema:保存着其他数据库的信息

mysql

test:(可以随意修改)

SQL结构化查询语言

查看 SHOW DATABASES [LIKE %或者_];

新建 CREATE DATABASE [IF NOT EXISTS] 数据库名;

CREATE DATABASE IF NOT EXISTS test1902;-- 创建数据库

USE test1902;-- 使用指定的数据库

根据数据类型分配内存空间

所占字节不同:所占内存不同,所表示范围不同

字符型:CHAR 定长字符串

VARCHAR 变长字符串

例如: CHAR(30)最多分配30,不满30也是30

VARCHAR(30)最多分配30,不满30,就按实际大小分配内存

CREATE TABLE student(

student_name VARCHAR(30),

student_age INT(4)

);

SHOW TABLES;-- 查看表

DROP TABLE 表名;--删除表

DESC student;--展示表

修改表中的字段

ALTER TABLE student ADD COLUMN student_id INT(10);//新增列名

ALTER TABLE student MODIFY COLUMN student_id CHAR(30);//修改列的类型

ALTER TABLE student DROP COLUMN student_id ;//删除列名

ALTER TABLE student CHANGE COLUMN student_age age INT(4);//修改列名

ALTER TABLE student CHANGE COLUMN age age VARCHAR(4);//修改age字段的类型(另一种方式)

数据库约束

NOT NULL非空

AUTO_INCREMENT 自增

PRIMARY KEY主键约束:不能重复,不能为空

UNIQUE 唯一约束:不能重复

FOREIGN KEY:外键

对数据库中的数据进行操作

单表操作

CREATE TABLE student(

s_id INT(4) PRIMARY KEY ,

s_name VARCHAR (10) NOT NULL,

s_math INT(4) NOT NULL,

s_english INT(4) NOT NULL

);

SELECT * FROM student;-- 查询表中所有字段数据

-- 添加一条语句

-- INSERT INTO 表名 (字段名1,字段名2...) VALUES (值1,值2...);

-- 添加多条语句

INSERT INTO student VALUES (1,'aa',98,86);

INSERT INTO student VALUES (2 ,'bb',98,86),(3,'cc',98,86),(4,'dd',98,86);

-- INSERT INTO 表名 (字段名1,字段名2...) VALUES (值1,值2...),(值1,值2...),(值1,值2...)...;

-- 删除数据

-- DELETE FROM student WHERE s_id=2;

-- DELETE FROM student; 删除整个表的所有数据,自动增长将在原来的值的基础上进行增长

DELETE FROM student WHERE s_id=2;

-- TRUNCATE TABLE student ; 清空指定表,清空后自动增长将不保留原来的值,从1开始

-- 修改(更新)

-- UPDATE student SET s_name='李强' ,s_math=98,s_english=86 WHERE s_id=2; 更新指定数据

SELECT *FROM student WHERE s_id=1;

SELECT s_id,s_name FROM student; -- 查询指定列的数据

SELECT s_id student_id,s_name student_name FROM student; -- 查询指定列,并为指定列去别名,翻译

SELECT *FROM student WHERE s_name='AA';-- 字符串,日期用单引号,对于大小写都可以查出来,原因:MySQL里面默认不区分大小写,要区分大小写要加约束

-- ALTER TABLE student CHANGE COLUMN s_name s_name VARCHAR (10) INERY;

ALTER TABLE student ADD COLUMN s_birthday DATE;

INSERT INTO student VALUES (5,'ee',99,100,'19990816'); -- 日期如果不转成特定格式,MySQL会自动转成连接符连接格式

SELECT * FROM student WHERE s_math<99; -- 查询数学成绩小于99的数据

SELECT * FROM student WHEREs_math BETWEEN 85 AND 90; -- 注意 [85,90] ,包含边界,查询数学成绩在85到90之间的

SELECT * FROM student WHERE s_id IN (1,3,5,7);

-- LIKE 模糊查询

-- SELECT*FROM student WHERE s_name LIKE '李%'; -- % 占多个(多个字符) , _ 占一个(一个字符)

-- SELECT*FROM student WHERE s_name LIKE '_强_'; -- 名字中间那个字为 强

-- 排序

SELECT * FROM student ORDER BY s_math DESC; -- ORDER BY 排序(默认升序ASC(ascond)), 指定降序用 DESC(descond)

-- 多表查询

-- 交叉连接 返回2个表的笛卡尔积

-- SELECT*FROM student,teacher;

-- 内连接 INNER JOIN ON(条件) 在交叉的结果中去寻找ON后面符合条件的行

-- SELECT *FROM student INNER JOIN teacher ON student.t_id =teacher.t_id;

-- 外连接 --左外连接 LEFT JOIN ON ---以左边的表为基准

-- SELECT *FROM teacher LEFT JOIN student ON teacher.t_id=student.t_id;

-- 右外连接 RIGHT JOIN ON --- 以右边的表为基准、

-- SELECT *FROM teacher RIGHT JOIN student ON teacher.t_id=student.t_id;

-- 子查询: 后一个查询的结果是前一个查询的条件

-- SELECT*FROM student LEFT JOIN teacher ON teacher.t_name LIKE '%王%' AND teacher.t_id=student.t_id;

-- SELECT s_name,t_name FROM student WHERE t_id IN (SELECT t_id FROM teacher WHERE t_name LIKE '%王%');

-- 聚和函数

-- SELECT MAX(s_math) max_math FROM student;

-- SELECT *FROM student WHERE s_math IN (SELECT MAX(s_math) max_math FROM student);//利用子查询,将数学成绩最高的学生信息查询出来

/*

AVG() 取平均值

MAX() 求最大值

MIN() 求最小值

COUNT() 有几行

SUM()返回某个列之和

*/

/* 分组查询

SELECT AVG(s_math) FROM student GROUP BY t_id HAVING t_id=1; -- GROUP BY ... HAVING 条件

SELECT GROUP_CONCAT (s_name) FROM student GROUP BY t_id HAVING t_id=1; -- 注意:后面接条件时,是用HAVING,而不是用WHERE

GROUP BY 有统计的作用

*/

JDBC

一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口

数据持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。

DriverManager驱动管理的类:把驱动加载到程序中来

Connection:连接

Driver接口:Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。 由数据库厂商来实现

发布了81 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43090158/article/details/95084469