Mysql入门基础一

MySQL数据库的一些基本概念与操作

1.数据库(DB):存储数据的仓库,数据库中数据存在硬盘上,主要是用来存取数据,生成新的数据。用户操作数据库中的数据时需要依赖于数据库管理系统的帮助。数据库管理系统简称为DBMS。我们常说的数据库包含数据存储部分和数据库管理系统两个部分。

2.数据库管理系统(DBMS):管理和操作数据库的软件.eg:oracle,mysql,sql server

3.数据库管理员(DBA):管理操作数据库

4.数据库发展史:线型数据库,网状数据库,关系型数据库,非关系列数据库

  • 关系型数据库:Oracle,mysql,sql server,DB2…
  • 非关系型数据库:redis,Mango DB,nosql…

数据库的分类:

  1. 网状型数据库;
  2. 层次型数据库;
  3. 关系型数据库;
  4. 面向对象型数据库。

5.关系型数据库的组成:由表,表与表之间的关系及对象组成

6.数据库表用来存储数据.数据库由行和列

7.数据库表中行=记录=实体

8.数据库表中列=域=字段

MySQL中常用的字段类型:

  1. int(integer) 整数型
  2. float/double 单精度/双精度浮点型
  3. date 日期类型
  4. datetime 日期时间类型
  5. char 定长字符串
  6. varchar 可变长度字符串
  7. text 大文本对象,可用于存储超长字符串
  8. blob 二进制大对象,可用于存储图片等二进制数据

MySQL中常用的约束

  1. NOT NULL:非空约束
  2. UNIQUE:唯一约束
  3. PRIMARY KEY:主键,唯一标识该记录,主键必须是非空且唯一
  4. FOREIGN KEY:外键,指定该记录从属的主表记录

添加外键的语句:

alter table 从表
add foreign key(外键字段名) references 主表(关联字段名);

9.数据库最重要是数据完整性

数据完整性:数据的准确性和安全性。

10.MySql:是前sun公司推出一个关系型数据库产品,MySql5.5之前开源,免费,体积小,MySql数据库默认用MyISAM;MySql5.5之后开始收费,MySql数据库默认用Innodb引擎

11.MySql的卸载和安装

11.1:MySql的卸载的步骤:

  1. 停止MySql服务:任务栏鼠标右键-》选择任务管理器-》详情信息-》服务-》MySql右键停止;
  2. 控制面板-》程序和功能-》MySql-》右键卸载;
  3. 清注册表:系统盘(C盘)-》ProgramData-》MySql右键删除。

11.2:MySql的安装(略)

自行百度。

11.3:安装成功测试:查看任务管理器中-》服务-》MySql是否正在运行,如果没运行右键开始。用MySql的客户端,输入密码出来Welcome to MySql…就安装成功了

12.启动/停止服务:

12.1:启动/关闭服务:任务栏鼠标右键-》选择任务管理器-》详情信息-》服务-》MySql右键开始/停止。

12.2:启动/关闭服务:我的电脑鼠标右键-》管理-》服务-》MySql右键开始/停止。

12.3:启动/关闭服务:用管理员身份运行cmd->输入命令net stop/start mysql;

13.登录MySql数据库管理系统:

13.1:第一种登录:打开MySql客户端-》输入root账号对应的密码。

13.2:第二种登录:打开cmd-》cd MySql安装文件bin目录下-》输入登录命令:mysql -u 账号 -p 密码。

13.3:第三种登录:用Navicat for MySQL创建连接就可登录。

14.Sql:数据库结构化查询语言。操作数据库管理系统.默认讲Sql-92标准

  1. DDL:数据库定义语言,创建,删除及修改数据库及表等;
  2. DCL:数据库控制语言,创建和删除用户,给用户授权,撤消权限等;
  3. TCL:事务控制语言,与事务相关操作等;
  4. DML:数据库操作语言,对数据库表中数据作增加,修改,删除操作;
  5. DQL:数据库查询语言,对数据库表中数据作查询操作。

在这里插入图片描述

15:DDL数据库定义语言:

  1. 查看数据库:show databases;
  2. 创建数据库:create database [IF NOT EXISTS] 数据库名 [default charset utf8];
  3. 查看数据库的创建:show create database 数据库名;
  4. 修改数据库的字符编码:alter database 数据库名 character set utf8;
  5. 删除数据库:drop database [if exists] 数据库名;
  6. 查看当前数据库:select database();
  7. 进入数据库:use 数据库名;
  8. 创建表:
CREATE TABLE [IF NOT EXISTS] 表名(
    字段1 字段类型(长度) 约束,
    字段2 字段类型(长度) 约束,
    ... 
    字段n 字段类型(长度) 约束
) [charset=utf8];

注意:主键列 VS 唯一键

  • 相同点:确保列值不重复;
  • 不同点:主键列不能为空;唯一键可以为空;主键列可以由一列或多列组成,但是唯一键一般都是用来限制一个列。由多个列组成主键叫复合主键,复合主键列要求组成的列有一个列值不同就是不同的主键,复合主键要求组成的列的所有列值相同就是重复主键。
  1. 查看当前数据库下所有表:show tables;
  2. 查看表中字段:desc 表名;
  3. 查看数据库的创建语言:show create table 表名;
  4. 向表中添加列:alter table 表名 add 列名 数据类型 [列的约束];
  5. 修改表中列的数据类型:alter table 表名 modify 列名 数据类型;
  6. 删除表中列:alter table 表名 drop 列名;
  7. 修改表名:RENAME TABLE 原表名 TO 新表名;
  8. 修改表的字符集为gbk:ALTER TABLE 表名 CHARACTER SET gbk;
  9. 修改列名: ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;
  10. 删除表:drop table 表名;

16.DML数据库操作语言:对数据库表中数据作增,改,删

16.1:向表添加数据

16.1.1:添加一条数据的语法:
insert into 表名(列名1,列名2...) values(1,2...);

注意:列名与值要一一对应(个数一样,顺序一样,数据类型要匹配);如果表中所有列都要插入,表名后面(列名1,列名2…)可以省略。

insert into t_student(name,age,address) values('bb',17,'南宁');
16.1.2:(MySql)添加多条数据的语法:
insert into 表名(列名1,列名2...) values(1,2...),(1,2...),...;

注意:列名与值要一一对应(个数一样,顺序一样,数据类型要匹配)。

insert into t_student(name,age,address) values('cc',11,'北京'),('dd',12,'上海'),('ee',13,'深圳');
16.1.3:插入默认列的值:
#默认列使用默认值
insert into t_student(name,age,address) values('hh',17,default);

16.2:修改表中数据的语法:

update 表名 set 列名1=1,列名2=2...[where 条件];
#修改表中数据
update t_student set name='hh',age=27,address='青春之都' where id=8;

16.3:删除表中数据:

16.3.1:删除表中一条或多条数据的语法:
delete from 表名 [where 条件];

注意:如果删除表中数据时,没有写where 条件,删除表中所有数据。

delete from t_student where id=8;
delete from t_student where id>9 and id<12;
16.3.2:删除表中记录。(先把表删除,然后再创建空表)语法:
truncate table 表名;
TRUNCATE table t_student;
16.3.3:删除表总结:
#语法一:delete from 表名 [where 条件];
#注意:一般情况下,删除表中数据一定要加条件,否则删除整张表的数据。delete删除记录行后,标识数据删除后,标识数据不再重复。
#删除表中数据
delete from t_user where uid=5;
#一般情况下,删除要加where条件,否则删除整张表中数据
delete from t_user;
删除表中所有记录
  1. 第一种:drop table 表名; 删除最彻底,将整张表及与表相关的数据(包括表结构,表中数据,标识种子)全部删除。
  2. 第二种:truncate table 表名;删除效率最高,将表中数据一页一页的删除,但是表的结构还在(将原表删除,新建一个与原表结构相同的表),原来表中标识种子也删除了重新生成新的标识种子。
  3. 第三种:delete from 表名;只删除了表中数据(一条一条删除表中记录),表的结构,表的标识种子都在。
    注意:标识种子:指的标识列的起始值;标识种子删除后,无法再继续自增
delete from 表名; //一行一行删除表中所有的数据,但是标识种子(自增)还在
TRUNCATE table 表名; //删除是把表直接DROP掉,然后再创建一个同样的新表,表结构还在TRUNCATE删除的数据不能找回。删除效率最高
drop table 表名;//删除表结构及与表相关所有数据

17.DQL数据库的查询语言:查询数据库表中数据

17.1:查询语法:

select 列名1,列名2...
from 表名
[where 条件//边查询边筛选]
[group by 列名 //查询完后再将结果进行分组]
[having 条件 //查询完分完组后再筛选 ]
[order by 列名[asc/desc] //对结果排序,默认升序asc]
[limit start [,count]]//只有mysql可用;
#查询表中所有的记录
select * from t_student;
select id,name,age,address from t_student;

#根据条件查询:查询表中所有地址不详的学生信息
select id,name,age,address from t_student where address='地址不详';

#查询完学生后排序
select id,name,age,address from t_student order by age asc;
select id,name,age,address from t_student order by age asc;

17.2:聚合函数:求和 sum(列名),求总记录数 count(列名), 求最大值 max(列名),求最小值 min(列名),求平均数 avg(列名)等等

注意:聚合函数一般不能与普通列一起查询(语法没有问题,逻辑有问题),结果集无法匹配;除非普通列作为分组条件。聚合函数不能用在查询的where后面,其他地方可用。

select count(id) as '总人数',sum(id),max(id),min(id),avg(age) 
from t_student;

17.3:分组查询和筛选

注意:有having地语句一定有groub by;有groug by的语句不一定有having

#分组查询:根据年龄分组查询每个年龄人数
select count(id) as '人数',age 
from t_student 
GROUP BY age;

#分组查询后再筛选:查询人数不小于2的每个年龄人数
select count(id) as '人数',age 
from t_student 
GROUP BY age 
HAVING count(id)>=2;

17.4:(MySql)limit的用法

17.4.1::限制查询的结果条数: limit 条数;
#限制输出结果的条数:只输出前三条记录
select id,name,age,address from t_student limit 3;
17.4.2:分页:select 列名列表 from 表名 limit 当前页的起始记录数,每页显示的条数;

分页的总语法:

select 列名列表 from 表名 
limit (当前页码-1)*每页显示的条数,每页显示的条数;

select id,name,age,address from t_student limit 4,2;

17.5:模糊查询:

通配符:
*: 代表表中所有列
_ :任意一个字符
%:任意0~n个字符

17.5.1:like的使用,某个列像…,like只能用于字符列
#like模糊查询:查询姓名以a开头所有学生信息
select id,name,age,address from t_student where name like 'a%';

#like模糊查询:查询姓名只有两个字符且以a开头所有学生信息
select id,name,age,address from t_student where name like 'a_';
17.5.2:between min and max查询列名在min到max之间

注意:between…and…适用于数据列;between…and…小范围的值写在前面,大范围的值写在后面;反之,语法不报错,但是无意义。

#查询年龄在11到17岁的学生信息
select id,name,age,address from t_student where age>=11 and age<=17
select id,name,age,address from t_student where age BETWEEN 11 and 17;
17.5.3:in(值1,值2…) 查询列名满足in后面括号中任意一个值都可以
#查询地址是北京或上海或深圳的所有学生信息
select id,name,age,address from t_student 
where address='北京' or address='上海' or address='深圳'; 

select id,name,age,address from t_student 
where address in('北京','上海','深圳');

#查询地址不是北京且上海且深圳的所有学生信息
select id,name,age,address from t_student 
where address not in('北京','上海','深圳');	
17.5.4:列名 is [not] null,判断一个列是否为空.列名 is not null 不为空
#查询爱好为null的学生信息
select id,name,age,address,hobby from t_student where hobby is null;
#查询爱好不为null的学生信息
select id,name,age,address,hobby from t_student where hobby is not null;
17.5.5:(oracle,mysql)DISTINCT 去重
#查询学生年龄去重
select DISTINCT age from t_student;

18.在SQL语句中,运算符(算术运算符,赋值运算符,比较运算符,逻辑运算符)可以直接用

  1. 在MySql中不等于: <> 或 != , 等于: = , 小于和等于: <= , 大于和等于: >=
  2. 逻辑运算符: and(并且),or(或者),not(非)
  3. 优先级:not>and>or

19.数据的完整性:数据库最重要的就是数据的完整性

19.1.完整性:数据的可靠性和准确性

19.2.数据完整性:实体完整性,域完整性,引用完整性,自定义完整性

19.3.实体完整性:主键约束,唯一约束,标识列

注意:一般情况下,每张表都要有一个主键

19.4.域完整性:数据类型,默认约束,非空,检查约束(check);

注意:MySql5.5之后不支持检查约束

19.5.引用完整性:外键约束

外键约束的优点:保护数据的安全性;
缺点:效率低。
综合外键约束的优缺点:一般不建立外键约束。

19.6.自定义完整性:规则、存储过程、触发器(略)

未完,待续。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果你是零基础入门MySQL以下是一些基本的操作指南: 1. 首先,你需要登录MySQL,使用以下命令: mysql -u 用户名 -p 输入密码后就可以登录成功。 2. 选择要使用的数据库,使用以下命令: use 数据库名 这样你就可以在该数据库进行操作。 3. 创建表格,使用以下命令: CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ... ); 4. 插入数据到表格,使用以下命令: INSERT INTO 表名 (列名1, 列名2, 列名3, ...) VALUES (值1, 值2, 值3, ...); 例如,插入一条数据到runoob_tbl表中: INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 PHP", "菜鸟教程", NOW()); 5. 查询表格数据,使用以下命令: SELECT 列名1, 列名2, ... FROM 表名; 例如,查询runoob_tbl表中的所有数据: SELECT * FROM runoob_tbl; 这样就可以得到表格的所有数据。 希望这些信息对你有所帮助。如果你有更具体的问题,可以继续提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL基础入门教程(一)](https://blog.csdn.net/weixin_44006731/article/details/128616775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值