数据库和表的基本操作

数据库

查看数据库
复制代码
1.查看所有数据库
SHOW DATABASES; 
2.查看数据库信息 
SHOW CREATE DATABASE 数据库名称;
创建数据库
复制代码
CREATE DATABASE 数据库名; 
查看当前使用的数据库
复制代码
SELECT DATABASE(数据库名);
查看当前用户
复制代码
SELECT USER(用户名);
使用数据库
复制代码
USE 数据库名;

在操作数据表之前,使用"USE 数据库名"指定使用的数据库。

删除数据库
复制代码
DROP DATABASE 数据库名;

删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被回收!

修改数据库
复制代码
ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin
复制代码
itcast数据库的编码方式为utf8,将数据库itcast的编码改为gbk
ALTER DATABASE itcast DEFAULT CHARACTER SET gbk COLLATE gbk_bin
示例
复制代码
#创建数据库schoolInfo1
mysql> create database schoolInfo1;  
Query OK, 1 row affected (0.05 sec)
​
#查看所有数据库
mysql> show databases;  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ods                |
| performance_schema |
| schoolinfo         |
| schoolinfo1        |
| sys                |
| testdb             |
+--------------------+
​
#删除数据库schoolInfo1
mysql> drop database schoolInfo1;  
Query OK, 0 rows affected (0.13 sec)
​
#使用schoolInfo数据库
mysql> use schoolinfo;  
Database changed

数据表

创建数据表

CREATE TABLE 表名(字段 数据类型 约束条件);

复制代码
create table 表名
(
字段名1,数据类型[完整性约束条件],
字段名2,数据类型[完整性约束条件],
...
字段名n,数据类型[完整性约束条件]
);
复制代码
约束条件:
主键 PRIMARY KEY
非空 NOT NULL
唯一 UNIQUE
默认值 DELETE
外键 FOREIGN KEY
auto_increment自动增长
查看数据表
复制代码
1.查看当前数据库中所有数据表
SHOW TABLE;
2.查看数据表,创建表时的定义语句,以及表的字符编码。
SHOW CREATE TABLE 表名;
查看表结构
复制代码
DESCRIBE 表名;

DESCRIBE语句可以查看表的字段信息,其中包括字段名、字段类型等信息。

删除数据表
复制代码
DROP TABLE 表名;
示例
复制代码
#查看数据表
mysql> show tables; 
Empty set (0.04 sec)
​
#创建班级表classes(id,name)
CREATE TABLE classes(
   id int PRIMARY KEY auto_increment,
   name VARCHAR(10) not null
);
​
# 创建学生表students(id,name,age,height,enrollment_time,allowance,cid)
CREATE TABLE students ( 
    id int PRIMARY key auto_increment,
        name VARCHAR(20) not null,
        age int,
        gender char(1),
        height float,
        enrollment_time date,
        allowance decimal(7,2),
        cid int,
        FOREIGN key (cid) REFERENCES classes(id)
);
​
#创建教师表 teacherInfo
mysql> create table teacherInfo(
    -> id int(4) primary key not null unique key,
    -> num int(10) not null unique key,
    -> name varchar(20) not null,
    -> sex varchar(4) not null,
    -> birthday datetime null,
    -> address varchar(50) null
    -> );
Query OK, 0 rows affected (0.20 sec)
​
#查看表结构
mysql> desc teacherInfo;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(4)      | NO   | PRI | NULL    |       |
| num      | int(10)     | NO   | UNI | NULL    |       |
| name     | varchar(30) | YES  |     | NULL    |       |
| sex      | varchar(4)  | NO   |     | NULL    |       |
| birthday | datetime    | YES  |     | NULL    |       |
| address  | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.03 sec)
​
#查看schoolinfo数据库中的所有数据表
mysql> show tables;
+----------------------+
| Tables_in_schoolinfo |
+----------------------+
| classes              |
| students             |
| teacherinfo          |
+----------------------+
3 rows in set (0.00 sec)
​
#删除数据表students
mysql> drop table students;
Query OK, 0 rows affected (0.09 sec)
相关推荐
这个DBA有点耶3 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
这个DBA有点耶5 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技5 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend6 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence9 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说1 天前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils1 天前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql