当前位置: 首页 > news >正文

数据库基本管理

数据完整性:

  • 实体完整性:每一行必须是唯一的实体
  • 域完整性:检查每一列是否有效
  • 引用完整性:确保所有表中数据的一致性,不允许引用不存在的值
  • 用户定义的完整性:制定特定的业务规则

主键:

  • 用于唯一标识表中的行数据
  • 有一个或多个字段组成
  • 具有唯一性
  • 不允许取空值(NULL)
  • 一个表里只能有一个主键

数据类型:精准数字,近似数字,字符串,二进制字符串,日期和时间等等

SQL结构化查询语句

DDL:数据定义语言:create(创建) , drop(删除) , alter(修改)

DML:数据操作语言:insert(添加),update(更新), delete(删除)

DCL:数据控制语言:select(选择), show语句 , describe

DQL:数据查询语言:grant(授权) , revoke(取消授权) , commit(提交), rollback(退回)

1:查看数据库结构

[root@localhost ~]# mysql -u root -ppwd123

mysql> show databases;

mysql> use mysql

mysql> show tables;

mysql> describe user;

mysql> select * from user\G;

备注:

  • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等
  • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况

mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

2.创建及删除数据库和表

(1)创建新库

mysql> create database auth;

(2)创建新表

mysql> use auth;

mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

备注:”DEFAULT“密码默认为空

(3)删除一个数据表

mysql>DROP TABLE auth.users;

(4)删除一个数据库

mysql>DROP DATABASE auth;

3:管理表中的数据记录

(1)插入数据记录

mysql>use auth;

mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456'));

mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));

(2)查询数据记录

mysql>select * from auth.users;

mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

(3)修改数据记录

mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi';

mysql>SELECT * FROM auth.users;

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';

mysql>FLUSH PRIVILEGES; /

[root@www ~]# mysqladmin -u root -p'123457' password '123456'

(4)删除数据记录

mysql>DELETE FROM auth.users WHERE user_name='lisi';

mysql>SELECT * FROM auth.users;

4:数据库表高级操作

(1)克隆表

mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空

mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录

(2)删除表

mysql> delete from user01 where user_name='zhangsan';

mysql>delete from user01;

mysql>insert into user01 select * from auth.users;

mysql>truncate table user01;

mysql>select count(*) from user01;

备注:

编号 姓名 性别

1

2

3

4

5

标识列

truncate和delete的区别:

truncate删除表中的内容,不删除表结构,释放空间;

delete删除表中的内容,不删除表结构,但不释放空间

truncate删除数据后重新写数据会从1开始,

delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间

delete属于DML语句,而truncate和drop都属于DDL语句

delete可以在后续加上where进行针对行的删除

truncate和drop后面只能加上表名,直接删除表,无法where

drop table 表名  删除表,内容连带结构一起删除;

(2)临时表

mysql>select * from mytmp; //查看 mytmp 表是否存在

mysql>CREATE TEMPORARY TABLE `mytmp` (

`id` int(10) NOT NULL AUTO_INCREMENT,

`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,

 `level` int(10) NOT NULL,

PRIMARY KEY (id)

 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; //创建临时表

mysql> insert into mytmp(name,level) values('aa',10); //插入数据

Query OK, 1 row affected (0.01 sec)

mysql>select * from mytmp;

mysql>quit //退出当前连接

Bye

mysql>select * from mytmp;     //重新连接 MySQL 之后查看临时表状态

flush privileges;更新权限的相关信息

授权(一组权限的集合:角色)

授权授的是什么,是权限吗

1:授予权限

mysql>grant select on auth.* to 'zhangsan' @'localhost' identified by '123456'; 本机登录

mysql>grant select on auth.* to 'zhangsan' @'192.168.10.%' identified by '123456'; 特定网段

mysql>grant select on auth.* to 'zhangsan' @'192.168.10.101' identified by '123456'; 指定ip

2:查看权限

mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

3:验证权限

[root@localhost ~]# mysql -u zhangsan -p123456

http://www.lryc.cn/news/387898.html

相关文章:

  • 43.三倍游戏
  • LoadBalance 负载均衡
  • Wails 安装初体验
  • 架构师篇-10、DDD实战篇:通过领域模型落地系统
  • C++ | Leetcode C++题解之第190题颠倒二进制位
  • Git安装与使用及整合IDEA使用的详细教程
  • 高效办公秘诀:使用Excel超级处理器提高工作效率,提升职场竞争力
  • 深入探讨Python中的元编程:装饰器与元类
  • MaxKb/open-webui+Ollama运行模型
  • 2-requests模块(6节课学会爬虫)
  • 使用ECharts创建动态数据可视化图表
  • Nacos配置中心客户端源码分析(一): 客户端如何初始化配置
  • gin数据解析,绑定和渲染
  • Django 对模型创建的两表插入数据
  • Lua: 轻量级多用途脚本语言
  • PotPlayer安装及高分辨率设置
  • 实现写入缓存策略的最佳方法探讨
  • 【Day03】0基础微信小程序入门-学习笔记
  • libctk shared library的设计及编码实践记录
  • 【代码随想录训练营】【Day 65】【图论-2】| 卡码 99
  • 【动态规划】139. 单词拆分
  • 【C++】空指针访问成员函数
  • Linux的IO易错点总结
  • 【Android面试八股文】说一说你对Android中的Context的理解吧
  • AI在音乐创作中的角色:创造还是毁灭?
  • [深入理解DDR] 总目录
  • 模板方法模式在金融业务中的应用及其框架实现
  • leetcode347.前k个高频元素
  • c++(二)
  • 基于PHP的初中数学题库管理系统