mysql基础操作2

MySQL基础命令


1.DML操作

DML操作包括增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT),均属针对表的操作。

1.1insert语句
mysql> insert hwf(id,name,age) values(1,'zhanglang',5),(2,'yongshao',6),(3,'nigger',6),(4,'jilao',8),(5,'jiaopi',7);
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)
1.2select语句

字段column表示法

表示符代表什么
*所有字段
as字段别名,如col1 AS alias1当表名很长时用别名代替

条件判断语句where

操作类型常用操作符
操作符>,<,>=,<=,=,!=
BETWEEN column# AND column#
LIKE:模糊匹配
RLIKE:基于正则表达式进行模式匹配IS NOT NULL:非空IS NULL:空
条件逻辑操作AND
OR
NOT
//查询所有字段
mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)
//查询名字
mysql> select name from hwf;
+-----------+
| name      |
+-----------+
| zhanglang |
| yongshao  |
| nigger    |
| jilao     |
| jiaopi    |
+-----------+
5 rows in set (0.00 sec)

//以id升序排列(一般都是以升序排列的)
mysql> select * from hwf order by id;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

//以id降序排序
mysql> select * from hwf order by id desc;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  5 | jiaopi    |    7 |
|  4 | jilao     |    8 |
|  3 | nigger    |    6 |
|  2 | yongshao  |    6 |
|  1 | zhanglang |    5 |
+----+-----------+------+
5 rows in set (0.00 sec)

//升序排序取前两个
mysql> select * from hwf order by id limit 2;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
+----+-----------+------+
2 rows in set (0.00 sec)

//以升序排序跳过第一个取下面两个
mysql> select * from hwf order by id limit 1,2;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  2 | yongshao |    6 |
|  3 | nigger   |    6 |
+----+----------+------+
2 rows in set (0.00 sec)

//查询年龄大于,小于,大于等于,小于等于
mysql> select * from hwf where age > 4;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

mysql> select * from hwf where age >=5;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

mysql> select * from hwf where age < 6;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
+----+-----------+------+
mysql> select * from hwf where age <= 6;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
+----+-----------+------+
3 rows in set (0.00 sec)

//查找年龄等于5和名字为zhanglang
mysql> select * from hwf where age =5 and name = 'zhanglang';
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
+----+-----------+------+
1 row in set (0.00 sec)

//查询年龄在5和7之前
mysql> select * from hwf where age between 5 and 7;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
4 rows in set (0.00 sec)


//查找年龄不为空的内容
mysql> select * from hwf where age is not null;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

//查找年龄为空的内容
mysql> select * from hwf where age is null;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  6 | heipi | NULL |
+----+-------+------+
1 row in set (0.00 sec)

1.3update语句

mysql> select * from hwf;		
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
|  6 | heipi     | NULL |
+----+-----------+------+
6 rows in set (0.00 sec)

mysql> update hwf set age = 20 where name = 'heipi';		
Query OK, 1 row affected (0.00 sec)			//将heipi年龄修改为20
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
|  6 | heipi     |   20 |
+----+-----------+------+
6 rows in set (0.00 sec)
1.4delete语句
mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
|  6 | heipi     |   20 |
+----+-----------+------+
6 rows in set (0.00 sec)

mysql> delete from hwf where id = 6;		//将id等于6的字段删除
Query OK, 1 row affected (0.00 sec)

mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

//删除整张表的内容
mysql> delete from hwf;
Query OK, 5 rows affected (0.01 sec)

mysql> select * from hwf;
Empty set (0.00 sec)

mysql> desc hwf;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | tinyint(4)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
1.5truncate语句

truncate与delete的区别:

语句类型特点
deleteDELETE删除表内容时仅删除内容,但会保留表结构DELETE
语句每次删除一行,并在事务日志中为所删除的
每行记录一项可以通过回滚事务日志恢
复数据非常占用空间
truncate删除表中所有数据,且无法恢复表结构、约束和索引等保持不变,
新添加的行计数值重置为初始值执行速度比DELETE快,
且使用的系统和事务日志资源少通过释放存储表数据所用的数据页来删除数据,
并且只在事务日志中记录页的释放对于有外键约束引用的表,
不能使用TRUNCATE TABLE删除数据不能用于加入了索引视图的表
mysql> select * from hwf;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | zhanglang |    5 |
|  2 | yongshao  |    6 |
|  3 | nigger    |    6 |
|  4 | jilao     |    8 |
|  5 | jiaopi    |    7 |
+----+-----------+------+
5 rows in set (0.00 sec)

mysql> truncate hwf;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from hwf;
Empty set (0.00 sec)

mysql> desc hwf;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | tinyint(4)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

2.DCL操作

2.1创建授权grant

权限类型(priv_type)

权限类型代表什么?
ALL所有权限
SELECT读取内容的权限
INSERT插入内容的权限
UPDATE更新内容的权限
DELETE删除内容的权限

指定要操作的对象db_name.table_name

表示方式意义
.所有库的所有表
db_name指定库的所有表
db_name.table_name指定库的指定表
mysql> grant all on *.* to 'joy'@'192.168.159.101' identified by '123456';			//授权joy用户在192.168.159.101上远程登陆访问所有数据库所有表权限
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant all on *.* to 'tom'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)		//授予tom用户可以在任何位置远程登陆访问所有数据库和表

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0OBpsf7E-1658823763966)(http://re6nm1tjj.bkt.clouddn.com/3.png)]

2.2查看授权
mysql> show grants;		//查看当前用户的权限信息
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for 'joy'@'192.168.159.101';		//查看joy的权限
+--------------------------------------------------------+
| Grants for joy@192.168.159.101                         |
+--------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'joy'@'192.168.159.101' |
+--------------------------------------------------------+
1 row in set (0.00 sec)
2.3取消授权revoke
mysql> revoke all on *.* from 'joy'@'192.168.159.101'
    -> ;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.实战案例

3.1.搭建mysql服务
1、wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
2、rpm -Uvh  mysql57-community-release-el7-11.noarch.rpm
3、yum  module disable mysql  //禁用mysql
4、yum -y install mysql-community-server mysql-community-client  mysql-community-common mysql-community-devel  --nogpgcheck

3.2创建一个以你名字为名的数据库,并创建一张表student
mysql> create database huangweifeng;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| huangweifeng       |
| mysql              |
| performance_schema |
| runtime            |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> use huangweifeng;
Database changed
mysql> create table student(id int(11) not null primary key auto_increment ,name varchar(100),age tinyint(4));
Query OK, 0 rows affected (0.11 sec)

mysql> show tables;
+------------------------+
| Tables_in_huangweifeng |
+------------------------+
| student                |
+------------------------+
1 row in set (0.00 sec)

mysql> desc student;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | YES  |     | NULL    |                |
| age   | tinyint(4)   | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
3.3查看下该新建的表有无内容(用select语句)
3.4往新建的student表中插入数据(用insert语句)
mysql> insert student (name,age) values('tom',20),('jerry',23),('wangqing',25),('sean',28),('zhang)shan',26),('zhangshan',20),('lisi',null),('chenshuo',10),('wangwu',3),('qiuyi',15),('qiuxiaotian',20);
Query OK, 7 rows affected (0.01 sec)
Records: 7  Duplicates: 0  Warnings: 0

mysql> select * from student;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  1 | tom         |   20 |
|  2 | jerry       |   23 |
|  3 | wangqing    |   25 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  6 | zhangshan   |   20 |
|  7 | lisi        | NULL |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |    3 |
| 10 | qiuyi       |   15 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
11 rows in set (0.01 sec)
3.5修改lisi的年龄为50
mysql> update student set age = 50 where name = 'lisi';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  1 | tom         |   20 |
|  2 | jerry       |   23 |
|  3 | wangqing    |   25 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  6 | zhangshan   |   20 |
|  7 | lisi        |   50 |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |    3 |
| 10 | qiuyi       |   15 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
11 rows in set (0.00 sec)
3.6以age字段降序排序
mysql> select * from student order by age desc;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  7 | lisi        |   50 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  3 | wangqing    |   25 |
|  2 | jerry       |   23 |
|  1 | tom         |   20 |
|  6 | zhangshan   |   20 |
| 11 | qiuxiaotian |   20 |
| 10 | qiuyi       |   15 |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |    3 |
+----+-------------+------+
11 rows in set (0.00 sec)
3.7查询student表中年龄最小的3位同学跳过前2位
mysql> select * from student order by age limit 2,3;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
| 10 | qiuyi       |   15 |
|  1 | tom         |   20 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
3 rows in set (0.00 sec)
3.8查询student表中年龄最大的4位同学
mysql> select * from student order by age desc limit 4;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  7 | lisi      |   50 |
|  4 | sean      |   28 |
|  5 | zhangshan |   26 |
|  3 | wangqing  |   25 |
+----+-----------+------+
4 rows in set (0.00 sec)
3.9查询student表中名字叫zhangshan的记录
mysql> select * from student where name = 'zhangshan';
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  5 | zhangshan |   26 |
|  6 | zhangshan |   20 |
+----+-----------+------+
2 rows in set (0.00 sec)
3.10.查询student表中名字叫zhangshan且年龄大于20岁的记录
mysql> select * from student where name = 'zhangshan' and age > 20;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  5 | zhangshan |   26 |
+----+-----------+------+
1 row in set (0.00 sec)
3.11.查询student表中年龄在23到30之间的记录
mysql> select * from student where age between 23 and 30;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  2 | jerry     |   23 |
|  3 | wangqing  |   25 |
|  4 | sean      |   28 |
|  5 | zhangshan |   26 |
+----+-----------+------+
4 rows in set (0.00 sec)
3.12修改wangwu的年龄为100
mysql> update student set age = 100 where name = 'wangwu';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  1 | tom         |   20 |
|  2 | jerry       |   23 |
|  3 | wangqing    |   25 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  6 | zhangshan   |   20 |
|  7 | lisi        |   50 |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |  100 |
| 10 | qiuyi       |   15 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
11 rows in set (0.00 sec)
3.13.删除student中名字叫zhangshan且年龄小于等于20的记录
mysql> delete from student where age <= 20 and name = 'zhangshan';
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  1 | tom         |   20 |
|  2 | jerry       |   23 |
|  3 | wangqing    |   25 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  7 | lisi        |   50 |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |  100 |
| 10 | qiuyi       |   15 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
10 rows in set (0.01 sec)

han且年龄小于等于20的记录
```bash
mysql> delete from student where age <= 20 and name = 'zhangshan';
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;
+----+-------------+------+
| id | name        | age  |
+----+-------------+------+
|  1 | tom         |   20 |
|  2 | jerry       |   23 |
|  3 | wangqing    |   25 |
|  4 | sean        |   28 |
|  5 | zhangshan   |   26 |
|  7 | lisi        |   50 |
|  8 | chenshuo    |   10 |
|  9 | wangwu      |  100 |
| 10 | qiuyi       |   15 |
| 11 | qiuxiaotian |   20 |
+----+-------------+------+
10 rows in set (0.01 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

1we11

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

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

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

打赏作者

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

抵扣说明:

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

余额充值