数据库学习day1

1.数据库概念

1.数据库的出现是为了解决文件存储的弊端 比如你要存一句话到一个1tb的文件你必须要将这itb的文件调用到内存中这是不可能的

2.DBMS 指大型数据库管理软件 如mysql DB指单个数据库

3.常见的DBMS oracle 大型收费 mysql 中小型开源免费数据库 SQLsever 微软独占中型数据库

4.SQL 指操作关系型数据库的结构化查询语言 定义操作所有关系型数据库的统一标准

2.MySQL

1.在官网 下载压缩包解压后的文件夹就是MySQL软件本体了 具体配置看b站

2.在cmd上操作要使用管理员权限 登录mysql -u用户名 -p密码 退出exit

3.创建一个数据库使用 create database db1; 对应在data目录下就多一个文件夹

4.db.frm 是表结构文件,db.MYD 是存数据的文件,通过这两个文件就可以查询到数据展示成二维表的效果。

3.SQL

1.语法以分号结尾无论单双行 无论怎么敲回车只要没有分号 不区分大小写!
2.建议关键字开头大写

3.单行注释: – 注释内容 或 #注释内容(MySQL 特有) 多行注释: /* 注释 */

4.SQL语句分类

DDL简单理解就是用来操作数据库,表等

DML简单理解就对表中数据进行增删改

DQL简单理解就是对数据进行查询操作

DCL用来定义数据库的访问权限和安全级别,及创建用户

4.DDL

1.DDL操作库

1.查询所有数据库 SHOW DATABASES;

2.创建数据库

CREATE DATABASE 数据库名称;

CREATE DATABASE IF NOT EXISTS 数据库名称; 如果没有存在就创建

3.删除数据库

DROP DATABASE 数据库名称;

DROP DATABASE IF EXISTS 数据库名称; 如果存在此数据库就删除

4.使用数据库 use 数据库名称;查看当前使用的数据库SELECT DATABASE();

2.DDL操作表

对表进行增(Create)删(Delete)改(Update)查(Retrieve)。

1.查询当前数据库下所有表 SHOW TABLES; 查询表的结构 DESC 表名称;

2.创建表

CREATE TABLE 表名 (
	字段名1  数据类型1,
	字段名2  数据类型2,
	…
	字段名n  数据类型n
);

3.数据类型

一个数字的用tinyint 多个数字的用int

小数用double(总共最长几位,小数点后有几位)如score double(5,2)

日期用 date 只包含年月日 datetime 还包含秒

char (长度)定长 存储性能高但浪费空间 如学号 性别等确定位数的

varchar(最高长度)不定长 存几个就占几个空间 但浪费时间 如姓名 住址等

4.删除表 DROP TABLE 表名;或DROP TABLE IF EXISTS 表名;

5.修改表

修改表名 ALTER TABLE 表名 RENAME TO 新的表名;

添加一列 ALTER TABLE 表名 ADD 列名 数据类型;

修改数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型;

修改列名和数据类型 ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除列 alter table 表名 drop 列名;

5.Navicat

1.是一个相当于java idea的软件 用于替代cmd更简便的使用mysql

2.使用 点击链接 mysql 填写关键信息 主机名就localhost 端口3306

3.操作 右键表名 设计表 可以直接修改字段名 类型等

4.编写sql语句 点击 查询 新建查询 在查询编辑器编写 点击运行运行全部或右键sql语句运行

5.为什么一定要使用sql语句而不直接用Navicat 当你用linux时就知道了 还有编写java连接数据库时也要使用

6.字段 就是一列属性的描述 如姓名 zcy zcy2

记录(也叫元组)就是一行属性的具体描述 如 zcy 21 43022…

7.当表格中出现两个一模一样的 zcy 21时 这种情况叫做冗余 而唯一标识的编号就叫主键

外键 再新建一个表来标识 主表中的关键信息 避免主表中出现过多重复信息

6.DML

1.添加数据

给指定列添加数据 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);

直接给所有列添加数据 相当于添加一行数据 INSERT INTO 表名 VALUES(值1,值2,…);

批量添加数据INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
也可省略列名 INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

2.修改数据

将张三的性别改为女 update 表名 set sex = ‘女’ where name = ‘张三’; 一般用主键

将张三的性别改为女 年龄概为30 update 表名 set sex = ‘女’,age=30 where name = ‘张三’;

注意:如果update语句没有加where条件,则会将表中所有数据全部修改!

删除记录一行 delete from 表名 where name = ‘张三’; 删除所有 delete from 表名;

7.DQL 查询

将数据库表中的部分数据展现出来就叫查询,这是数据库最重要的操作

1.基础查询

1.语法 查 询字段 SELECT 字段列表 FROM 表名; 可以用*号表示所有字段列 SELECT * FROM 表名 就相当于把整张表展示了

2.去除重复 如去除有重复地址的行 select distinct address from stu;

3.查询并起别名 select name,math as 数学成绩,english as 英文成绩 from stu; as可以省略

2.条件查询

1.语法 SELECT 字段列表 FROM 表名 WHERE 条件列表; 条件可以使用大于小于 不等于 or and not is null等

如查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息 select * from stu where age >= 20 && age <= 30;

也可以使用 between … and 来实现上面需求 select * from stu where age BETWEEN 20 and 30;

查询英语成绩为空的 select * from stu where english is null; 必须要用is null不能用=

2.模糊查询 使用like关键字

_ : 代表单个任意字符 % : 代表任意个数字符

如查询姓马的同学 SELECT * FROM stu WHERE name like’马%’;

查询第二个字是花的SELECT * FROM stu WHERE name like’_花%’;

查询名字中包含 ‘德’ 的学员信息 select * from stu where name like ‘%德%’;

3.排序查询

1.语法 order by

  • 排序方式有 ASC : 升序排列 **(默认值可不写)**DESC : 降序排列
 SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;

2.例查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

select * from stu order by math desc , english asc ;

4.聚合函数

用函数来筛选列中的一个 或对整列进行求和 等

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值
语法
SELECT 聚合函数名(列名) FROM 表;

5.分组查询

将一个字段中的不同属性分组并使用聚合函数查询

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

1.查询男同学和女同学各自的数学平均分以及各自人数要求:分数低于70分的不参与分组

select sex, avg(math),count(*) from stu where math > 70 group by sex;

6.分页查询

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;

索引从0开始 0表示第一条 2 要确定每页显示多少条即查询条目数

例:每页显示3条数据,查询第2页数据 (第二页数据从3开始)

select * from stu limit 3 , 3;

由此可得 起始索引 = (当前页码 - 1) * 每页显示的条数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值