侧边栏壁纸

mysql

2023年08月23日 1.3k阅读 0评论 0点赞

mysql

1.数据库的英文单词:DataBase 简称 : BD
2.什么是数据库:
“用于存储和管理数据的仓库”

3.数据库的特点:
a.持久化储存数据的。其实数据库就是一个文件系统。
b.方便存储数据和管理数据。
c.使用了统一的方式操作数据库——SQL

4.常见的数据库:
MYSQL:开源免费的数据库
Oracle:收费的大型数据库
DB2

MYSQL数据库软件
1.安装
2.卸载:去mysql 的安装目录找到my.ini文件

   复制
           卸载MYSQL

删除文件
·3.配置
MYSQL服务启动
1.手动
2.cmd ----> services.msc 打开服务的窗口
3.使用管理员打开 cmd
net start mysql :启动mysql的服务
net stop mysql : 关闭mysql的服务

MYSQL登录:
1.mysql -uroot -p密码
2.mysql -h地址(ip)-uroot -p连接目标的密码
3.mysql --host=地址(ip) --user=root --password=连接目标的密码

MYSQL退出:
1.exit
2.quit

MYSQL目录结构:
1.mysql安装目录:basedir="D:/develop/MySQL/"
配置文件 ,y.ini
2.mysql数据目录:datadir="C:/programData/Mysql/mysql server 5.5/Data/"
概念:数据库=文件夹

表       =文件
       数据

什么是SQL?
结构化查询语言
其实就是定义了操作所有关系型数据库的规则。
每一种数据库操作的方式存在不一样的地方,称为“方言”

SQL通用语法:
1.SQL语法可以单行或多行书写,以分号结尾。
2.可以使用空格和缩进来增强语句的可读性。
3.mysql数据库的SQL语句不区分大小写,关键字建议大写。
4.单行注释:-- 注释内容 或 #注释内容(mysql 特有)
多行 注释:/ 注释 /

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

DDL:操作数据库、表:

操作数据库:CRUD
1.C(create):创建:
*创建数据库:
create database 数据库名称;
*创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
*创建数据库,并指定字符集:
create database 数据库名称 charcter set 字符集名;
*创建db2数据库,判断是否存在,并指定字符集为gbk:
create database if not exists db2 charcter set gbk;
2.R(retrieve):查询
*查询所有数据库名称:
show databases;
*查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
3.U(update):修改
*修改数据库的字符集:
alter database 数据库名称 character ste 字符集名称;
4.D(Delete):删除
*删除数据库
drop database 数据库名称;
*判断时局库存在,存在再删除:
drop database if exists 数据库名称;
5.使用数据库
*查看当前正在使用的数据库名称
select database();
*使用数据库
use 数据库名称;

操作表:

1.C(create):创建
*语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
......
列名N 数据类型N
);
注意:最后一列不需要加逗号;
*数据类型;
1.int : 整数类型;例:name int,
2.double : 小数类型; 例:score double(5,2),
3.date : 日期,只包含年月日,yyyy-MM-dd
4.datetime :日期,包含年月日时分秒,yyyy-MM-dd HH:mm:ss
5.timestamp :时间戳数据类型 ,包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字符段赋值,或赋值null,则默认使用当前的系统时间来赋值
*例:create tadle student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
insert-time timestamp
);
*复制表:create table 表名 like 被复制的表名;
2.R(retrieve):查询
*查询某个数据库中所有的表名称
show tables;
*查询表结构
desc 表名;
3.U(update):修改
1.修改表名:
alter table 表名 rename to 新的表名;
2.修改标的字符集:
alter table 表名 character set 字符集名;
3.添加一列:
alter table 表名 add 列名 数据类型;
4.修改列名称、类型:
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
5.删除列
alter table 表名 drop 列名;
4.D(delete):删除
drop table 表名;
drop table if exists 表名;(先判断再删除)

DML:增删改表中数据:

1.添加数据:
语法:insert into 表名(列名1,列名2...列名n) values(值1,值2...值n);
注意:
1.列名和值要一一对应。
2.如果表名后不定义列名,则默认给所有列添加值
insert into 表名 values(值1,值2 ,...值n);
3.除了数字类型,其他类型需要使用引号引起来(单引号、双引号都可以)

2.删除数据:
语法:delete form 表名[where 条件]
注意:
1.如果不加条件,则删除表中所有记录。
2.如果要删除所有记录
delete form 表名;——不推荐使用。有多少次记录就会执行多少次删除操作
TRUNATE TABLE 表名;——推荐使用,效率高,先删除表,然后再创建一张一样的表
3.修改数据:
语法:update 表名 set 列名1=值1,列名2=值2,......[where 条件];
注意:
1.如果不加任何条件,则会将表中所有记录全部修改。

DQL:查询语句

1.排列查询
语法:
order by 子句
order by 排序字段1 排序方式1, 排序字段2 排序方式2......
排序方式:
ASC:升序,默认的。
DESC:降序。
注意:
如果有多个排序条件,则当前边的条件一样时,才会判断第二条件。

2.聚合函数:将数据作为一个整体,进行纵向的计算。
1.count:计算个数
一般选择非空的列:主键
count(*)
2.max: 计算最大值
3.min: 计算最小值
4.sum: 计算和
5.avg: 计算平均值

注意:聚合函数的计算,排除null值
解决方案:
1.选择不包含非空的列进行计算
2.IFUNLL函数

3.分组查询:
1.语法;group by 分组字段;
2.注意:
1.分组之后查询字段:分组字段、聚合函数
2.where 和 having 的区别
a.where 后不可以跟聚合函数,如果不满足条件,则不参加分组。

having 在分组之后进行限定,如果不满足结果,则不会被查询出来

b.where 后不可跟聚合函数,having 可以进行聚合函数判断

4.分页查询:
1.语法:limit 开始的索引,每页查询的条数;
2.公式:开始的索引----(当前的页码吧 -1 ) 每页显示的条数
SFLECT * FROM student LIMIL 0,3; ---第一页
SFLECT * FROM student LIMIL 3,3; ---第2页
SFLECT * FROM student LIMIL 6,3; ---第3页
3.分页操作是一个“方言”

limit是一个MYSQL“方言”

DQL : 查询表中的记录

  • select*from 表名;
    1.语法:
    select
    字段列表
    from
    表名列表
    where
    条件列表
    group by
    分组字段
    having
    分组之后的条件
    order by
    排序
    limit
    分页限定

2.基础查询
1.多个字段查询
select 字段名1,字段名2...from 表名;
注意:如果查询所有字段,则可以使用*来代替字段列表。
2.去除重复:
distinct
3.计算列:
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull (表达式1,表达式2):null参与的运算,计算结果都是null
表达式1:哪个字段需要判断是否为null
如果该字段为null后的替换值。
4.起别名:
as : as也可省略

3.条件查询
1.where子句后跟条件
2.运算符

、<、<=、=、<>
BETWEEN...AND
IN(集合)
LIKE:模糊查询
占位符:*-:
IS NULL
and 或&&
or 或 ||
not 或 !

约束
1.概念:
对表中的数据进行限定,保证数据的正确性、有效性和完整性。
2.分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:nuique
4.外键约束:foreign key

非空约束:not null,某一列的值不能为null
1.创建表时添加约束
CREATE TABLE stu(
id int,
NAME VARCHAR(20) NOT NULL--name为非空
);
2.创建完表后,添加非空约束:
ALTER TABLE stu MODIFY NAME VACHER(20) NOT NULL;
3.删除name的非空约束
ALTER TABLE stu MODIFY NAME VACHER(20);

唯一约束:unique ,某一列的值不能重复
1注意:
唯一约束可以有null值,但是只能有一条记录为null
2.在创表时,条件唯一约束
CREATE TABLE stu(
id int,
phone_number VACHER (20) UNIQUE----手机号
);
3.删除唯一约束:
ALTER TABLE stu DROP INDEX phone_number;
4.创建完表后,添加唯一约束:
ALTER TABLE stu MODIFY phone_number VACHER(20) UNIQUE;]

llnffoi2.png

0
打赏

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
107 文章数
15 标签数
502 评论量
舔狗日记