qiyeqi

导航

 

数据库

数据库的安装和卸载
  1. 卸载时在客户端卸载

  2. 安装路径手动删除

  3. 隐藏路径手动删除

  4. mysql数据库服务器端口号默认是3306

  5. mysql数据库服务器的字符编码是UTF-8

  6. 安装数据库时本机的杀毒软件建议关闭

常用命令

  1. 查看数据库名字 show databases;

  2. 创建数据库 create databases 数据库名字

  3. 使用数据库的命令 use 数据库名字

  4. 查看表的命令 show 表名

  5. 创建表的命令 create table 表名(属性 属性的类型)

  6. 删除表的命令 drop table tbalename;

  7. 删除数据库的命令 drop database databasename;

Naviccat的基本操作

  1. 创建数据库

  2. 创建表

  3. id 每张表需要有id 主键(唯一,不能重复)

  4. double 长度8 小数2 整数就是6

  5. data 日期类型(默认格式: 2021-2-3)

约束

  1. 默认值 null 空 Empty String有值有内容

  2. 不为空

  3. 主键:

  4. 外键

  5. 唯一 值必须唯一

添加

  1. SQL作用:实现对表中数据添加、修改、删除、查询操作

  2. INSERT添加语句

  3. 数据的顺寻必须和表的结构顺序一致

  4. INSERT INTO person VALUES(4,'小李',18);

  5. INSERT INTO person(id,name) VALUES(8,'小康')

修改

  1. 修改语句通常必须添加where语句,否则会修改所有的语句

  2. UPDATE person SET NAME='ASD',age=15 WHERE id=1;

  3. UPDATE person SET age=22 WHERE NAME ='小红';

删除

  1. DELETE FROM person WHERE id=8;

  2. DELETE FROM person WHERE age=18;

查询

  1. select * 字段 别名 表达式

  2. SELECT * FROM person;查询所有

  3. SELECT name FROM person;查询name

  4. SELECT name , age from person;查询name和age

  5. SELECT name n,age a from person;查询name和age并把name命名为n age命令为a

  6. select age+1 FROM person; 查询age并在值上面加1

分组查询

  1. 分组的理解:相同的就是一组

  2. 分组的注意;按照组来显示,显示组的信息

  3. 分组的注意:通常必须和聚合统计类的函数一起使用

  4. 分组的注意:如果按照字段分组,select只能写分组的组名或聚合函数

select sex,

max(age),最大值

MIN(age),最小值

SUM(age),求和

AVG( age),平均值

COUNT(*) 总数

from person GROUP BY sex;

having

  1. having必须要和group by 一起使用

  2. where条件是对表中每一条记录进行过滤

  3. having条件对分组之后的每条记录进行过滤

SELECT sex s ,COUNT(*)c from person where name !='小白' GROUP BY sex HAVING c>=2;

ORDER BY

  1. select * from person ORDER BY age ; 默认升序

  2. select * from person ORDER BY age ASC; 升序

  3. select * from person ORDER BY age DESC; 降序

FROM的用法

  1. SELECT * FROM person;

  2. SELECT name FROM person;

  3. select person.name from person;

  4. select p.name from person p; 将person改名为p

where

比较运算符

  1. select * from person where age >18;

  2. select * from person where age <18;

  3. select * from person where age =18;

  4. select * from person where age !=18;

  5. select * from person where age <=18;

  6. select * from person where age >=18;

逻辑运算符

AND 逻辑与

select * from person where age>=15 AND age<=18;

OR逻辑或 select * from person where age>15 or name='小白';

SELECT * from person where age is not null; SELECT * from person where name not like '%天%'; select * from person where name not IN ('ASD','小白','小黑')

其他运算符

  1. BETWEEN AND查询数字区间、包含边界值 select * from person where age BETWEEN 15 AND 18;

  2. IN 查询集合区间 select * from person where name IN ('ASD','小白','小黑') select * from person where name='ASD' OR name='小白' OR name='小黑';

  3. LIKE 模糊查询、搜索功能、必须时字符类型varchar 匹配符_:匹配的时一个任意字符(一个字符) 匹配符%:匹配的时零个或任意字符(任意个)不知道的字在哪里下划线就在那里 SELECT * from person where name like '小__'; SELECT * from person where name like '%小%';

  4. NULL 空 表示什么也没有、表示未知的意思 SELECT * from person where age is null;

DISTINCT 显示唯一的关键字

  1. select DISTINCT age from person;

  2. select DISTINCT sex from person;

  3. select COUNT(*) from person; 查询一共有多少个记录

  4. select COUNT(age) from person;查询记录了多少

  5.  

LIMIT关键字

  1. LIMIT n 表示返回前n条记录

    LIMIT m,n m表示起始位置、n表示返回的记录数 从m为返回n条记录

  2. 作用一:top-n分析

    第一步按照一个字段排序,然后用关键字截取记录

    SELECT * from person ORDER BY age DESC LIMIT 3; 按照age降序取前三个数据

  3. 作用二:分页

    分页功能需要2个参数:页码(第几页 x)和条数(返回的数据 y)

    SELECT * from person LIMIT (x-1)*y,y; `

    SELECT * from person LIMIT 0,2;

多表查询

表与表之间的关联关系 一对一:1:1 多的一方添加公共列(主表的主键) 公司表 员工表 一 多 公共列:两个表共有的列、相同类型、相同精度、完全相同 如果有n个表至少有n-1个公告列 SELECT * from emp ,com WHERE com.id=emp.comid; SELECT com.name ,emp.name from emp ,com WHERE com.id=emp.comid; 左连接 左连接:以左表为主表、可以把左表中所有记录都查询出来 当左边中不满足条件的需要查询的时候 select * from com LEFT JOIN emp ON com.id=emp.comid; 左外连接 select * from com LEFT OUTER JOIN emp ON com.id=emp.comid;

右连接 右连接:以右表为主表、可以把 右表中所有记录都查询出来 select * from emp RIGHT JOIN com ON com.id=emp.comid; 右外连接 select * from emp RIGHT OUTER JOIN com ON com.id=emp.comid;

内连接 只查询出满足公共列条件的记录、和上边where公共列作为条件结果一样 select * from com INNER JOIN emp on com.id=emp.comid;

一对多:1:M 多对多:M:N

子查询

通过A表查询B表 select (select name from com where id = comid) from emp where name = '小白';

数据库忘记密码

  1. 先关闭数据库(net stop mysql 或者在服务里面关闭数据库)
  2. 将路径换到数据库的bin目录后输入mysqld --console --skip-grant-tables --shared-memory
  3. 再重新打开一个cmd将路径换到数据库的bin目录中输入MySQL就可以进入mysql数据库中
  4. 输入flush privileges;刷新系统权限
  5. 输入set password for root@localhost='123456';重置密码为“123456”

 

 

 

posted on 2022-05-09 20:27  七夜七  阅读(47)  评论(0)    收藏  举报