首页 > 数据库 >MySQL数据库简介与基本语法

MySQL数据库简介与基本语法

时间:2022-11-22 21:36:13浏览次数:38  
标签:grant -- 简介 数据库 MySQL 表名 user mysql

目录

一、MySQL数据库

1.简介

MySQL是一款数据库软件

(1)版本问题
8.0:最新版
5.7:使用频率较高
5.6:学习推荐使用
ps:站在开发的角度使用哪个版本学习都没有关系

(2)主要目录介绍

bin目录 -->存放启动文件:mysqld.exe 、mysql.exe

data目录 -->存放核心数据:my-default.ini 默认的配置文件

2.用管理员身份登录

直接使用mysql命令默认是游客模式 权限和功能都很少
	mysql -u用户名 -p密码

管理员默认没有密码 连续回车即可
	mysql -uroot -p

3.密码相关操作

1.修改密码
添加好环境变量后
    方式 1:mysqladmin
      cmd终端内输入:
      mysqladmin -uroot -p原密码 password 新密码
    方式 2:直接修改存储用户数据的表
    方式 3:冷门操作
      set password=password('新密码')  # 修改当前登录用户

2.忘记密码
    方式 1:重新按转mysql
    方式 2:把data目录删除,拷贝别人的data目录
    方式 3:通过命令操作
      1)关闭正常的服务端
      net stop mysql
      2)以跳过授权表的方式重启服务端(不校验密码)
      mysqld --skip-grant-table
      3)单开一个cmd以管理员身份进入修改mysql.user表数据即可
      mysql -uroot -p 进入mysql管理员
      update mysql.user set password=password('新密码') where Host='localhost' and User='root':
      4)关闭服务端以正常方式启动
      net start mysql
      

4.SQL与NoSQL

数据库服务端是可以服务多种类型的客户端的

​ 客户端可以是自己开发的,也可以是python代码编写的,或者java 代码编写,所以要统一语言

SQL语句:操作关系型数据库的语言

NoSQL语句:操作非关系型数据库的语言

ps:SQL有时候也指代关系型数据库,NoSQL也指代非关系型数据库

要想和数据库交流,就必须用数据的语言,但我们掌握增删改查功能就可以

5.数据库重要概念

(1): 相当于是 文件夹

(2): 相当于是 文件夹里面的文件

(3)记录: 相当于是 文件夹里面的文件中的一行行数据

1.查看所有的库名称
show databases

2.查看所有的表名称
use mysql  切换进入库中
show tables

3.查看所有的记录
select * from user\G

二、MySQL基本语句

1.sql语句必须以分号 ; 结尾

2.sql语句编写错误: 1)直接报错 2)\c 取消执行

1.基于库的增删改查

不要对mysql自带的库进行操作

1.创建库
  create databases 库名;
  
2.查看库
  查看所有库名称  show databases; 
  查看指定库信息  show create database 库名; 
  
3.编辑库
  alter database 库名 charset='utf8';
  
4.删除库
  drop database 库名;
  

2.基于表的增删改查

操作表之前需要先确定库

0.创建库,并指定库
  create database db1;
切换操作库
  use db1;

1.创建表
  create table 表名(字段名 字段类型,id int);
  
2.查看表

 1)查看库下面所有的表名称
  show tables;
  
 2)查看指定表信息
  show create table 表名;
  
 3)查看表结构
  describe 表名;
  desc 表名;  # 简写
  
  查看指定库中表的信息
  desc 库名 表名;
  
3.编辑表

 1)修改表名
  alter table 表名 rename 新表名;

4.删除表
  drop table 表名;

3.基于记录的增删改查

Curd?

1.插入数据
  insert into 表名 values(数据值,按照位置一一传递);
  
2.查找数据
 1)查找表中所有的数据  
  select * from 表名;
 2)查找表中指定的数据  
  select 指定数据 from 表名;

3.编辑数据
  update 表名 set 字段名='新数据' where id=1;  
  # where筛选条件 改成id 1字段中的数据
  
4.删除数据
 1)删除表中所有的数据   
  delete from 表名;
 2)删除表中指定的数据    
  delete from 表名 where 筛选条件;
 

4.在python中操作mysql

import pymysql

# 连接mysql,输入root账户和密码
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset='utf8')
cursor = conn.cursor()   

# 1 新增
cursor.execute("create database db4 default charset utf8 collate utf8_general_ci")
conn.commit()

# 2 查看数据库
cursor.execute("show databases")
cursor.execute("use db4")
# 查看数据表
cursor.execute("show tables")
result = cursor.fetchall()
conn.commit()

# 3 删除数据库db4
cursor.execute("drop database db4")
conn.commit()


# 4 用mysql查看其中的数据表
cursor.execute("use mysql")
cursor.execute("show tables")
res = cursor.fetchall()
print(res)  # (('columns_priv',), ('db',), ('engine_cost',), ('event',), ('func',), ('general_log',), ('gtid_executed',), ('help_category',), ('help_keyword',), ('help_relation',), ...

# 5 关闭连接
cursor.close()
conn.close()

5.数据表结构

create table 表名(
    列名 类型,
    列名 类型,  
    列名 类型
)default charset=utf8;
create table tb1(
    id int,
    name varchar(16),  
)default charset=utf8;
create table tb2(
    id int,
    name varchar(16) not null,  -- 不允许为空  
    email varchat(32) null,     -- 允许为空(默认) 
    age int
)default charset=utf8;
create table tb3(
    id int,
    name varchar(16) not null,  -- 不允许为空  
    email varchat(32) null,     -- 允许为空(默认) 
    age int default 3           -- 插入数据时,如果不给age列设置值,默认为3
)default charset=utf8;
create table tb4(
    id int primary key,  -- 主键(不允许为空、不能重复)  
    name varchar(16) not null,  -- 不允许为空  
    email varchat(32) null,     -- 允许为空(默认) 
    age int default 3           -- 插入数据时,如果不给age列设置值,默认为3
)default charset=utf8;

主键一般用于表示当前这条数据的ID编号(类似于人的身份证),需要我们自己来维护一个不重复的值,比较繁琐。所以,在数据库中一般会将主键和自增结合。???

create table tb5(
  id int not null auto_increment primary key,  -- 不允许为空,自增,主键
  name varchar(16) not null,  -- 不允许为空
  email varchar(32) null,  -- 允许为空
  age int default 3 -- 插入数据时,如果不给age列设置值,默认为3
)default charset=utf8;

注意一个表中只能有一个自增列【一般为主键】

mysql> desc tb5;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(16) | NO   |     | NULL    |                |
| email | varchar(32) | YES  |     | NULL    |                |
| age   | int(11)     | YES  |     | 3       |                |
+-------+-------------+------+-----+---------+----------------+

6.实例

创建账户,grant权限

# 寻找user,host
mysql> select user,host from mysql.user;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password='123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| mysql.sys | localhost |
| root      | localhost |
+-----------+-----------+
2 rows in set (0.00 sec)

# 创建 localhost 名为 moongod,密码identified 为 空
mysql> create user moongod@'localhost' identified by '';
Query OK, 0 rows affected (0.00 sec)

# grant 高级 DBA 管理 MySQL 中所有数据库的权限
mysql> grant all  on *.* to 'moongod'@'localhost';
Query OK, 0 rows affected (0.00 sec)

grant的一些语法

1. grant 作用在整个 MySQL 服务器上:

grant select on *.* to dba@localhost; — dba 可以查询 MySQL 中所有数据库中的表。

grant all on *.* to dba@localhost; — dba 可以管理 MySQL 中的所有数据库

2. grant 作用在单个数据库上:

grant select on testdb.* to dba@localhost; — dba 可以查询 testdb 中的表。

3. grant 作用在单个数据表上:

grant select, insert, update, delete on testdb.orders to dba@localhost;

这里在给一个用户授权多张表时,可以多次执行以上语句。例如:

grant select(user_id,username) on smp.users to mo_user@’%’ identified by ‘123345′;

grant select on smp.mo_sms to mo_user@’%’ identified by ‘123345′;

4. grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. grant 作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to ‘dba’@'localhost’

grant execute on function testdb.fn_add to ‘dba’@'localhost’

标签:grant,--,简介,数据库,MySQL,表名,user,mysql
From: https://www.cnblogs.com/DuoDuosg/p/16916504.html

相关文章

  • 初识数据库
    目录初识数据库今日内容概要今日内容详细存取数据的演变史数据库软件应用史数据库的本质数据库的分类MySQL简介MySQL基本使用系统服务的制作密码相关操作SQL与NoSQL数据库......
  • mysql初识下载与curd简单语法
    存取数据的演变1.文本文件 文件路径不固定:C:\aaa.txt数据格式不统一:jason:123jason|123jason1232.软件开发目录 规定了数据应该报错再db目录下》》》:路径偏向......
  • 数据库优化
    1选取最适用的字段属性数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。另外一个提高效......
  • MySQL数据库下载详细步骤
    第一步>>>在浏览器上百度上搜索MySQL如何判断官网?有官网两个字的或者纯英文解释的大概率就是官网第二步>>>点击DOWNLOAWDS第三步>>>之后就往下拉找到GPL再点进去第......
  • Mysql下载及相关知识与SQL语句
    今日内容详细存储数据的演变1.文本文件 文件路径不固定(可以存到任意的路径)数据格式不统一(存入的数据格式也可以是任意的)2.软件开发目录规范 规定了数......
  • 源码安装mysql5.7
     参考:ubuntu安装mysqlserver&mysqlclientCentos6安装mysql5.5......
  • MYSQL数据库
    博客目录MYSQL下载数据库简介mysql环境配置mysql修改密码基本SQL语句......
  • mysql的基本使用
    目录数据库数据的分类MySQL简介MySQL基本使用系统服务的制作密码相关操作数据库重要概念基本的sql语句数据库1.数据库服务 统一路径统一操作方式(任何语言都可以操作)......
  • mysql下载及环境配置
    目录mysql简介mysql下载启动mysql系统mysql服务的启动mysql虚拟环境配置(可以直接看这个)卸载说明mysql简介为什么是mysql?虽然数据库软件有很多但是操作方式大差不差......
  • 初识MySQL
    目录mysql数据存取演变史数据库软件应用史数据库的本质数据库的分类MySQL数据库简介基本使用系统服务制作密码相关操作SQL和NoSQL基本SQL语句1.针对库的基本SQL语句2.针对......