一般来说,不同的系统(比如一个学生信息管理系统,停车管理系统)可以把数据都存储在一个数据库服务器软件中,不同的系统一般会创建不同的数据库来使用
show databases;-- 命令行客户端,是以分号为结束的符号
语法:
create database [if not exists] 数据库名字 character set utf8mb4;-- 中括号的内容表示可加可不加的内容
(1)数据库不存在就会创建成功
(2)数据库已存在就会报错
(3)如果存在,就不做任何操作,如果不存在就会创建这个数据库,不管是否存在都不会报错
(4)一般设计一个系统的数据库,建议先删除再创建
语法:
use 数据库名字;
语法:
drop database [if exists] 数据库名字;
(1)bit(n):
①二进制数据,最多是n位
②默认为1
③bit = bit(1),就是1位二进制数(只能存0和1),所以Boolean类型的数据,也能使用bit来存放
④MySQL是有Boolean类型的
(2)tinyint:一个字节,类似Java中的byte
(3)smallint:两个字节,类似Java中的short
(4)int:4个字节,类似Java中的int或Integer
(5)bigint:8个字节,类似Java中的longLong
(6)float(m,d):
①4个字节
②m:总长度 = 整体部分长度+小数部分长度
③d:小数位的长度
④底层整数和小数长度都有限,数字相除的操作,导致小数位太长,也会丢失精度
(7)double(m,d)
①8个字节
②m:总长度 = 整体部分长度+小数部分长度
③d:小数位的长度
④底层整数和小数长度都有限,数字相除的操作,导致小数位太长,也会丢失精度
(8)decimal(m,d)/numeric(m,d)
①双精度的浮点类型:一般用于精度要求高,如存款金额,商品价格等
②使用两者任意一种都可以:类似于Java中的BigDecimal
(1)varchar(n):最多存储n位的字符串(超出长度就会报错,最多65535)
(2)text:一般用于存储大文本,比如文章内容(超出长度就会报错,最多65535)
(3)mediumtext:text的加大版本
(1)datetime:8个字节,日期范围更大,不带时区(如中国就是GMT+8),一般使用这个类型
(2)timestamp:4个字节,日期范围小,带时区
语法:
show tables;
(1)显示mysql(内置数据库)这个数据库中所有的表
(2)这样就表示当前数据库没有任何表
语法:
desc 表名;
语法:
create table 表的名字(
字段名1 字段1的数据类型,
字段名2 字段2的数据类型,
字段名3 字段4的数据类型
);
注意:小括号把所有的字段括起来,多个字段之间用逗号隔开,最后一个不要逗号
-- 先删除
drop table if exists student;
-- 再建表
create table student(
id int,
name varchar(20),
sex bit,
resume text,
amount decimal(11,2),
birthday datetime
);
语法:
drop table [if exists] 表名;
drop table if exists student;
1.命令行分号表示sql语句的结束,如果输错了,直接加分号,让他报错,然后继续书写
2.cmd里面默认选中一段文本,就会复制,之前复制的就没用了,需要重新输入
3.编写多行的sql建议使用文本编辑器(如:vscode)
4.建库、建表的时候,可以先删除(加if exists 保证有的情况不会报错),然后再创建
5.数据库代码注释:-- 这里写注释(数据库是忽略这条语句)
6.数据库库名、表名、字段名都不可以是数据库关键字但是如果需要定义成关键字,可以前后使用`(Tab上面的键)
`desc` varchar(20)
7.字符串需要使用单引号来包裹,虽然双引号也可以,但是不是标椎规范
8.表和字段也可以加comment来注释(数据保存定义的时候,就会保存这个注释)(建议都加上)
-- 先删除
drop table if exists student;
-- 再建表
create table student(
id int,
name varchar(20) comment '学生姓名',
sex bit,
resume text,
amount decimal(11,2),
birthday datetime,
`desc` varchar(20)
)comment '学生表';