快速了解MySQL的入门知识
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,下文主要给大家带来快速了解MySQL的入门知识,希望这些文字能够带给大家实际用处,这也是我MySQL的入门知识这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。一、MySQL有三种定义语言DDL
千家信息网最后更新 2025年01月23日快速了解MySQL的入门知识
下文主要给大家带来快速了解MySQL的入门知识,希望这些文字能够带给大家实际用处,这也是我MySQL的入门知识这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。
一、MySQL有三种定义语言
DDL:定义语言,比如:创建一张表,定义表的属性如索引、宽位等待
DML:操作语言,增删查改
DCL:控制语言,比如限定那个账户只能通过那个IP登入,又比如那个账户能访问那些资源
二、MySQL事务:
1、MyISAM不支持
2、InnoDB支持
下面的图是自己捯饬捯饬整的,如有不适请发私信给Me~ ^-^
三、SQL语言
A、DDL定义语言命令包含如下:
1、CREATE
2、ALTER
3、DROP
1、CREATE
1.1、创建数据库
mysql> SHOW DATABASES; #查看MySQL中的数据库+--------------------+| Database |+--------------------+| information_schema|| mysql || test |+--------------------+3 rows in set (0.00 sec)mysql> CREATE DATABASE Oracle; #创建数据库Oracle Query OK, 1 row affected (0.00 sec)mysql> SHOW DATABASES; #查看是否创建成功+--------------------+| Database |+--------------------+| information_schema|| Oracle || mysql || test |+--------------------+4 rows in set (0.00 sec)
1.2、创建表
mysql> SELECT DATABASE(); #查看当前所在数据库位置DATABASE()为MySQL内置函数+------------+| DATABASE()|+------------+| NULL |+------------+1 row in set (0.00 sec) mysql> USE Oracle #切换到我们之前创建的Oracle数据库中Database changed mysql> SELECT DATABASE(); #查看是否切换到Oracle+------------+| DATABASE()|+------------+| Oracle |+------------+1 row in set (0.00 sec)mysql> CREATE table BranchTab( #创建表 -> Id INT, -> Name CHAR(30) -> );Query OK, 0 rows affected (0.09 sec)mysql> SHOW TABLES; #查看BranchTab表是否创建成功+------------------+| Tables_in_Oracle|+------------------+| BranchTab |+------------------+1 row in set (0.00 sec)
2、ALTER 修改表
mysql> SELECT DATABASE(); #查看当前所在数据库为准+------------+| DATABASE()|+------------+| Oracle |+------------+1 row in set (0.00 sec)mysql> SHOW TABLES; #查看当前所在数据库位置中的表+------------------+| Tables_in_Oracle|+------------------+| BranchTab |+------------------+1 row in set (0.00 sec)mysql> ALTER TABLE BranchTab RENAME branchtab; #修改表BranchTab为branchtabQuery OK, 0 rows affected (0.00 sec)mysql> SHOW TABLES; #查看是否修改成功+------------------+| Tables_in_Oracle|+------------------+| brannhtab |+------------------+1 row in set (0.00 sec)
3、DROP
3.1、删除表
mysql> SELECT DATABASE(); #查看当前所在数据库位置+------------+| DATABASE()|+------------+| Oracle |+------------+1 row in set (0.00 sec)mysql> SHOW TABLES; #查看当前所在数据库位置中的表+------------------+| Tables_in_Oracle|+------------------+| branchtab |+------------------+1 row in set (0.00 sec)mysql> DROP TABLE bracnhtab; #DROP掉branchtab表Query OK, 0 rows affected (0.00 sec)mysql> SHOW TABLES; #查看branchtabs是否被删除Empty set (0.00 sec)
3.2、删除数据库Oracle
mysql> SHOW DATABASES; #查看MySQL中的所有库,发现Oracle库+--------------------+| Database |+--------------------+| information_schema|| Oracle || mysql || test |+--------------------+4 rows in set (0.00 sec)mysql> DROP DATABASE Oracle; #DROP掉Oracle数据库Query OK, 0 rows affected (0.00 sec)mysql> SHOW DATABASES; #查看Oracke是否被删+--------------------+| Database |+--------------------+| information_schema|| mysql || test |+--------------------+3 rows in set (0.00 sec)
B、DML操纵语言命令如下
1、INSERT
2、DELETE
3、SELECT
4、UPDATE
操作前先建库建表,并先使用下未介绍到SHOW CREATE TABLE TABLE_NAME,DESC TABLE_NAME
mysql> CREATE DATABASE oracle; #创建oracle数据库Query OK, 1 row affected (0.00 sec)mysql> use oracle #切换到oracle数据库Database changedmysql> CREATE TABLE branch( -> Id INT, -> Name CHAR(30) -> );Query OK, 0 rows affected (0.16 sec)mysql> DESC branch; #查看表结构,简要增加数据最好看下别弄错+-------+----------+------+-----+---------+-------+| Field| Type | Null| Key| Default| Extra|+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30)| YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> SELECT * FROM branch; #查看表结构明细Empty set (0.00 sec)mysql> SHOW CREATE TABLE branch\G*************************** 1. row *************************** Table: branchCreate Table: CREATE TABLE `branch` ( `Id` int(11) DEFAULT NULL, `Name` char(30) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1 #可以看出我们使用的是MyISMA1 row in set (0.00 sec)mysql> SELECT @@version; +-----------+| @@version|+-----------+| 5.1.73 |+-----------+1 row in set (0.00 sec)
1、INSERT 插入数据
mysql> SELECT DATABASE(); #查看自己所在数据库位置是否正确+------------+| DATABASE() |+------------+| oracle |+------------+1 row in set (0.00 sec)mysql> DESC branch; #查看表结构+-------+----------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30) | YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> INSERT INTO branch VALUES #插入数据到branch表中 -> (1,'Tom'), -> (2,'Sunshine');Query OK, 2 rows affected (0.00 sec)Records: 2 Duplicates: 0 Warnings: 0mysql> SELECT * FROM branch; #查看是否插入成功+------+----------+| Id | Name |+------+----------+| 1 | Tom || 2 | Sunshine |+------+----------+2 rows in set (0.00 sec)
2、DELETE 删除数据
mysql> SELECT DATABASE(); #查看所在数据库位置+------------+| DATABASE() |+------------+| oracle |+------------+1 row in set (0.00 sec)mysql> DESC branch; #查看branch表结构+-------+----------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30) | YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> DELETE FROM branch; #删除表数据,没加WHERE条件就是删除这张表里面的所有内容Query OK, 2 rows affected (0.00 sec)mysql> SELECT * FROM branch; #查看是否删除成功Empty set (0.00 sec)mysql> INSERT INTO branch VALUES #插入新的数据 -> (1,'Alis'), -> (2,'jeery');Query OK, 2 rows affected (0.00 sec)Records: 2 Duplicates: 0 Warnings: 0mysql> SELECT * FROM branch; #查看是否插入成功+------+-------+ | Id | Name |+------+-------+| 1 | Alis || 2 | jeery |+------+-------+2 rows in set (0.00 sec)mysql> DELETE FROM branch WHERE Id=1; #删除branch表里面的内容加了条件判断WHERE Id=1Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM branch; #查看是否删除我们指定的数据+------+-------+| Id | Name |+------+-------+| 2 | jeery |+------+-------+1 row in set (0.00 sec)mysql> DELETE FROM branch WHERE Name=jeery; #删除branch表里面的内容加了条件判断 WHERE Name=jeery;但是jeery没加单引号报错ERROR 1054 (42S22): Unknown column 'jeery' in 'where clause'mysql> DELETE FROM branch WHERE Name='jeery'; #删除branch表里面的内容加了条件判断 WHERE Name='jeery';加了单引号成功Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM branch; #查看是否删除我们指定你的数据Empty set (0.00 sec)
3、SELECT 查看数据
mysql> DESC branch; #查看表结构+-------+----------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30) | YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> INSERT INTO branch VALUES #插入一些数据 -> (1,'Sunshine'), -> (2,'jeery'), -> (3,'Alis'), -> (4,'Tom');Query OK, 4 rows affected (0.00 sec)Records: 4 Duplicates: 0 Warnings: 0mysql> SELECT * FROM branch; #查看branch表中的数据+------+----------+| Id | Name |+------+----------+| 1 | Sunshine || 2 | jeery || 3 | Alis || 4 | Tom |+------+----------+4 rows in set (0.00 sec)mysql> SELECT * FROM branch WHERE Id=1; #查看branch表中的数据,以条件 "WHERRE Id=1"+------+----------+| Id | Name |+------+----------+| 1 | Sunshine |+------+----------+1 row in set (0.00 sec)mysql> SELECT Name FROM branch; #查看branch表中Name字段的数据+----------+| Name |+----------+| Sunshine || jeery || Alis || Tom |+----------+4 rows in set (0.00 sec)mysql> SELECT Name FROM branch WHERE Id=1; #查看branch表中Name字段的数据,以条件 "WHERRE Id=1"+----------+| Name |+----------+| Sunshine |+----------+1 row in set (0.00 sec)mysql> SELECT count(*) FROM branch; #使用count内置函数查看branch表中有多少行+----------+| count(*) |+----------+| 4 |+----------+1 row in set (0.00 sec)mysql> SELECT count(*) FROM bransh where Id=1; #使用count内置函数查看branch表中有多少行,以条件 "WHERE Id=1" ERROR 1146 (42S02): Table 'oracle.bransh' doesn't existmysql> SELECT count(*) FROM bransh;ERROR 1146 (42S02): Table 'oracle.bransh' doesn't existmysql> SELECT count(*) FROM branch WHERE Id=1;+----------+| count(*) |+----------+| 1 |+----------+1 row in set (0.00 sec)
4、UPDATE 更改数据
mysql> DESC branch; #查看表结构+-------+----------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30) | YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> UPDATE branch SET Id=5; #更改数据,Id=5,生产环境中最好加条件,不然就呵呵了~Query OK, 4 rows affected (0.00 sec)Rows matched: 4 Changed: 4 Warnings: 0mysql> SELECT * FROM branch; #不加条件就变成这样了,不是我们想要的+------+----------+| Id | Name |+------+----------+| 5 | Sunshine || 5 | jeery || 5 | Alis || 5 | Tom |+------+----------+4 rows in set (0.00 sec)mysql> UPDATE branch SET Id=1 WHERE Name='Sunshine'; #更改数据Id=1,加了条件 "WHERE Name='Sunshine'"Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM branch; #查看是否是更改成我们所想要的+------+----------+| Id | Name |+------+----------+| 1 | Sunshine || 5 | jeery || 5 | Alis || 5 | Tom |+------+----------+4 rows in set (0.00 sec)
C、DCL控制语言命令如下
1、GRANT
2、REVOKE
1、GRANT
mysql> CREATE TABLE branchone( #为了区别,我们这里在创建一个表 -> Id INT, -> Name CHAR(30) -> );Query OK, 0 rows affected (0.06 sec)mysql> SHOW TABLES; #查看oracle库有几张表+------------------+| Tables_in_oracle |+------------------+| branch || branchone |+------------------+2 rows in set (0.00 sec)mysql> GRANT SELECT ON oracle.branch TO 'sunshine'@'192.168.11.28' IDENTIFIED BY 'sunshine'; #授权sunshine用户只能通过192.168.11.28这个IP访问数据库,而且只有oracle数据库branch的查看权限Query OK, 0 rows affected (0.00 sec)mysql> SHOW GRANTS FOR 'sunshine'@'192.168.11.28'; #查看是否授权成功,我们看到GRANT SELECT ON `oracle`.`branch` TO 'sunshine'@'192.168.11.28'+---------------------------------------------------------------------------------------------------------------------+| Grants for sunshine@192.168.11.28 |+---------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'sunshine'@'192.168.11.28' IDENTIFIED BY PASSWORD '*D6B63C1953E7F096DB307F8AC48C4AD703E57001' || GRANT SELECT ON `oracle`.`branch` TO 'sunshine'@'192.168.11.28' |+---------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)[root@redis_master ~]# ifconfig | grep "inet addr:192.168" #使用Linux系统,查看本机IP,为192.168.11.28 inet addr:192.168.11.28 Bcast:192.168.11.255 Mask:255.255.255.0[root@redis_master ~]# mysql -h292.168.11.28 -usunshine -psunshine #使用sunshine用户连接数据库Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> mysql> SHOW DATABASES; #查看数据库+--------------------+| Database |+--------------------+| information_schema || oracle || test |+--------------------+3 rows in set (0.00 sec)mysql> USE oracle #进入oracle数据库Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> SHOW TABLES; #查看自己是否只能看到我们设定branch表+------------------+| Tables_in_oracle |+------------------+| branch |+------------------+1 row in set (0.00 sec)mysql> DESC branch; #查看表结构+-------+----------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| Id | int(11) | YES | | NULL | || Name | char(30) | YES | | NULL | |+-------+----------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> INSERT INTO branch VALUES #插入数据,提示权限拒绝command denied -> (10,'Test');ERROR 1142 (42000): INSERT command denied to user 'sunshine'@'gitlab.jinr.com' for table 'branch'mysql> DELETE FROM branch; #删除数据,提示权限拒绝 command deniedERROR 1142 (42000): DELETE command denied to user 'sunshine'@'gitlab.jinr.com' for table 'branch'mysql> UPDATE branch SET Id=1; #更改数据,提示权限拒绝 command deniedERROR 1142 (42000): UPDATE command denied to user 'sunshine'@'gitlab.jinr.com' for table 'branch'mysql> SELECT * FROM branch; #查看数据,正常+------+----------+| Id | Name |+------+----------+| 1 | Sunshine || 5 | jeery || 5 | Alis || 5 | Tom |+------+----------+4 rows in set (0.00 sec)[root@jroa ~]# ifconfig | grep "inet addr:192.168" #使用另外一台Linux系统,查看IP,为192.168.11.21 inet addr:192.168.11.21 Bcast:192.168.11.255 Mask:255.255.255.0[root@jroa ~]# mysql -h292.168.11.28 -usunshine -psunshine #尝试连接,提示需'192.168.11.28' (113) 才能登入ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.11.28' (113)
2、REVOKE
mysql> SHOW GRANTS FOR 'sunshine'@'192.168.11.28'; #查看权限,发现 GRANT SELECT ON `oracle`.`branch` TO 'sunshine'@'192.168.11.28' +---------------------------------------------------------------------------------------------------------------------+| Grants for sunshine@192.168.11.28 |+---------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'sunshine'@'192.168.11.28' IDENTIFIED BY PASSWORD '*D6B63C1953E7F096DB307F8AC48C4AD703E57001' || GRANT SELECT ON `oracle`.`branch` TO 'sunshine'@'192.168.11.28' |+---------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)mysql> REVOKE SELECT ON oracle.branch FROM 'sunshine'@'192.168.11.28'; #收回授权Query OK, 0 rows affected (0.00 sec)mysql> SHOW GRANTS FOR 'sunshine'@'192.168.11.28'; #查看权限,没发现 GRANT SELECT ON `oracle`.`branch` TO 'sunshine'@'192.168.11.28'+---------------------------------------------------------------------------------------------------------------------+| Grants for sunshine@192.168.11.28 |+---------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'sunshine'@'192.168.11.28' IDENTIFIED BY PASSWORD '*D6B63C1953E7F096DB307F8AC48C4AD703E57001' |+---------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)[root@redis_master ~]# !if #查看本机IP,为192.168.11.28ifconfig | grep "inet addr:192.168" inet addr:192.168.11.28 Bcast:192.168.11.255 Mask:255.255.255.0[root@redis_master ~]# !mys #连接mysql,因为第一次授权了,就算收回,公共库的权限还是有的mysql -h292.168.11.28 -usunshine -psunshineWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases; #查看数据库,发现oracle数据不见啦+--------------------+| Database |+--------------------+| information_schema || test |+--------------------+2 rows in set (0.00 sec)
对于以上关于MySQL的入门知识,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。
数据
数据库
条件
成功
语言
所在
权限
结构
位置
内容
面的
表里
提示
入门知识
知识
函数
命令
切换
下文
字段
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
dna数据库浙江
小程序修改数据库域名
网络安全斩首行动
石油化工数据手册属于数据库
神佑释放怎么看自己在哪个服务器
海口直播软件开发服务商
数据库上哪找数据
我的世界服务器多人生存第二天
信息系统软件开发的管理
苏州戴尔服务器硬盘初始化
cg插件都用什么软件开发
网络安全教育主题团日活动简报
多线程和数据库
金特网络技术集团
深圳社交软件开发电话
服务器刷新
阿里云ecs服务器证书
学术期刊数据库是什么意思
湖南民主评议软件开发电话
怎么启动静态资源服务器
服务器怎么登入不上去
新时代软件开发费用
计算机网络运维和网络安全哪个好
x86arm服务器
软件开发的学多长时间
服务器内存用在台式机
大学生网络安全意识ppt
重庆快成网络技术公司
esea服务器
做工超好的服务器电源