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;

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux系统中,可以通过以下步骤建库建表: 1. 登录MySQL服务器:在终端输入`mysql -u 用户名 -p`,回车后输入密码即可登录。 2. 创建数据库:在MySQL命令行中输入`CREATE DATABASE 数据库名;`,回车后即可创建一个名为“数据库名”的数据库。 3. 选择数据库:在MySQL命令行中输入`USE 数据库名;`,回车后即可选择该数据库。 4. 创建数据表:在MySQL命令行中输入`CREATE TABLE 表名 (列名1 数据类型1, 列名2 数据类型2, ...);`,回车后即可创建一个名为“表名”的数据表。 5. 插入数据:在MySQL命令行中输入`INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);`,回车后即可向数据表中插入数据。 如果在插入中文数据时出现“Incorrect string value”错误,可能是因为字符编码不匹配导致的。可以通过以下步骤解决: 1. 查看当前MySQL服务器的字符集:在MySQL命令行中输入`SHOW VARIABLES LIKE 'character_set%';`,回车后即可查看当前MySQL服务器的字符集。 2. 修改数据表的字符集:在MySQL命令行中输入`ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;`,回车后即可将数据表的字符集修改为utf8mb4。 3. 修改MySQL服务器的字符集:在MySQL配置文件my.cnf中添加以下内容: ``` [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 然后重启MySQL服务器即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xlbb.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值