学习笔记【MySQL基础操作-第一节:MySQL基本操作】

本文介绍了MySQL数据库的基础操作,包括数据库的特性、种类,重点讲解了MySQL的启动与登录,以及SQL语言的三大分类:DDL(创建、查询、修改和删除数据库及表)、DML(增删改表中数据)和DQL(数据查询)。通过实例演示了如何进行数据类型的定义,以及各种查询操作,如条件查询、排序、分组和分页查询。
摘要由CSDN通过智能技术生成

数据库:DataBase;简称DB。用于存储和管理数据的仓库。

数据库的特点:

  • 持久化存储数据的。其实DB就是一个文件系统。
  • 方便存储和管理数据。
  • 使用了统一的方式操作数据库–SQL。

数据库的种类:

  • MySQL:开源免费的数据库,小型的数据库,已经被Oracle收购了MySQL6.x开始收费。
  • Oracle:收费的大型数据库。
  • DB2:IBM公司的数据库产品,收费的。常应用在银行系统中。
  • SQLServer:MicroSoft公司收费的中型的数据库。C#、net等语言常使用。
  • 等等…

MySQL

启动:

  • 手动
  • cmd -> services.msc 打开服务的窗口
  • 使用管理员打开cmd: net start mysql 启动mysql的服务;net stop mysql 关闭mysql的服务。

登录:

  • mysql -uroot -p密码
  • mysql -h127.0.0.1(连接目标ip) -uroot -p密码
  • –host-127.0.0.1 --user-root --password-密码

退出:

  • exit
  • quit

目录结构:

  • MySQL安装目录(basedir):配置文件my.ini
  • MySQL数据目录(datadir):数据库:文件夹;表:文件;数据:数据。

SQL

SQL结构化查询语言(Structured Query Language)

其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。

SQL通用语法:

  • SQL语句可以单行或多行书写,以分号结尾。
  • 可以使用空格和缩进来增强语句的可读性。
  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  • 三种注释:①单行注释:-- 注释内容 (要带空格)或 # 注释内容(mysql特有)②多行注释 / *注释 * /。

SQL分类

  • DDL(Data Definition Language)数据定义语言:用来定义数据库对象:数据库、表、列等。关键字:create,drop,alter等。
  • DML(Data Manipulation Language)数据操作语言:用来对数据库中表的数据进行增删改。关键字:insert,delete,update等。
  • DQL(Data Query Language)数据查询语言:用来查询数据库中表的记录。关键字:select,where等。
  • DCL(Data Control Language)数据控制语言:用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等。

DDL 操作数据库、表

1.操作数据库:CRUD

C(create)创建:

  • create database 数据库名称;
  • ②先判断有无再创建:create database if not exists 数据库名称
  • ③先判断再指定字符集:create database if not exists 数据库名称 character set gbk;

R(Retrieve)查询:

  • ①查询所有数据库的名称show databases;
  • ②查询某个数据库的字符集(查询某个数据库的创建语句)
show create database 数据库名称。

U(Update)修改:

  • 修改字符集:alter database 数据库名称 character set utf8;

D(Delete)删除:

  • drop database 数据库名称;
  • ②先判断有无再删除:drop database if exists 数据库名称;

使用数据库:

  • ①查询当前正在使用的数据库名称:select database();
  • ②使用数据库:use 数据库名称
2.操作表:CRUD

C(create)创建:

  • 创建表:create table 表名称(列名1 数据类型1,列名2 数据类型2,...,列名n 数据类型n);

R(Retrieve)查询:

  • ①查询某个数据库中所有表的名称:show tables;
  • ②查询表结构:desc 表名称

U(Update)修改:

  • ①修改表名:alter table 表名 rename to 新名;
  • ②修改表的字符集:alter table 表名 character set 字符集名称(如utf8);
  • ③添加一列:alter table 表名 add 列名 数据类型;
  • ④修改列名称、类型:alter table 表名 change 列名 新列名 新数据类型;alter table 表名 modify 列名 新数据类型;
  • ⑤删除列:alter table 表名 drop 列名;

D(Delete)删除:

  • drop table 表名;
drop table if exists 表名;

常用数据类型:

  • int整数类型,如age int,
  • double小数类型,如score double(5,2)(共5位,保留2位,最大999.99)
  • date日期,只包含年月日,yyyy-MM-dd
  • datetime日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
  • timestamp日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss,若将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
  • varchar,字符串,如name varchar(20);姓名对打20个字符,zhangsan8个字符,张三2个字符

DML 增删改表中的数据

增加数据
  • insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
  • 列名和值需要一一对应。
  • 如果表明后,不定义列名,则默认给所有列添加值:insert into 表名 values(值1,值2,...值n);
  • 除了数字类型,其他类型都需要用引号引用。
删除数据
  • delete from 表名 [where 条件]
  • 如果不加条件,则删除表中所有记录。
  • truncate table 表名;删除表,然后创建一个一模一样的空表。
  • 如果删除所有记录:①不推荐使用delete from 表名;因为有多少条记录就会被执行多少次删除操作;②推荐使用 truncate table 表名;效率高。
修改数据
  • update 表名 set 列名1=值1,列名2=值2,...列名n=值n [where 条件];
  • 如果不加任何条件则会把表中所有记录全部修改。

DQL 查询语句

select * from 表名
语法

select 字段列表 from 表明列表 where 条件列表 group by 分组字段 having 分组后的条件 order by 排序 limit 分页限定

基础查询
  • 如查询姓名及年龄:SELECT NAME, age FROM students;
  • 去除重复的结果集(SELECT DISTINCT),如:SELECT DISTINCT id FROM students;若有两个,则两个完全一样才能去除,如:SELECT DISTINCT id,NAME FROM students;
  • 如果有math 和english分数,且要算它们之和:SELECT name,math,english,math+english FROM students;
  • 但有null的计算结果都为null,上面业务不合理,可用IFNULL,上面可改为:IFNULL(math,0)+IFNULL(english,0)
  • 后面可以起别名:IFNULL(math,0)+IFNULL(english,0) AS 总分(AS可省略)
条件查询
  • where子句后跟条件
  • 运算符>,<,>=,<=,=,!=,<>(也是不等于)
  • 查询年龄大于等于20、小于等于30:① WHERE age>=20&&age<=30;WHERE age>=20 AND age<=30;WHERE age BETWEEN 20 AND 30(包括20和30);
  • 查询年龄22岁,19岁,25岁的信息:①WHERE age=22 OR age=19 OR age=25;WHERE age IN (22,18,25);
  • NULL只能用IS NULL或IS NOT NULL判断;
  • LIKE 模糊查询:① _ :单个任意字符,如查询姓马的:WHERE NAME LIKE "马%"; ②%:多个任意字符,如查询第二个字为化的WHERE NAME LIKE "_化%" ;查询名字三个字的人:WHERE NAME LIKE "___"; 查询名字中包含马的人WHERE NAME LIKE "%马%";
排序查询
  • order by 子句:order by 排序字段1 排序方式1,排序字段2 排序方式2…
  • 例:SELECT * FROM students ORDER BY score;
  • ASC:升序,默认的。
  • DESC:降序,如SELECT * FROM students ORDER BY score DESC;
  • 先按照score降序,一样的再按id升序:SELECT * FROM students ORDER BY score DESC,id ASC;
聚合函数
  • 将一列数据作为一个整体,进行纵向的计算。
  • count:计算个数
  • max:计算最大值
  • min:计算最小值
  • sum:计算和
  • avg:计算平均值
  • 如:SELECT COUNT(NAME) FROM students;
  • 聚合函数的计算,排除null值。解决方法:①选择不包含非空的列进行计算;②IFNULL函数。
分组查询
  • group by 分组字段;
  • 分组之后查询的字段:分组字段、聚合函数。
  • 如:SELECT sex,AVG(score),COUNT(NAME) FROM students GROUP BY sex;
  • 加条件,要大于60分才参与分组:SELECT sex,AVG(score),COUNT(NAME) FROM students WHERE score>60 GROUP BY sex;
  • 再加条件,分组后人数需大于2的:SELECT sex,AVG(score),COUNT(NAME) FROM students WHERE score>60 GROUP BY sex HAVING COUNT(id)>2;
  • where和having的区别:① where再分组前进行限定,不符合则不参与分组;having在分组后限定,不符合条件则不会被查询出来。② where后不可以跟聚合函数,having可跟聚合函数。聚合函数后可以跟个别名。
分页查询
  • limit 开始的索引,每页查询的条数
  • 如每页显示2条,显示第一页的记录:SELECT * FROM students LIMIT 0,2;
  • 公式:开始的索引=(当前的页码-1)*每页显示的条数。
  • limit是一个MySQL的“方言”。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值