修改指定库的编码
ALTER DATABASE 库名 CHARACTER SET 新编码名
*ALTER DATABASE dt55_account CHARACTER SET gbk;
DDL之对表的增删改查
DDL
- 创建库,创建表 关键字 CREATE
- 删除库,删除表 关键字 DROP
- 修改库,修改表 关键字 ALTER
- 查询库,查询表 关键字 SHOW SELECT
DML
- 添加数据:INSERT
- 删除数据:DELETE
- 修改数据:UPDATE
- 删除一整张表中的数据: TRUNCATE TABLE 表名(自增字段会重新开始排序。)
- 删除一整张表中的数据: DELETE FROM 表名 WHERE 1=1(自增字段不会重新开始排序。)
DQL
- 查询数据:SELECT
*创建一张表:
CREATE TABLE 表名(字段名1,数据类型,字段名2,数据类型...);
*删除表:
DROP TABLE 表名;
*查询:
1. 查询一张表的机构:
DESC 表名;
2. 打印某一张表sql创建信息:
SHOW CREATE TABLE 表名;
*修改表:
1. 表重命名:
RENAME TABLE 旧表名 TO 新表名;
2. 添加字段信息
ALTER TABLE 表名 ADD 字段名 数据类型;
3. 删除表中的字段:
ALTER TABLE 表名 DROP 被删除的字段名;
4. 表中字段重命名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段名数据类型;
5. 修改表中字段类型长度(不可修改字段类型)
ALTER TABLE 表名 CHANGE 字段名 字段名 新长度;
例子:
=== 往bank中添加字段birthday
*ALTER TABLE bank ADD birthday DATE;
*UPDATE bank SET birthday ='2020-08-09' WHERE id = 1;
对某一数据库的备份和还原
MD,老子的图损坏了,论备份的重要性。
第一种通过命令:
备份:
cmd⇒ mysqldump -uroot -p密码 需要备份的数据库名>位置+备份后的sql脚本名
还原:进入mysql环境==>创建一个库==>使用库==>还原
create database 库名
use 库名
source 位置+备份数据库脚本
第二种通过sqlyog工具:
选中需要备份的数据库==>右键==>备份/导出==>转储到sql。
例子:mysqldump -uroot -p account >C:\account_back.sql
数据类型的属性
MYSQL中常见的数据类型:VARCHAR(n) FLOAT,INT,BIGINT(n),DATE,DATETIME,TEXT
1. 默认值:DEFAULT '数据默认值'
2. 非空:NOT NULL,如果某一个字段被NOT NULL修饰,此字段必须天写
3. 主键:PRIMARY KEY,主键必须唯一且不能重复
4. 唯一键:UNIQUE 被UNIQUE修饰的数据,不能够重复 。*和主键的区别:一个表里可以又很多个UNIQUE字段。
5. 自动增长: AUTO_INCREMENT 默认增1。使用DELETE 删除数据,顺序不会改变,使用TRUNCATE 删除所有数据,顺序会重新开始。
例子:
CREATE TABLE students(
#主键 自动增长
id INT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '学生编号',
#性别默认为男
gender VARCHAR(2),DEFAULT '女' COMMENT '性别';
#字段 非空
className VARCHAR(20) NOT NULL COMMENT '班级';
#手机号不能重复
phoneNumber VARCHAR(20) UNIQUE COMMENT '手机号'
);
排序 ORDER BY 字段 ASC/DESC
降序 ORDER BY 字段名 DESC;
SELECT * FROM users ORDER BY JavaScore ASC;
升序 ORDER BY 字段名 ASC;
SELECT * FROM users ORDER BY JavaScore ASC;
*排序用在查询语句中
*排序的字段可以是数值类型也可以是VARCHAR类型
聚合函数
*在MYSQL中函数使用SELECT调用,SELECT 函数名(字段) [FROM 表名]
*MYSQL提供好的函数
找出最大值:max(字段名)
例子:
SELECT MAX(javaScore) AS maxScore FROM users;
找出最小值:min(字段名)
例子:
SELECT MIN(javaScore) AS minScore FROM users;
**SELECT MIN(javaScore) AS minScore, username FROM users;**
求平均数:avg(字段名)
例子:
SELECT AVG(javaSore) AS avgSocre FROM users;
求和:SUM(字段名);
SELECT SUM(javaScore) AS sumScore FROM users;
统计记录:COUNT(*);
SELECT COUNT(*) FROM users
如果有空字段,COUNT只会统计该字段有值的数目。所以,统计时一般使用COUNT(*)来统计所有的数目。
常用函数
同时查询多条记录
SELECT * FROM users WHERE id =1 OR ID=2 OR id=4;
相当于
SELECT * FROM users WHERE id IN (1,2,4);
SELECT * FROM users WHERE id NOT IN (3);
例子:
CREATE TABLE goods (
id BIGINT(20) NOT NULL AUTO INCREMENT PRIMARY KEY COMMENT '主键',
);
分组查询(GROUP BY (分类字段))
固定搭配 GROUP BY (字段) HAVING 条件
分页
这段没想好怎么做笔记。做笔记好难。