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;
相关推荐
清水白石0084 分钟前
从一个“支付状态不一致“的bug,看大型分布式系统的“隐藏杀机“
java·数据库·bug
Python私教5 小时前
model中能定义字段声明不存储到数据库吗
数据库·oracle
mqiqe7 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
工业甲酰苯胺7 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
BestandW1shEs7 小时前
谈谈Mysql的常见基础问题
数据库·mysql
重生之Java开发工程师7 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
教练、我想打篮球7 小时前
66 mysql 的 表自增长锁
数据库·mysql
Ljw...7 小时前
表的操作(MySQL)
数据库·mysql·表的操作
哥谭居民00017 小时前
MySQL的权限管理机制--授权表
数据库