文章目录
前言
- MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
- MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
一:数据库基本操作命令
1.1:MySQL常用管理操作是哪些?
- 查看数据库结构
- 创建及删除库和表
- 管理表的记录
1.2:查看数据库列表信息的命令是?
-
show databases
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
1.3:查看数据库中的数据表信息命令是?
-
use 数据库名
-
show tables
mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | engine_cost | | event | | func | | general_log | ...省略内容
1.4:显示数据表的结构(字段)命令是?
-
describe [数据库名.]表名
mysql> describe user; +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(32) | NO | PRI | | | | Select_priv | enum('N','Y') | NO | | N | | | Insert_priv | enum('N','Y') | NO | | N ...省略内容
1.5:SQL语言概述
-
SQL语言
- 是Structured Query Language的缩写,及结构化查询语言
- 是关系型数据库的标准语言
- 用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能
-
SQL分类
-
DDL:数据定义语言
-
DML:数据操纵语言
-
DQL:数据查询语言
-
DCL:数据控制语言
-
二:SQL操作管理命令
2.1:DDL操作命令
2.1.1:DDL语句是什么作用?
- DDL语句用于创建数据库对象,如库,表,索引等
2.1.2:DDL语句创建库,表的命令是?
-
创建数据库:create database 数据库名
-
创建数据表:create table 表名(字段定义…)
mysql> create database kkk; '//创建库' Query OK, 1 row affected (0.00 sec) mysql> use kkk; Database changed
mysql> create table bbb( '//创建表' -> name char(16)not null, '//名称不为空,16个字符' -> passwd char(48) default '', '//密码默认为空,密码课48个字符' -> primary key(name)); '//主键' Query OK, 0 rows affected (0.01 sec) mysql> create table info (id int(4) not null primary key,name char(10) not null,address varchar(50) default 'nj'); Query OK, 0 rows affected (0.01 sec) mysql> show tables; ...省略内容
2.1.3:DDL语句删除库,表的命令是?
-
删除指定的数据表:drop table [数据库名.]表名
-
删除指定的数据库:drop database 数据库名
mysql> drop table kkk.bbb; '//删除表' Query OK, 0 rows affected (0.00 sec) mysql> drop database kkk; '//删除库' Query OK, 0 rows affected (0.00 sec)
2.2:DML操作命令
2.2.1:DML语句的作用是?
- DML语句用于对表中的数据进行管理
- 包括以下操作
- insert:插入新数据
- update:更新原有数据
- delete:删除不需要的数据
2.2.2:向数据表中插入新的数据记录命令是?
-
insert into 表名(字段1,字段2,…)values(字段1的值,字段2的值,…)
-
[root@localhost ~]# mysql -uroot -p Enter password: mysql> create database yiku; '//创建库' mysql> use yiku; '//进入库' mysql> create table yibiao (id int(4) not null primary key,name char(10) not null,address varchar(50) default '66666'); '//创建表,id为整形,4个字节且不为空,主键,名字10个字符不为空,地址默认66666,50个字符' Query OK, 0 rows affected (0.01 sec) mysql> show tables; +----------------+ | Tables_in_yiku | +----------------+ | yibiao | +----------------+ 1 row in set (0.00 sec) ..省略1创建过程 mysql> insert into yibiao values(2,'王二麻子','北京'); Query OK, 1 row affected (0.00 sec) mysql> select * from yibiao; '//查看表所有内容' +----+--------------+---------+ | id | name | address | +----+--------------+---------+ | 1 | 第一 | no | | 2 | 王二麻子 | 北京 | +----+--------------+---------+ 2 rows in set (0.00 sec) ...多添加几个用户
2.2.3:修改,更新数据表中的数据记录的命令是?
-
update 表名 set 字段名 1=值1[,字段名2=值2] where条件表达式
-
mysql> update yibiao set name='叫兽' where id=1 or id=4; '//修改id1和id4的name' Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from yibiao; +----+--------------+---------+ | id | name | address | +----+--------------+---------+ | 1 | 叫兽 | no | | 2 | 王二麻子 | 北京 | | 3 | 王三麻子 | 北京 | | 4 | 叫兽 | 北京 | | 5 | 王五麻子 | 北京 | +----+--------------+---------+ 5 rows in set (0.00 sec) mysql> update yibiao set name='ermazi'; '//修改所有id的name' Query OK, 5 rows affected (0.01 sec) Rows matched: 5 Changed: 5 Warnings: 0 mysql> select * from yibiao; +----+--------+---------+ | id | name | address | +----+--------+---------+ | 1 | ermazi | no | | 2 | ermazi | 北京 | | 3 | ermazi | 北京 | | 4 | ermazi | 北京 | | 5 | ermazi | 北京 | +----+--------+---------+ 5 rows in set (0.00 sec)
2.2.4:在数据表中删除指定的数据记录命令是?
-
delete from 表名 where条件表达式
mysql> delete from yibiao where id=1; Query OK, 1 row affected (0.01 sec) mysql> select * from yibiao; +----+--------+---------+ | id | name | address | +----+--------+---------+ | 2 | ermazi | 北京 | | 3 | ermazi | 北京 | | 4 | ermazi | 北京 | | 5 | ermazi | 北京 | +----+--------+---------+ 4 rows in set (0.00 sec)
-
不带where条件的语句表示删除表中所有记录(谨慎操作)
mysql> delete from yibiao; Query OK, 4 rows affected (0.00 sec) mysql> select * from yibiao; Empty set (0.00 sec)
2.2.5:查看表结构命令是?
mysql> desc yibiao;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | char(10) | NO | | NULL | |
| address | varchar(50) | YES | | 66666 | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
2.3:DQL操作命令
2.3.1:DQL语句的作用是?
- DQL是数据查询语句,只有一条:SELECT
- 用于从数据表中查找符合条件的数据记录
2.3.2:不指定条件查询命令是?
-
SELECT字段名1,字段名2…FROM表名
mysql> select name from yibiao; +--------+ | name | +--------+ | 小包 | | 二包 | | 二包 | | 二包 | | 二包 | +--------+ 5 rows in set (0.00 sec) mysql> select name,address from yibiao; +--------+---------+ | name | address | +--------+---------+ | 小包 | 北京 | | 二包 | 北京 | | 二包 | 北京 | | 二包 | 北京 | | 二包 | 北京 | +--------+---------+ 5 rows in set (0.00 sec)
2.3.3:指定条件查询的命令是?
-
SELECT字段名1,字段名2…FROM表名 WHERE条件表达式
mysql> select name,address from yibiao where id=1 or id=3; +--------+---------+ | name | address | +--------+---------+ | 小包 | 北京 | | 二包 | 北京 | +--------+---------+ 2 rows in set (0.00 sec)
2.4:DCL操作命令
2.4.1:DCL语句的作用是?
- 设置或查看用户的权限,或者创建用户
2.4.2:设置用户权限的命令是?
-
若用户已存在,则更改用户密码
-
若用户不存在,则新建用户
-
GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码′ ]
-
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option; '//all privileges:所有权限,%:所有终端' Query OK, 0 rows affected, 1 warning (0.00 sec)
2.4.3:查看用户权限的命令是?
-
SHOW GRANTS FOR 用户名@来源地址
mysql> show grants for 'root'@'%'; +-------------------------------------------------------------+ | Grants for root@% | +-------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION | +-------------------------------------------------------------+ 1 row in set (0.00 sec)
2.4.4:撤销用户权限的命令是?
-
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
mysql> revoke all privileges on *.* from 'root'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'root'@'%'; +----------------------------------------------------+ | Grants for root@% | +----------------------------------------------------+ | GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION | +----------------------------------------------------+ 1 row in set (0.00 sec)
三:实例演示
3.1:建立公司IT运营部工资表,需求
-
为公司建立员工工资数据库salary
-
在salary数据库中,建立IT_salary数据表,以保存IT运营部员工的工资信息,如下表所示
3.2:实操
-
建立数据库salary
mysql> create database salary; Query OK, 1 row affected (0.01 sec)
-
建立数据表IT_salary
mysql> create table IT_salary( -> 岗位类型 varchar(32) not null, -> 姓名 char(16) not null, -> 年龄 tinyint not null, -> 员工ID smallint not null, -> 学历 char(16) default '大专', -> 年限 tinyint not null, -> 薪资 int not null, -> primary key (员工ID)); Query OK, 0 rows affected (0.01 sec) mysql> desc IT_salary; +--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | 岗位类型 | varchar(32) | NO | | NULL | | | 姓名 | char(16) | NO | | NULL | | | 年龄 | tinyint(4) | NO | | NULL | | | 员工ID | smallint(6) | NO | PRI | NULL | | | 学历 | char(16) | YES | | 大专 | | | 年限 | tinyint(4) | NO | | NULL | | | 薪资 | int(11) | NO | | NULL | | +--------------+-------------+------+-----+---------+-------+ 7 rows in set (0.00 sec)
-
填充数据
mysql> insert into IT_salary values('网络工程师','孙空悟',27,011,'本科',3,4800); Query OK, 1 row affected (0.00 sec) mysql> select * from IT_salary; +-----------------+-----------+--------+----------+--------+--------+--------+ | 岗位类型 | 姓名 | 年龄 | 员工ID | 学历 | 年限 | 薪资 | +-----------------+-----------+--------+----------+--------+--------+--------+ | 网络工程师 | 孙空悟 | 27 | 11 | 本科 | 3 | 4800 | +-----------------+-----------+--------+----------+--------+--------+--------+ 1 row in set (0.00 sec)
-
相同方法填充其他数据即可
四:Windows字符界面MySQL安装使用
4.1:准备软件包
- 准备软件包,可官网下载,需要资源,也可私我
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-korFECAg-1577966867267)(D:\Typora\截图\1577964889874.png)]
4.2:安装
- 双击打开后,一直下一步即可(点击next,excute,finish等)
- 全部一直下一步就行了
4.3:设置环境变量
-
复制环境路径
此电脑–C盘–Program Files–MySQL–MySQL Server 5.7–bin–复制路径
-
设置环境
右击此电脑–属性–高级系统设置–环境变量–系统变量中选中Path–编辑–粘贴路径
五:Windows图形界面MySQL安装使用
5.1:准备软件包
-
没有软件包可以私我
5.2:安装
注册
可以正常使用了,图形化界面操作不复杂。