MySQL是一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守了GPL协议,可以免费使用与修改
特点
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S(客户端/服务器)架构
- 安全可靠
Mysql管理操作
数据库管理操作
- 查看数据库结构
- 创建及删除库和表
- 管理表的记录
基本操作命令
查看数据库列表信息
show databases
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
查看数据库中的数据表信息
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 |
……
显示数据表的结构(字段)
describe [数据库名.]表名;
mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(32) | NO | PRI |
……
SQL语句概述
SQL语言
- 是Structured Query Language的缩写,即结构化查询语言
- 是关系型数据库的标准语言
- 用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能
SQL分类
- DDL:数据定义语言
- DML:数据操纵语言
- DQL:数据查询语言
- DCL:数据控制语言
DDL语句操作
DDL语句用于创建/删除数据库对象,如库、表、索引等
使用DDL语句新建库、表
- 创建数据库:
create database 数据库名;
- 创建数据表:
create table 表名(字段定义);
mysql> create database test; //创建名为test的数据库
Query OK, 1 row affected (0.00 sec)
mysql> create table info( //创建名为info的表
-> id int(4) not null, //设置字段id,长度为4且不能为空
-> name char(10) not null, //设置字段name,长度为10且不能为空
-> address varchar(50) default '中国', //设置字段address,设为可变长长度50,默认地址为“中国”
-> primary key (id)); //设置id为主键
Query OK, 0 rows affected (0.02 sec)
使用DDL语句删除库、表
- 删除指定的数据表:
drop table [数据库名.]表名;
- 删除指定的数据库:
drop database 数据库名;
DML语句操作
DML语句用于对表中的数据进行管理
包括以下操作
- insert:插入新数据
- update:更新原有数据
- delete:删除不需要的数据
向数据表中插入新的数据记录
insert into 表名(字段1,字段2,…) values(字段1的值,字段2的值,…);
mysql> insert into info (id,name,address) values (1,'zhangsan','南京');
Query OK, 1 row affected (0.02 sec)
mysql> insert into info (id,name,address) values (2,'lisi',default); //地址段中,设为默认值,加上default,不要为空
Query OK, 1 row affected (0.01 sec)
修改、更新数据表中的数据记录
update 表名 set 字段1=值1[,字段名2=值2] where 条件表达式;
- 不带where条件的语句表示更改表中所有记录(谨慎操作)
mysql> update info set address='北京' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
在数据表中删除指定的数据记录
delete from 表名 where 条件表达式;
- 不带where条件的语句表示删除表中所有记录(谨慎操作)
mysql> delete from info where id=2;
Query OK, 1 row affected (0.02 sec)
DQL语句操作
DQL是数据查询语句,只有一条:select
用于从数据表中查询符合条件的数据记录
查询时可不指定条件
select 字段1,字段2… from 表名;
// * 表示查询所有,写字段名可以查询指定字段
mysql> select * from info;
+----+----------+---------+
| id | name | address |
+----+----------+---------+
| 1 | zhangsan | 北京 |
+----+----------+---------+
1 row in set (0.00 sec)
查询时指定条件
select 字段名1,字段名2 … from 表名 where 条件表达式;
mysql> select name from info where id=1;
+----------+
| name |
+----------+
| zhangsan |
+----------+
1 row in set (0.00 sec)
DCL语句操作
设置用户权限(用户不存在时,则新建用户)
grant 权限列表 on 数据库名.表名 to 用户名@来源地址 [ identified by '密码' ];
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
查看用户权限
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)
撤销用户的权限
revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
mysql> revoke all on *.* from 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
案例:建立公司IT运营部工资表
需求描述
- 为公司建立员工工资数据库 imployee_salary
- 在imployee_salary数据库中,建立IT_salary数据表,以保存IT运营部员工的工资信息,如下表所示
操作步骤
1、安装mysql数据库
2、建立数据库
3、建立数据表并插入字段
4、添加数据记录
5、查看数据表