MySql学习一套

这篇博客详细介绍了MySQL的安装、使用,包括数据库的创建、查询、修改和删除操作,以及表的CRUD操作。进一步讲解了数据库设计,如多表操作、三大范式,还涉及了数据库的备份与还原、多表查询、事务处理和用户权限管理。内容涵盖数据库的全面操作,适合初学者和进阶者学习。
摘要由CSDN通过智能技术生成
1:mysql数据库的安装和使用

1:安装mysql:找个教程安装。
注意里面选择的编码方式,是否可以远程mysql,这两个选项。
2:卸载mysql:
1:控制面板的程式中直接卸载,但是此时没卸载干净。
2:去mysql安装目录下找到my.ini文件
复制出:datadir=“C:/ProgramData/MySql...”。这是个隐藏文件夹,在路径直接输入C:/ProgramData,删除下面的MySql,这个是数据文件,要删掉。
3:mysql服务启动
可以查看下当前服务:cmd->services.msc 打开服务窗口
net start mysql 启动mysql服务
net stop mysql 关闭mysql服务。
4:mysql登入登出
mysql -uroot -p
mysql -hip -uroot -p密码, 访问其他IP地址的mysql
exit/quit
5:通用语法
分号结尾,不分大小写。
注释:-- 单行注释,# 单行注释。/* */多行注释。

2:数据库的操作

DDL:操作数据库,表,列。create,drop,alter。
DML:增删改表中的数据。insert,delete,update。
DQL:查询。select。
DCL:授权。GRANT,REVOKE。

1:数据库:CRUD
  • C:Create:创建
    CREATE DATABASE IF NOT EXISTST 数据库名称;
    CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET utf8;
  • R:Retrieve:查询
    1:查询数据库名称
    SHOW DATABASES;
    1:查询数据库使用的字符集
    SHOW CREATE DATABASE 数据库名;
  • U:Update:修改
    ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
  • D:Delete:删除
    DROP DATABASE IF EXISTS 数据库名称;
  • 使用数据库,使用后可以对表进行操作。
    查询正在使用的数据库:SELECT DATABASE();
    USE 数据库名称;
2:数据库表:CRUD
  • C:Create:创建
    CREATE TABLE 表名称(
    列名1 数据类型,
    列名2 数据类型,
    列名n 数据类型//最后一列没有逗号
    );
    SQL中的数据类型
    INT:整数,
    DOUBLE:小数,
    DATA:年月日,YYYY-MM-DD,
    datatime:年月日时分秒,YYYY-MM-DD HH-mm-ss,
    TIMESTAMP:年月日时分秒,YYYY-MM-DD HH-mm-ss,如果没赋值,自动使用系统时间。
    VARCHAR:字符串
    小栗子:
    CREATE TABLE IF NOT EXISTS student(
    id int,
    name VARCHAR(20),
    age int,
    score double(4,1),
    birthday date,
    insert_time timestamp
    );
  • R:Retrieve:查询
    1:查询数据库中所有表名称,USE 数据库名称,使用了数据库后。
    SHOW TABLES;
    2:查询表结构
    DESC 表名称;
  • U:Update:修改
    1:修改表名:alter table 表名 rename to 新的表名;
    2:修改表的字符集:
    show create table 表名;
    alter table 表名 character set 字符集名;
    3:添加一列:alter table 表名 add 列名 数据类型;
    4:修改列名称 类型:alter table 表名 change 老的列名 新的列名 新类型;
    5:删除列:alter table 表名 drop 列名;
  • D:Delete:删除
    DROP TABLE IF EXISTS 表名称;
3:表中的记录操作
  • 添加数据:
    insert into 表名(列名1,列名2,列名3) values (值1,值2,值3);
    栗子:INSERT into stu(id,name,age) value (1,‘张无忌’,18);
    注意:
    - 如果不给列名,默认所有列都添加值。
    - 除了数字,其他类型都要添加引号。

  • 删除数据:
    delete from 表名[where 条件];
    栗子:delete from stu where id=1;
    注意:
    - 如果不添加条件,表中所有记录都被删掉。
    - 删除表中所有内容:
    1:delete from 表名;
    2:推荐使用truncate table 表名;速度更快,删除整个表,并创建一个空表。

  • 修改数据:
    update 表名 set 列名1=值,列名2=值 [where 条件];
    栗子:update stu set name = ‘赵敏’,age=17 where id=1;
    update stu set age = 18;如果不添加条件所有的默认都修改。

4:数据库的查询操作

数据库的基础查询
select 字段 from 表名 where 条件 group by 分组字段 having 分组之后的条件 ORDER BY 排序 limit 分页限定。
栗子:
select name,age from stu;
去除重复的结果集:
select DISTINCT name from stu;
完成值得计算
select name,Math,English,Math+English from stu;
如果有null的值,ifnumm(列名,默认值),给一列中如果为空的话。
select name,Math,English,Math+IFNULL(English,0) As total from stu;
使用As起别名,As可以省略。
select name,Math 数学,English 英语,Math+IFNULL(English,0) As 总分 from stu;

数据库的条件查询
运算符:
- >,<,>=,<=,=,<>
- BETWEEN AND
- IN(集合)
- LIKE 模糊查询
,单个任意字符。
%,多个任意字符。
- IS NULL
- AND,&&
- OR,||
- NOT,!
栗子:
SELECT name,age from stu where age !=18; <>也表示不等于
SELECT name,age from stu where age BETWEEN 18 AND 20;
SELECT * from stu where English IS NULL;
模糊查询:
select * from stu where name LIKE ‘张%’;查询张姓的
select * from stu where name LIKE '无%’;查询第二个字是无的
select * from stu where name LIKE '
__’; 查询姓名是四个字
select * from stu where name LIKE ‘%张%’;查询姓名中包含张字的

查询高级
- 排序查询:
ORDER BY 排序字段,排序方式。
ASC:升序,默认的。
DESC:降序。
栗子:
先按照math排序,math相同的话按照English排序。
select * from stu ORDER BY math,English DESC;
- 聚合函数:
将一列数据作为一个整体,进行纵向计算。
1:count 计算个数,注意&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值