mysql基础(二)
1.mysql的组成
- 客户端
- mysql:CLI交互式客户端程序
- mysql_secure_installation:安全初始化,强烈建议安装完以后执行此命令
- mysqldump:mysql备份工具
- mysqladmin
- 服务器端
- mysqld
mysql_secure_installation //更改密码,不知道密码的情况下也可修改
- mysqld
1.2 mysql工具的使用
- -uUSERNAME //指定用户名,默认为root
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.38 MySQL Community Server (GPL)
- -hHOST //指定服务器主机,默认为localhost,推荐使用ip地址 远程登录mysql
- -pPASSWORD //指定用户的密码
[root@localhost ~]# mysql -uroot -prenweiwei123! -hloclhost
- -P# //指定数据库监听的端口,这里的#需用实际的端口号代替,如-P3306
[root@localhost ~]# mysql -uroot -prenweiwei123! -P3306
- -V //查看当前使用的mysql版本
[root@localhost ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using EditLine wrapper
- -e //表示不登录mysql查看
[root@localhost ~]# mysql -uroot -prenweiwei123! -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
1.3 服务器监听的两种socket地址
socket类型 | 说明 |
---|---|
ip socket | 默认监听在tcp的3306端口,支持远程通信 |
unix sock | 监听在sock文件(/tmp/mysql.sock,/var/lib/mysql/mysql.sock)仅支持本地通信 server地址只能是:localhost,127.0.0.1 |
//本地通讯,内部通讯
[root@localhost ~]# mysql -uroot -prenweiwei123! -S /var/lib/mysql/mysql.sock
1.4mysql数据类型
- 数据类型可以分为三类:
-
数值类型
-
日期和时间类型
-
字符串类型
-
// 注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
2.mysql数据库操作
2.1 DDL操作
2.1.1 数据库操作
//创建数据库
mysql> create database renweiwei;
Query OK, 1 row affected (0.00 sec)
//查看数据库创建成功没
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| renweiwei |
| sys |
+--------------------+
5 rows in set (0.00 sec)
//删除数据库
mysql> drop database renweiwei;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
2.1.2 表操作
首先进入刚刚创建的数据库renweiwei
例如:mysql> use renweiwei
或者也可在外面直接创建表,但要指定数据库
例如:mysql> create table renweiwei.linux()
mysql> create table linux(id int not null,name varchar(20) not null,age tinyint(2));
Query OK, 0 rows affected (0.00 sec)
//查看创建的表
mysql> show tables;
+---------------------+
| Tables_in_renweiwei |
+---------------------+
| linux |
+---------------------+
1 row in set (0.00 sec)
//查看这个表的结构
mysql> desc linux;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | tinyint(2) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
//删除表
mysql> drop table linux;
Query OK, 0 rows affected (0.00 sec)
2.1.3用户操作
-
mysql用户帐号由两部分组成,如’USERNAME’@‘HOST’,表示此USERNAME只能从此HOST上远程登录
-
这里(‘USERNAME’@‘HOST’)的HOST用于限制此用户可通过哪些主机远程连接mysq