1.数据库的操作
显示当前数据库
SHOW DATABASES;
创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification
[, create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
- 大写的表示关键字
- [] 是可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
- 当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci
#创建名为db_test1 的数据库
mysql> create database db_test1;
Query OK, 1 row affected (0.00 sec)
#如果系统没有db_test1 的数据库,则创建一个名叫db_test2 的数据库,
#如果有则不创建
mysql> create database db_test1;
ERROR 1007 (HY000): Can't create database 'db_test1'; database exists
mysql> create database IF NOT EXISTS db_test1;
Query OK, 1 row affected, 1 warning (0.00 sec)
#如果系统没有db_test 的数据库,则创建一个使用utf8mb4字符集
#的db_test 数据库,如果有则不创建
mysql> CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.01 sec)
使用数据库
use 数据库名;
删除数据库
DROP DATABASE [IF EXISTS] db_name;
说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
2.尝用数据类型
数值类型
分为整形和浮点型
数据类型 | 大小 | 说明 |
---|---|---|
BIT[ (M) ] | M指定位数,默认为1 | 二进制数,M范围从1到64,存储数值范围从0到2^M-1 |
TINYINT | 1字节 | |
SMALLINT | 2字节 | |
INT | 4字节 | |
BIGINT | 8字节 | |
FLOAT(M, D) | 4字节 | 单精度,M指定长度,D指定小数位数。会发生精度丢失 |
DOUBLE(M,D) | 8字节 | |
DECIMAL(M,D) | M/D最大值+2 | 双精度,M指定长度,D表示小数点位数。精确数值 BigDecimal |
NUMERIC(M,D) | M/D最大值+2 | 和DECIMAL一样 |
字符串类型
数据类型 | 大小 | 说明 |
---|---|---|
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 |
TEXT | 0-65,535字节 | 长文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 |
日期类型
数据类型 | 大小 | 说明 |
---|---|---|
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 |
TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换。 |
3.表的操作
- 需要操作数据库中的表时,需要先使用该数据库:
use db_test;
查看表结构
desc 表名;
例:
创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
);
可以增加comment来对字段进行说明
用例:
create table stu_test (
id int,
name varchar(20) comment '姓名',
password varchar(50) comment '密码',
age int,
sex varchar(1),
birthday timestamp,
amout decimal(13,2),
resume text
);
删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
用例:
-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;