DB_Lab1 DBMS的安装和使用
Edited by 颍川散人 | Data: 2022.2.25 |
---|
实验目的
- 通过安装某个数据库管理系统,初步了解DBMS的运行环境
- 了解DBMS交互界面、图形界面和系统管理工具的使用
- 搭建实验平台
实验平台
- 操作系统:macOS
- 数据库管理系统:MySQL
实验内容和要求
1.根据官方文档,安装DBMS
官网(https://dev.mysql.com/downloads/mysql/)下载安装后,打开terminal,配置环境变量
输入指令vim ~/.zshrc
在文件中写入alias mysql=/usr/local/mysql/bin/mysql
,wq保存退出
输入指令source ~/.zshrc
输入指令mysql --version
,得到以下结果
1 | /usr/local/mysql/bin/mysql Ver 8.0.28 for macos11 on arm64 (MySQL Community Server - GPL) |
说明安装成功
2.了解DBMS的用户管理
2.1 添加用户
在shell键入指令mysql -u root -p
并输入密码,以root用户登陆数据库
键入指令create user user_1 identified by '12345678';
创建了用户user_1,并设置了密码为12345678
在mysql.user表中可以查看用户的信息
1 | mysql> select User,Host from mysql.user where user = 'user_1'; |
2.2 授权
可以通过语句show grants for 'user_1';
来查看权限
可以用以下指令赋予制定用户对指定数据库的操作权限
1 | grant all privileges on test.* to user_1@'%'; |
可以通过指令show grants for 'user_1';
来查看用户权限
1 | mysql> show grants for 'user_1'; |
privilegesCode
(授予权限类型):all privileges (所有权限)select(读取权限)delete(删除权限)update(更新权限)create(更新权限)drop(删除数据库数据表权限)
dbName.tableName
(授予权限的具体数据库或数据表).
授予所有数据库的权限dbName.*
授予dbName数据库的所有数据表的权限dbName.dbTable
授予dbName数据库中dbTable数据表的权限
username@host
表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:localhost
只允许本机登陆%
允许除了本机以外任意一台机器远程登录103.135.248.242
具体的ip地址表示只允许特定ip的用户登录
2.3 修改密码
运行以下指令可以修改用户的密码
1 | set password for 'user_1'@'%' = '88888888'; |
2.4 删除用户
运行以下指令可以删除用户
1 | drop user user_1@'%'; |
3.熟悉基本的交互命令
3.1 创建、删除、选择数据库
创建数据库
1 | create database 数据库名; |
删除数据库
1 | drop database 数据库名; |
选择数据库
1 | use 数据库名; |
3.2 数据类型
- 数值类型:
- TINYINT(1 Bytes) 小整数
- SMALLINT(2 Bytes) 大整数
- MEDIUMINT(3 Bytes) 大整数
- INT(4 Bytes) 大整数
- BIGINT(8 Bytes) 大整数
- FLOAT(4 Bytes) 单精度浮点数
- DOUBLE(8 Bytes) 双精度浮点数
- DECIMAL(对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2) 小数
- 日前和时间类型
- DATE(3 Bytes) 日期值,格式:YYYY-MM-DD
- TIME(3 Bytes) 时间值或持续时间,格式:HH:MM:SS
- YEAR(1 Bytes) 年份值,格式:YYYY
- DATETIME(8 Bytes) 混合日期和时间,格式:YYYY-MM-DD HH:MM:SS
- TIMESTAMP(4 Bytes) 混合日期和时间值,时间戳,格式:YYYYMMDD HHMMSS
- 字符串类型
- CAHR 定长字符串
- VARCHAR 变长字符串
- TINYBLOG 不超过 255 个字符的二进制字符串
- TINYTEXT 短文本字符串
- BLOG 二进制形式的长文本数据
- TEXT 长文本数据
- MEDIUMBLOG 二进制形式的中等长度文本数据
- MEDIUMTEXT 中等长度文本数据
- LONGBLOG 二进制形式的极大文本数据
- LONGTEXT 极大文本数据
3.3 创建、删除数据表
创建数据表的通用语法如下
1 | create table tableName(column_name column_type); |
例子:
1 | mysql> create table student(id INT,name VARCHAR(20)); |
删除数据表
1 | drop table tabelName; |
3.4插入查询更新删除数据
插入的语法形式如下:
1 | insert into tableName(att_1,att_2,att_3,...,att_n) values(val_1,val_2,val_3,...,val_n); |
拿上边创建的表举例子,输入以下:
1 | insert into student(id,name) values(1,'hahaha'); |
完成插入后,可以输入下面的指令查询插入数据
1 | mysql> select * from student; |
此外还有一种更简洁的插入方法,其中values顺序需要和定义的一致
1 | insert into tableName values(val_1,val_2,val_3,...,val_n); |
也可以只插入其中的一部分
1 | mysql> insert into student(id) values(2); |
也可以插入多条
1 | mysql> insert into student(id,name) values(3,'lalala'),(4,'xixixi'); |
使用以下指令来更新
1 | update tableName set att_1 = val_1,att_2 = val_2 where ...; |
例如
1 | mysql> update student set name='ok' where id='3'; |
去掉where限定的话可以更新所有数据
删除特定的数据记录
1 | delete from tableName where ...; |
例子:
1 | mysql> delete from student where id ='4'; |
不加限定where可以删除所有数据
4.熟悉图形界面对数据库表的功能和操作
因为workbench不对apple silicon兼容,故无法使用图形界面工具,仅使用命令行指令