MySQL中对数据库和表的操作

目录

数据库的操作

查看数据库

创建数据库

删除数据库

使用数据库

数据库中表的操作

数据库中的数据类型

数值类型

字符类型

日期类型

创建表

查看数据库中的所有表

查看表的结构

删除表


数据库的操作

为了锻炼代码能力,这里我就不使用图形化工具了,建议大家也使用命令行敲,锻炼一下自己。能用命令行的图形化界面肯定没问题,但你用图形化界面却不一定能用命令行。在命令行编写代码的时候别忘了加分号表示语句的结束。

查看数据库

sql 复制代码
show databases;

通过这个指令可以查看服务器有哪些数据库,大家刚安装完MySQL后会有一些自带的数据库,大家不要删除了哈。(下面图片红框框住的就是自带的)

创建数据库

创建数据库的时候我们会涉及到if not exists 和character set ....在下面这段代码中我会进行一下讲解,希望大家仔细观看哟!!

sql 复制代码
//1.创建数据库最基本的语句 
create database 数据库名;

//例:
 create database sqltest;

/*2.如果出现同名的数据库,就会报错,
 *批量执行sql的时候报错就很麻烦,所
 *以我们创建数据库的时候可以用下面这个语句
*/

create database if not exists 数据库名;

/*先通过if not exists 数据库名判断是否服务器中是否存在
 *这个这个数据库名的数据库,如果存在就不会创建,也不会报错,
 *如果不存在就会创建*/

/*3.创建数据库的时候我们一般要进行字符集的设置,因为mysql默认字符
 *是拉丁文,无法表示中文,ascall码无法表示中文,只可以表示字符和符号,
 *只有gbk和utf8可以表示中文,但现在普遍使用的都是utf8,因为他表示的范围大,
 *可以表示很多国家的语言符号,所以我们设置字符集为utf8。
 *sql中有两种utf8,一个是utf8一个是utf8mb4,区别就是后者可以表示的内容更多,
 *表情啥的后者均可以表示,但前者却不可以。两者用哪个在你们*/

//方式一
create database sqltest character set utf8mb4;
//方式二
create database sqltest charset utf8mb4;
  1. SQL的关键字不区分大小写。
  2. 数据库名不可以重复。

删除数据库

这个操作很危险,删了就是真的删除了,数据库里面的表和数据也全被删除了。嗯....建议谨慎操作

sql 复制代码
drop database 数据库名;

使用数据库

MySQL是一个关系性数据库,操作都是依赖于表的。但是数据库有那么多,服务器怎么能知道我们对哪个数据库进行操作呢?那就是在对表操作前先使用数据库。

sql 复制代码
use 数据库名;

数据库中表的操作

数据库中可以有很多表,每个表又可以有很多行很多列。在讲解数据库的表操作前,我们先对数据库中的类型进行介绍。进行表操作前一定要指定哪个数据库(use 数据库)

数据库中的数据类型

数据类型分为三种,数值类型,字符串类型,日期类型。

数值类型

1.第一个类型的括号中填写的要存的二进制的位数。

2.从tiny int 到big int存放的都是整型,正常来说,int就足够了,实际开发中看自己需要多大就设置为啥样的类型。

3.float,double,decimal括号中(M,D)啥意思呢?M表示这个数字一共有多少位,D表示小数点后面有多少位,例(3,1)---99.3(一共有三位,小数点后面只有一位)。decimal的精度比其他两个高,一般我们在一些比较严谨的场合都会用decimal。

4.最后一个和decimal区别不大。但一般不用这个。

字符类型

1.varchar(size)括号中存放的是字符串中字符的个数,自己设定。

日期类型

这两个没什么太大的区别,就是开始范围并不同和所占的大小不同,下面这个占4个字节,到38年就不可以在用了,完了保险起见我们用第一个更好。

创建表

补充一个小知识点:SQL中也有注释可以用#也可以用--

sql 复制代码
1.create table 表名(列名 类型,列名 类型......)
#例子 

create table student(id int, name varchar(20));

2.我们创建表的时候也可以给每一列增加一个注释,方便读我们代码的人可以知道我们每一列的含义
#使用comment这个关键字

create table student(id int comment 'ID', name varchar(20) comment '姓名');

3.我们也可以像创建数据库一样,为了防止同名出现时报错,我们也可以创建的时候多个判断

create table if not exists student(id int, name varchar(20));

查看数据库中的所有表

sql 复制代码
show tables;

查看表的结构

sql 复制代码
desc 表名;

上图可以看见我创建的student表的表结构,我们来对查询的信息进行分析

1.第一列存放的是表中的字段,也就是有几列。

2.第二列表示的是相应列对应的数据类型。大家可能会产生疑问,我创建int的时候并没有写括号中的内容,为啥查出来的就有。这个是默认提供的,表示这个显示的时候最多有11个字符宽(并不是占的内存)

3.第三列表示该列是否允许为空,允许就为yes。

4.key这列表示是否为主键。

5.倒数第二列表示默认值,当我们没有值的时候默认填充的值,服务器默认提供的null,我们也可以自己设定。

6.最后一列为其他信息,就是我们对表设置的其他操作。

删除表

删除表这个操作也非常危险,我们不可以随便就进行操作,表删除就是彻底删除,表中的数据也就全部删除了。

sql 复制代码
drop table 表名;

#为了防止删除表的时候报错,我们也可以增加判断
#如果表存在才删除

drop table if exists student;
相关推荐
FIN技术铺2 小时前
Redis集群模式之Redis Sentinel vs. Redis Cluster
数据库·redis·sentinel
内核程序员kevin3 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
CodingBrother4 小时前
MySQL 中的 `IN`、`EXISTS` 区别与性能分析
数据库·mysql
kayotin4 小时前
Wordpress博客配置2024
linux·mysql·docker
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
小小不董4 小时前
Oracle OCP认证考试考点详解082系列16
linux·运维·服务器·数据库·oracle·dba
甄臻9244 小时前
Windows下mysql数据库备份策略
数据库·mysql
内蒙深海大鲨鱼4 小时前
qt之ui开发
数据库·qt·ui
杀神lwz4 小时前
Java 正则表达式
java·mysql·正则表达式
不爱学习的YY酱5 小时前
【计网不挂科】计算机网络第一章< 概述 >习题库(含答案)
java·数据库·计算机网络