网易首页 > 网易号 > 正文 申请入驻

MySQL基本操作命令(DDL、DML、DQL、DCL)

0
分享至

  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational数据库管理系统:关系数据库管理系统)应用软件之一。
  • 伴随着MySQL数据,澳大利亚AB公司开发的漫画型的关系型数据库。随着时间的推移,AB公司把MySQL数据库转移给Sun公司(Java语言的创始公司)后来,Sun经营不善,又把把MySQL数据库转移给甲骨文公司(Oracle数据库)。
  • 定位MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据一个大仓库内,这样就增加了速度。

一:数据库基本操作命令

1.1:mysql查看数据库结构

  • 查看数据库结构
  • 创建及删除库和表
  • 管理表的记录

1.2:查看数据库信息

  • 显示数据库
mysql> show databases;
| Database |
| information_schema |
| mysql |
| performance_schema |
| sys |
4 rows in set (0.00 sec)

1.3:查看数据库中的数据表信息

  • 使用数据库名
  • 显示表格
mysql> use mysql;'进入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 |
...省略内容

1.4:显示数据表的结构(字段)

  • 描述 [数据库名] 表名
mysql> describe user;'也可以使用desc user;'
| Field | Type | Null | Key | Default | Extra |
| Host | char(60) | NO | PRI | | |

二:SQL操作管理命令

2.1:SQL语言概述

  • SQL语言
  • 是Structured Query Language的缩写,及结构化查询语言
  • 是关系型数据库的标准语言
  • 用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能
  • SQL 分类
  • DDL:数据定义语言
  • DML:数据不适用语言
  • DQL:数据语言查询
  • DCL:数据控制语言

2.2:DDL操作命令

2.2.1:创建数据库和表

  • DDL语句用于创建数据库对象,如库,表,索引等
  • 使用DDL语句新建库、表

2.2.2:DDL语句创建库、表的命令

  • 创建数据库:创建数据库 数据库名
  • 创建数据表:创建表表名(字段定义…)
mysql> create database school;
Query OK, 1 row affected (0.00 sec)

mysql> use school;
Database changed

mysql> create table info (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');
Query OK, 0 rows affected (0.02 sec)
'info表名','not null设置不为空','primary key主键','auto_increment自动增长'

2.2.3:DDL语句删除库,表的命令

  • 删除指定的数据表:drop table [数据库名.]表名
  • 删除指定的数据库:drop database 数据库名
mysql> drop table info;'删除表'
Query OK, 0 rows affected (0.00 sec)

mysql> drop database shcool;'删除库'
Query OK, 0 rows affected (0.00 sec)

2.3:DML操作命令

2.3.1:DML语句的作用

  • DML语句用于对表中的数据进行管理
  • 包括以下操作
  • insert:插入新数据
  • 更新:更新原有数据
  • 删除:删除不需要的数据

2.3.2:向数据表中插入新的数据记录命令

mysql> use school'进入school数据库'
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> select * from info;'查看表中数据'
Empty set (0.00 sec)

mysql> show tables;'查看表'
| Tables_in_school |
| info |
1 row in set (0.00 sec)

mysql> desc info;'查看表结构'
| Field | Type | Null | Key | Default | Extra |
| id | int(3) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| score | decimal(5,2) | YES | | NULL | |
| address | varchar(50) | YES | | 未知 | |
4 rows in set (0.00 sec)

mysql> insert into info (id,name,score,address) values (1,'zhangsan',88.5,'nanjing');'插入新的数据记录'
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;
| id | name | score | address |
| 1 | zhangsan | 88.50 | nanjing |
1 row in set (0.00 sec)

mysql> insert into info values (2,'lisi',90,'beijing'),(3,'wangwu',77,'hangzhou');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
'如果不加字段名,默认是所有字段,并且是按照从左往右'
mysql> select * from info;
| id | name | score | address |
| 1 | zhangsan | 88.50 | nanjing |
| 2 | lisi | 90.00 | beijing |
| 3 | wangwu | 77.00 | hangzhou |
3 rows in set (0.00 sec)

mysql> select * from info where score > 80;'筛选出80分以上的数据'
| id | name | score | address |
| 1 | zhangsan | 88.50 | nanjing |
| 2 | lisi | 90.00 | beijing |
2 rows in set (0.00 sec)

mysql> create table tmp as select * from info where score > 80; '筛选出80分以上的并导入进新的表中'
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

2.3.3:向表中添加字段

mysql> alter table sibiao add (id int(3) not null primary key auto_increment);

2.3.4:修改,更新数据表中的数据记录的命令

  • update 表名 set 字段名 1=值1[,字段名2=值2] where 条件表达式
mysql> update info set score=66 where name='zhangsan';'修改张三的分数为66'
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from info;
| id | name | score | address |
| 1 | zhangsan | 66.00 | nanjing |
| 2 | lisi | 90.00 | beijing |
| 3 | wangwu | 77.00 | hangzhou |
3 rows in set (0.00 sec)

mysql> update info set name='zhaoliu';'修改所有id的name'

2.3.5:在数据表中删除指定的数据记录命令

  • 从表名 where 条件表达式中删除
mysql> select * from info;
| id | name | score | address |
| 1 | zhangsan | 66.00 | nanjing |
| 2 | lisi | 90.00 | beijing |
| 3 | wangwu | 77.00 | hangzhou |
3 rows in set (0.00 sec)

mysql> delete from info where score >= 90;
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;
| id | name | score | address |
| 1 | zhangsan | 66.00 | nanjing |
| 3 | wangwu | 77.00 | hangzhou |
2 rows in set (0.00 sec)

不带条件的语句表示删除表中所有记录(高危操作)
mysql> delete from info;
Query OK, 4 rows affected (0.00 sec)

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

2.3.6:查看表结构命令

mysql> desc info;
| Field | Type | Null | Key | Default | Extra |
| id | int(3) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| score | decimal(5,2) | YES | | NULL | |
| address | varchar(50) | YES | | 未知 | |
4 rows in set (0.00 sec)

2.2.7:修改用户登录mysql的密码
mysql> update mysql.user set authentication_string=password('123456') where user='root';
[root@localhost ~]# vim /etc/my.cnf
skip-grant-tables '在[mysqld]下添加'
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql -uroot -p'输入密码123456'

2.4:DQL操作命令

2.4.1:DQL语句的作用

  • DQL是数据查询语句,只有一条:选择
  • 用于从数据表中查找符合条件的数据记录

2.4.2:不指定条件查询命令

  • 选择字段名1,字段名2……从表名
mysql> select name from info;
| name |
| zhangsan |
| wangwu |
2 rows in set (0.00 sec)

mysql> select name,score from info;
| name | score |
| zhangsan | 66.00 |
| wangwu | 77.00 |
2 rows in set (0.00 sec)

2.4.3:指定条件查询的命令

  • select字段名1,字段名2…from 表名WHERE 条件表达式
mysql> select name from info where id=1 or id=3;
| name |
| zhangsan |
| wangwu |
2 rows in set (0.00 sec)

2.5:DCL操作命令

2.5.1:DCL语句的作用

  • 设置或查看用户的权限,或创建用户

2.5.2:设置用户权限的命令

  • 用户已存在,则更改如果用户密码
  • 若用户不存在,则新建用户
  • 将数据库名.表名权限列表授予用户名@来源地址 '密码'
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.5.3:查看用户权限的命令

  • 显示用户名@来源地址的赠款
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 'root'@'localhost';
| 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)

2.5.4:撤销用户权限的命令

  • 撤销用户名@来源地址对数据库名.表名的权限列表
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> revoke all on *.* from 'root'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'root'@'localhost';
| Grants for root@localhost |
| GRANT USAGE ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
2 rows in set (0.00 sec)

三:数据库高级操作

3.1:清空表

  • 从表名中删除
  • 截断表表名
mysql> delete from tmp;
Query OK, 1 row affected (0.00 sec)

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

3.2:临时表

临时建立的表,用于保存一些临时数据,不会长期存在(连接断开,临时表被删除)

mysql> create temporary table temp_info (id int(4) not null auto_increment,name varchar(10) not null,hobbby varchar(10) not null,primary key(id))engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> desc temp_info;
| Field | Type | Null | Key | Default | Extra |
| id | int(4) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| hobby | varchar(10) | NO | | NULL | |
3 rows in set (0.00 sec)

mysql> show tables;'没有看到临时表,因为是放在内存当中'
| Tables_in_school |
| info |
| tmp |
2 rows in set (0.00 sec)
'退出,重新进,临时表没有了'

3.3:克隆表

  • 直接克隆(一气呵成)
mysql> create table kelong as select * from info;'克隆表结构和数据'
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> show tables;
| Tables_in_school |
| info |
| kelong |
| tmp |
3 rows in set (0.00 sec)

  • 喜欢方法

从表完整复制结构生成新表,再导入数据

mysql> create table k like info;'相比较like不能克隆表中的数据'
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
| Tables_in_school |
| info |
| k |
| kelong |
| tmp |
4 rows in set (0.00 sec)

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

mysql> insert into k select * from info;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from k;
| id | name | score | address |
| 1 | zhangsan | 66.00 | nanjing |
| 3 | wangwu | 77.00 | hangzhou |
2 rows in set (0.00 sec)

  • 显示创建表方法
mysql> show create table info\G;
*************************** 1. row ***************************
Table: info
Create Table: CREATE TABLE "info" (
"id" int(3) NOT NULL AUTO_INCREMENT,
"name" varchar(10) NOT NULL,
"score" decimal(5,2) DEFAULT NULL,
"address" varchar(50) DEFAULT '未知',
PRIMARY KEY ("id")
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> create table test (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test select * from info;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
'先查看info表完整结构,根据此结构创建名字不同结构相同的表test,再导入数据'

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
国足痛失天才球员,国足名宿之子选择为日本效力,成日本豪门核心

国足痛失天才球员,国足名宿之子选择为日本效力,成日本豪门核心

小豆豆赛事
2024-04-24 07:30:46
孔子问一7岁小孩:天上有多少颗星星?小孩回答后,孔子行礼拜师

孔子问一7岁小孩:天上有多少颗星星?小孩回答后,孔子行礼拜师

否知
2024-06-10 09:50:11
92分钟绝杀,2-1大冷门,倒数第2逆转北京国安,一夜逃离降级区

92分钟绝杀,2-1大冷门,倒数第2逆转北京国安,一夜逃离降级区

侧身凌空斩
2024-06-15 22:07:12
沉默数天后,蒙古国终于签了字,中方得到满意结果,美国措手不及

沉默数天后,蒙古国终于签了字,中方得到满意结果,美国措手不及

黄日涵教授
2024-06-15 16:06:10
状元签直接摘下还是向下交易选?丹-赫尔利:老鹰非常喜欢克林根

状元签直接摘下还是向下交易选?丹-赫尔利:老鹰非常喜欢克林根

直播吧
2024-06-15 17:14:15
太惨了!5月SUV销量排行榜,宋Plus丢冠,理想第10,哈弗H6排26名

太惨了!5月SUV销量排行榜,宋Plus丢冠,理想第10,哈弗H6排26名

户外小阿隋
2024-06-15 15:34:56
唉!又有一家大企业成功“结业”了!

唉!又有一家大企业成功“结业”了!

翻开历史和现实
2024-06-10 18:54:33
沈阳太原街着火了?情况通报来了...

沈阳太原街着火了?情况通报来了...

沈阳公交网小林
2024-06-16 00:09:11
不出意外的话,集训结束后,这才是郭士强中国男篮的12人核心班底

不出意外的话,集训结束后,这才是郭士强中国男篮的12人核心班底

小马哥谈体育
2024-06-16 00:00:44
左小青罕带13岁女儿参加活动,被吐槽女儿颜值不随妈,颜值普通!

左小青罕带13岁女儿参加活动,被吐槽女儿颜值不随妈,颜值普通!

西瓜爱娱娱
2024-06-15 16:18:21
刘亦菲4段《玫瑰》封神穿搭:800元穿出高定效果,戴38万耳环吃席

刘亦菲4段《玫瑰》封神穿搭:800元穿出高定效果,戴38万耳环吃席

白宸侃片
2024-06-14 12:22:17
瑞士和平峰会到底打了谁的脸?

瑞士和平峰会到底打了谁的脸?

林林爱天堂
2024-06-15 16:09:40
沪深交易所发布重要调整!

沪深交易所发布重要调整!

新理财杂志
2024-06-15 11:20:08
周总理趁尼克松访华之际,派谷牧狠抓港口建设,谷牧大赞眼光长远

周总理趁尼克松访华之际,派谷牧狠抓港口建设,谷牧大赞眼光长远

冰点历史
2024-06-03 09:03:33
“太难受”!浙江女子身上密密麻麻“蹿出”一大片

“太难受”!浙江女子身上密密麻麻“蹿出”一大片

FM93浙江交通之声
2024-06-15 12:18:16
丢大了!美国学霸扬言挑战高考数学江苏卷 结果让人大快人心!

丢大了!美国学霸扬言挑战高考数学江苏卷 结果让人大快人心!

蛙斯基娱乐中
2024-06-14 19:10:50
仅仅2集,拿下全国第1,央视军旅剧爆了,我敢说:李幼斌又要封神

仅仅2集,拿下全国第1,央视军旅剧爆了,我敢说:李幼斌又要封神

草本纪年
2024-06-15 19:15:26
局部大暴雨!江苏入梅,有消息了!

局部大暴雨!江苏入梅,有消息了!

无锡新部落
2024-06-16 00:01:45
为何成都的舞厅一夜之间几乎被全部暂时停业?

为何成都的舞厅一夜之间几乎被全部暂时停业?

小怪吃美食
2024-06-15 10:50:13
缅甸:未经克钦独立军批准,中缅双方均不得在克钦邦进行边境贸易

缅甸:未经克钦独立军批准,中缅双方均不得在克钦邦进行边境贸易

战域笔墨
2024-06-15 13:08:31
2024-06-16 05:56:49
互联网干货博主
互联网干货博主
我是专注分享互联网干货的博主
278文章数 1339关注度
往期回顾 全部

科技要闻

TikTok开始找退路了?

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

体育要闻

莱夫利,让困难为我让路

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

新情况!高层对人民币的态度180°转弯

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

教育
家居
艺术
旅游
军事航空

教育要闻

情侣高考后办订婚宴后续,当事人回应原因,网友:升学宴还办吗?

家居要闻

空谷来音 朴素留白的侘寂之美

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

旅游要闻

如何文艺消夏?乌镇10大活动开启古镇消夏节

军事要闻

普京提停火和谈条件 美防长迅速回应

无障碍浏览 进入关怀版