数据库的操作
对库的操作
SQL通用语法规则介绍
创建数据库
使用数据库
查询所有数据库
查询当前数据库
删除数据库
对库中表的操作
创建一个表
查询当前数据库所有表
查询表结构
查询指定表的建表语句
🚘🚘🚘正片开始
SQL通用语法规则介绍
-
SQL语句可以单行或多行书写,以分号结尾。
-
SQL语句可以使用空格和缩进来增强语句的可读性。
-
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写,但没强制规定。
-
注释:
- 单行注释:-- + 注释内容 或者 # +注释内容(MySQL特有)
- 多行注释:/* 注释内容 */
创建数据库语法
sql
create database [if not exists] 数据库名 [default 字符集][collate 排序规则];
注: 使用上述语法时,[ ] 中的语法可以省略不写
创建数据库展示效果
sql
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_db |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql>
当test数据库已存在时我们再次创建则会怎么样呢?让我们来试试。
sql
mysql> create database test;
ERROR 1007 (HY000): Can't create database 'test'; database exists
mysql>
可以看见它反馈的结果是说不能创建数据库,数据库已存在
不妨我们使用一下 if not exists
这个看看
sql
mysql> create database if not exists test;
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql>
现在没有报错了,只是出现了个警告,在创建数据库时,当加上这个if not exists
则系统会检测你当前库中是否有同名的test数据库如果有则不创建,没有则创建。
使用数据库语法
sql
use 数据库名;
展示效果
sql
mysql> use test;
Database changed
mysql>
查询所有数据库语法
sql
show databases;
效果展示
sql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_db |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql>
查询当前所处数据库语法
sql
select database();
展示效果
sql
mysql> select database();
+------------+
| database() |
+------------+
| test | #当前处于test数据库
+------------+
1 row in set (0.00 sec)
mysql>
删除数据库语法
sql
drop database [if exists] 数据库名;
展示效果
删除前该库中是有test数据库的
sql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_db |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql>
执行删除语句
sql
#test删除成功
mysql> drop database test;
Query OK, 0 rows affected (0.01 sec)
mysql>
再次查看数据库中是否有test库
sql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_db |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
可以看见已经没有了
当使用 drop database if not exists 数据库名;
这条语句删数据库时 则有该数据库则删除,无则不删,更有安全保障。
创建一个表的语法
sql
create table 表名(
字段1 字段1的类型[comment 字段1的注释],
字段2 字段2的类型[comment 字段2的注释],
字段3 字段3的类型[comment 字段3的注释],
字段4 字段4的类型[comment 字段4的注释],
.....................................................................
字段n 字段n的类型[comment 字段n的注释]
)[comment 表注释];
展示效果
sql
mysql> create table mytable(
-> id tinyint comment '编号',
-> name varchar(5) comment '名字',
-> age tinyint comment '年龄',
-> address varchar(15) comment '地址',
-> tel char(11) comment '电话'
-> );
Query OK, 0 rows affected (0.03 sec)
mysql>
查询当前数据库所有表的语法
sql
show tables;
展示效果
sql
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| mytable | #mytable 已经创建出来了
+----------------+
1 row in set (0.00 sec)
mysql> select database();
查询表结构的语法
sql
desc mytable;
sql
mysql> desc mytable;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | tinyint | YES | | NULL | |
| name | varchar(5) | YES | | NULL | |
| age | tinyint | YES | | NULL | |
| address | varchar(15) | YES | | NULL | |
| tel | char(11) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql>
查询指定表的建表语句的语法
sql
show create table mytable;
展示效果
sql
mysql> show create table mytable;
CREATE TABLE `mytable` (
`id` tinyint DEFAULT NULL COMMENT '编号',
`name` varchar(5) DEFAULT NULL COMMENT '名字',
`age` tinyint DEFAULT NULL COMMENT '年龄',
`address` varchar(15) DEFAULT NULL COMMENT '地址',
`tel` char(11) DEFAULT NULL COMMENT '电话'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
完结🎉🎉🎉