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

linux基础-数据库建库建表

数据库建库建表

数据库内部:1、通过SQL解析器解析2、存储引擎

systemctl stop firewalld 关闭防火墙

1)启动数据库mysql

#启动
systemctl start mariadb 
#检查进程
ps -ef|grep mysql|grep -v mysql
#检查端口
netstat -lnt
#登录测试(后输入密码)

mysql -u用户名 -p

mysql -uroot -p

mariadb数据库用户管理

1)查询有哪些用户
MariaDB> select user,host from mysql.user;
#查询 mysql里用户组成:用户@主机域
2)删除用户语法
drop user 'user'@'主机域';
drop user 'root'@'::1';
3)查看当前登录用户
MariaDB [(none)]>select user();
#其中root@localhost为管理员用户,使用这个用户只允许在本机连接。
查库
MariaDB [(none)]> show databases;
#列出所有已经创建的数据库名称
MariaDB [mysql]> show databases like '%te%';
#所有数据库名称中包含 "te" 字符串的数据库

切换数据库

语法:use 库名;
MariaDB [(none)]>use test;

查看当前数据库

方法1:直接看提示符
MariaDB [test]>
方法2:
select database(); 
 ##()里不需要填内容

删库

语法:drop database 库名;
drop database test;
##库名用小写,命令不分大小写,推荐小写。

建库

create database oldboy;
##默认建库
show databases;
#查看

查看建库SQL语句(别人建的库)

语法:show create database 库名;

MariaDB [mysql]> show create database oldboy;
+----------+--------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------+
| oldboy | CREATE DATABASE `oldboy` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
说明:可以看到库的字符集已经被默认指定latin1。
​
##字符集介绍:简单说就是一个[密码本]:
企业工作字符集:
utf8,gbk,当下最主流就是utf8mb4(8.0默认的字符集)

查看数据库字符集

指定字符集建库

语法:CREATE DATABASE 数据库名字 CHARACTER SET 字符集 COLLATE 校准规则;  
##高版本数据库,直接CREATE DATABASE 数据库名字;即可。
create database oldgirl character set utf8 collate utf8_general_ci;

改库

#查看oldboy建库语句

show create database oldboy;
##将oldboy库的字符集改为utf8
alter database oldboy character set utf8;
#方法二collate utf8_general_ci校准规则可省略
alter database oldboy character set utf8 collate utf8_general_ci;
#再查看oldboy建库语句
show create database oldboy;

用户管理

管理要点:一个库对应一个管理员

查询用户

root@localhost管理员用户,使用这个用户只允许在本机连接

select user,host from mysql.user;

删除用户

drop user '用户'@'主机域';
drop user 'root'@'::1';

查看当前登录用户

select user();

创建用户

create user 用户@主机域 identified by '密码';
create user blog@'10.0.0.%' identified by 'oldboy123';
#create user创建新用户、blog新创的用户名、'10.0.0.%'主机域、identified by 'oldboy123'指定了用户的密码为oldboy。
授权主机范围
##单机服务器
localhost #只能从本机访问,场景单机应用服务和数据库在一台机器推荐
127.0.0.1 #只能从本机访问,场景单机应用服务和数据库在一台机器推荐
10.0.0.166 #授权某个IP访问
====================================
##工作场景:是集群服务器,一堆应用服务器都会连接后端的数据库mysql.
10.0.0.0/24 #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.0/255.255.255.0 #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.% #授权一个网段,推荐10.0.0.1--10.0.0.254
​
##禁止使用的授权
192.168.%   #更大网段授权 192.168.0.1---192.168.255.254
%           #任意主机都可以连接root@%。坚决杜绝,打死都要杜绝。
​
#工作场景
企业里创建用户一般是授权一个【内网网段服务器登录】。
10.0.0.%(%为通配符,匹配所有内容)。
10.0.0.0/24 一个网段

用户授权

创建用户并且授权

#创建用户
create user 用户@主机域 identified by '密码';  
#授权
grant 权限 on 库.表 to 用户@主机域;​
#授权所有权限给blog
grant all on *.* to blog@'10.0.0.%';
#检查
show grants for blog@'10.0.0.%';
##GRANT 【ALL PRIVILEGES】 ON *.* TO 'blog'@'10.0.0.%'

数据库核心权限

#1.查看数据库有哪些权限可以授权
show privileges;
​
#2.核心授权权限
###管理表的内容,开发人员需要###
SELECT 查询(数据)
INSERT 插入(数据)
UPDETE 修改(数据)
DELETE 删除(数据)
​
###表、库、索引,DBA管理员需要
CREATE 创建(数据库、表等对象)
DROP 删除(数据库、表等对象)
INDEX 索引
ALTER 修改(数据库、表等对象)

在数据库里建表

建表的基本命令语法为:

create table <表名> (
<字段名1> <类型1> ,
…
<字段名n> <类型n>);
#说明:create table是关键字,不能更改,但是大小写可以变化。表名只能为数字、字母、下划线,不用数字开头。

字段类型说明

整型:数字-整数

tinyint # #微小整型 1byte=8bit=2^8=256 #年龄

int # #大整型 4byte=2^32=(40亿+)

bigint #超大整型 8byte=2^64(40亿*40亿=1600亿亿)

字符:所有符号都是字符,含整数

varchar 变长字符类型。 varchar(3) abc存储abc,a存储a,abcd存储abc,丢了d。

char 定长字符类型。 char(3) abc存储abc,a存储a空格空格,abcd存储abc,丢了d。

4)建表语句

删除oldboy库

drop database oldboy;

创建oldboy库

create database oldboy;

切换到oldboy库

use oldboy;

查看所有表

show tables;

建表

create table stu1(id int(10) not null,name varchar(64) not null,age tinyint(3) not NULL default '0',dept varchar(16) default NULL);

说明:

not null 是不能为空

default '0', 设置默认值为0.

建表语句详细说明

CREATE TABLE stu1 ( #<== CREATE TABLE是创建表的固定关键字,stu1为表名。

id int(4) NOT NULL, #<==学号列,数字类型,长度为4,不为空值。

name varchar(64) NOT NULL, #<==名字列,定长字符类型,长度20,不为空值。

age tinyint(3) NOT NULL DEFAULT '0', #<==年龄列,很小的数字类型,长度为2,不为空,默认为0值。

dept varchar(16) DEFAULT NULL #<==系别列,变长字符类型,长度16,默认为空。

) ENGINE=InnoDB DEFAULT CHARSET=utf8 #<==引擎和字符集,引擎默认为InnoDB,字符集,继承库的utf8。

修改表名

语法:rename table 原表名 to 新表名

#将stu1改为stu2。

rename table stu1 to stu2;
登录数据库;
show databases查库;
use [数据库]转入数据库;
show tables查表;
rename table [原表名] to [新表名]改表;

删除表

语法:drop table <表名>;
​
#删除stu2表
drop table stu2;
#查表
show tables; 
#删除oldboy库
drop database oldboy;
#查库
show databases;

相关文章:

  • SiC碳化硅陶瓷膜的热导性
  • Three.js动效(第11辑):大屏+3D+动效,三位一体,是绝配。
  • 为什么选择mobx
  • vue使用tailwindcss
  • Python | 刷题笔记
  • vue -ant -design 卡片是布局 实现动态计算 当前的 左右间距 实现居中
  • MySQL——覆盖索引
  • 面试经典题:创建三个线程,按顺序依次循环打印hello+i
  • 你觉得学历在贬值吗?
  • 关于ASPICE 4.0评估师资质更新的说明-亚远景科技
  • Java多线程核心工具类
  • 运维开发之Linux机器码
  • 健康中国,福佑全球!第32届广州大健康展将于6月14-16日盛大举办
  • 21、matlab生成脉冲序列:pulstran()函数
  • thinkpad T440p ubuntu-slam软件安装记录
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • (三)从jvm层面了解线程的启动和停止
  • [译]CSS 居中(Center)方法大合集
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Java 23种设计模式 之单例模式 7种实现方式
  • JS数组方法汇总
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • php ci框架整合银盛支付
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • vue-cli3搭建项目
  • 检测对象或数组
  • 全栈开发——Linux
  • 小试R空间处理新库sf
  • 鱼骨图 - 如何绘制?
  • 自制字幕遮挡器
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #《AI中文版》V3 第 1 章 概述
  • (10)STL算法之搜索(二) 二分查找
  • (BFS)hdoj2377-Bus Pass
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (强烈推荐)移动端音视频从零到上手(下)
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • **PHP分步表单提交思路(分页表单提交)
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net 调用php,php 调用.net com组件 --
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net6Api后台+uniapp导出Excel
  • .NET企业级应用架构设计系列之技术选型
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • /etc/skel 目录作用