当前位置:网站首页>MySQL数据库基础01

MySQL数据库基础01

2022-08-11 09:42:00 springxing星

day01-数据库基础

一、MySQL回顾

MySQL介绍

MySQL是一款Oracle公司出口的轻量级数据库软件,广泛应用于互联网场景,同时也是目前最主流的数据库。

MySQL的优点

MySQL相对于文件系统,优点如下:

1.mysql的结构相对于文件系统更方便管理

2.mysql支持各种编程语言

3.mysql比文件系统支持更大规模的数据

4.mysql更具备扩展性

5.mysql数据能更快检索

6.mysql支持分布式

MySQL的下载与安装

MySQL可视化工具:navicat,sqlyog

SQL分类

DDL:数据库定义语句,用于数据库,表,列的管理,create,drop,alter

DML:数据库表中的CUD,表数据的增删改,insert,update,delete

DQL:表数据的查询:select

DCL:权限控制

TCL:事务控制

CCL:指针控制,指针管理

二、MySQL

软件:mysql是数据库软件

数据库:仓库,是一个数据仓库(数据库管理系统)。通常一个项目对应了一个数据库

数据表:一个数据库中有无数张表,表中存放了数据

列:数据表的表头, 表头由一列列组成

用户管理(DDL)

-- 用户管理
-- SELECT 列名,列名,... from mysql.user;
SELECT host,user FROM mysql.user;
​
-- 创建用户
-- host表示允许哪些ip地址能访问 改成%就是所有人都能连接
-- CREATE user '用户名'@'ip地址' IDENTIFIED BY '密码';
CREATE user 'zs' @ 'localhost' IDENTIFIED BY '123';
​
-- 修改密码
alter user 'zs' @ 'localhost' IDENTIFIED BY '456';

权限操作(DCL)

-- 权限管理
    -- 用户授权
    -- grant 权限码 on 数据库名.表名 to 用户名@主机名 identified by 'password';
    grant all on *.* to 'zs'@'localhost';
​
-- 查看用户权限
-- show grants for 用户名@主机名;
show grants for 'zs' @ 'localhost';
​
-- 取消用户权限
-- REVOKE 权限码 ON 库名.表名 FROM 用户名@主机名
REVOKE all on *.* FROM 'zs' @ 'localhost';
​
-- 刷新权限
FLUSH PRIVILEGES;

数据库操作(DDL)

-- 创建数据库
-- create database 数据库名称; -- 直接创建
-- create database if not exists 数据库名称; -- 如果不存在
-- create database if not exists 数据库名称 character set 编码; --创建并指定编码
​
-- CREATE DATABASE db2;
-- CREATE DATABASE IF NOT EXISTS db2;
CREATE DATABASE IF NOT EXISTS db2 CHARACTER SET 'utf8'; -- 推荐
​
​
-- 查看当前所有数据库
-- show DATABASES;
​
-- 查看数据库定义语句
SHOW CREATE DATABASE db2;
​
-- 修改数据库字符集
-- ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集
ALTER DATABASE db2 DEFAULT CHARACTER SET 'utf8';
​
-- 使用数据库(一般用于命令行下使用)
use db1;
select * from tb_user;

数据表的操作

-- 创建数据库
create DATABASE db1 CHARACTER SET 'utf8';
​
-- 使用数据库
use db1;
​
-- 创建用户表
-- CREATE TABLE 表名(
--  字段名 字段类型(长度),
        ...
-- )ENGINE = INNODB 代表数据库引擎,不同引擎有不同的效果,默认是innodb,innodb是一个支持事务的数据库引擎
-- 
CREATE TABLE if not EXISTS t_user(
    name VARCHAR(255),
    sex VARCHAR(255),
    age INT(3)
) ENGINE = INNODB DEFAULT CHARSET 'utf8';
​
-- 快速创建一张表结构一样的表
-- CREATE TABLE 新表名 LIKE 旧表名
CREATE TABLE t_user2 LIKE t_user1;
​
-- 查看表
--      1.查看当前数据库下有哪些表
            show TABLES;
            
--          2.查看表的结构
            DESC t_user;
            
--          3.查看建表语句
            SHOW CREATE TABLE t_user;
            
-- 删除表
DROP TABLE t_user;
​
-- 修改表
-- 1.添加列
-- ALTER TABLE 表名 add 列名 类型
        ALTER TABLE t_user ADD address VARCHAR(255);
​
-- 2.修改列类型
-- ALTER TABLE 表名 MODIFY 列名 新的数据类型
    ALTER TABLE t_user MODIFY sex char(2);
​
-- 3.修改列名
-- ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
ALTER TABLE t_user CHANGE name username VARCHAR(255);
​
-- 4.删除列
-- ALTER TABLE 表名 DROP 列名
ALTER TABLE t_user DROP address;
​
-- 5.修改表名
-- RENAME TABLE 表名 to 新表名
RENAME TABLE t_user to t_user1;
​
-- 6.修改字符集
-- ALTER TABLE 表名 CHARACTER set 字符集;
ALTER TABLE t_user1 CHARACTER set 'utf8';
 

mysql数据类型

整数:

int(常用)

bigint(常用)

浮点:

float

double(常用)

定点小数:

decimal

日期时间:

datetime(常用)

date(常用)

字符:

char:定长字符串

varchar:变长字符串(常用)

longtext:超大文本

枚举

set

CREATE TABLE test(
    d1 int,
    d2 bigint,
    d3 float(4,3),
    d4 double(10,4),
    d5 datetime,
    d6 date,
    d7 char(3),
    d8 VARCHAR(255),
    d9 LONGTEXT
)ENGINE=INNODB DEFAULT CHARSET 'utf8';

表数据的CRUD

-- 向表中添加一行数据
-- insert into 表名(列名,...) values(值1,值2...);
insert into t_user1(username,age,sex) VALUES('张三',20,'男');
​
-- 批量操作
-- insert into 表名(列名,...) values(值1,值2...),(值1,值2...),(值1,值2...)...;
INSERT INTO t_user1(username,age,sex) VALUES('张三',18,'男'),('张三',18,'男'),('张三',18,'男');
​
insert into t_user1(username) VALUES('张三');
​
-- 删除表中数据
    -- 删除数据
--  delete from 表名 where 列名=值 and 列名=值 and 列名=值;
    DELETE FROM t_user1 WHERE age = 18;
​
-- 修改表中数据
--      update 表名 set 列名=值 , 列名 = 值...
        UPDATE t_user1 set username='李四',sex = '男' WHERE age = 20;
        
-- 查询表中数据
--      select 列名,... from 表名 where 列名=值;
        select username,age,sex from t_user1;
        
        select * from t_user1;
原网站

版权声明
本文为[springxing星]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_60154877/article/details/126240275