数据库之DDL操作(数据库,表,字段)

Data Definition Language,数据库定义语言,用来定义数据库对象(数据库,表,字段)

1.数据库操作 

1.1查询所有数据库 

show databases;

1.2查询当前数据库

show databases();

1.3创建数据库

create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

 例如:

  • 我们想创建一个Student数据库,并且使用数据库默认的字符集。
create database Student;
  • 因为在同一个数据库服务器中不能出现同名的数据库,所以我们使用(if not exists)参数来解决这个问题,若想要创建的数据库不存在,则创建数据库,如果存在,则不创建。 
create database if not exists Student;
  • 我们也可以指定数据库使用的字符集 
create database Student default charset utf8mb4;

1.4删除数据库

drop database [if exists] 数据库名;

1.5切换数据库

        我们要操作某一个数据库下的表时,需要通过命令,切换到对应的数据库下面,否则是不能对那个表进行操作的。

use 数据库名;

2.表操作 

2.1查询创建

2.1.1查询当前数据库中所有表

show tables;

例如:

  • 如果我们想要在mydata数据库中查询我们所创建的所有表。 
use mydata;
show tables;

2.1.2查看表结构

        这条指令可以使我们看见指定表的字段,字段的类型,是否可以为NULL,是否存在默认值等信息。

desc 表名;

2.1.3查询表的建表语句

        这条指令可以使我们查询到创建表时候的所有参数,指定的和没指定的(默认值)都回查询到 。(存储引擎,字符集)等没。

show create table 表名;

2.1.4创建表结构

create table 表名(
    字段1 字段1类型 [comment 字段1注释],
    字段2 字段2类型 [comment 字段2注释],
    字段3 字段3类型 [comment 字段3注释],
    字段4 字段4类型 [comment 字段4注释],
    ......
    字段n 字段n类型 [comment 字段n注释]
)[comment 表注释]
  • 最后一个字段没有逗号(,)

 例如:

create table tb_stu(
    S# varchar(12) comment '学号';
    name varchar(30) comment '姓名';
    age int comment '年龄';
    gender varchar(1) comment '性别'
)comment '学生表';

2.2数据类型 

2.2.1数值类型

类型 大小 有符号范围 无符号范围 描述
TINYINT 1byte (-128,127) (0,255) 小整数值
SMALLINT 2bytes (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3bytes (-8388608,8388607) (0,16777215) 大整数值
INT 4bytes (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8bytes (-2^63,2^63-1) (0,2^64-1) 极大整数值
FLOAT 4bytes (-3.4... E+38,3.4... E+38) 0和(1.17... E-38,3.40... E+38) 单精度浮点数值
DOUBLE 8bytes (-1.7... E+308,1.7... E+308) 0和(2.22... E-308,1.79... E+308) 双精度浮点数值
DECIMAL 依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值

小数值(精确定点数)

例如:

//年龄字段--不出现负数不超过255岁
age tinyint unsigned

//分数字段--总分100,一位小数
score double(4,1)

2.2.2字符串类型

类型 大小 描述
CHAR 0-255 bytes 定长字符串(需要指定长度)
VARCHAR 0-65535 bytes 变长字符串(需要指定长度
TINYBLOB 0-255 bytes 不超过255个字符的二进制数据
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65535 bytes 二进制形式的长文本数据
TEXT 0-65535 bytes 长文本数据
MEDIUMBLОB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

例如:

1).用户名 username->长度不定,最长不会超过50
username varchar (50)

2),性别 gender--------->存储值,不是男,就是女
gender char (1)

3).手机号 phone-----> 固定长度为11
phone char (11)

2.2.3日期时间函数

类型 大小 范围 格式 描述
DATE 3 1000-01-01至9999-12-31 YYYY-MM-DD 日期值
TIME 3 -838:59:59至838:59:59 HH : MM: SS 时间值或持续时间
YEAR 1 1901至2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00 至9999-12-31 23:59:59 YYYY-MM-DDHH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-0100:00:01至2038-01-19 03:14:07 YYYy-MM-DDHH:MM: SS 混合日期和时间值,时间戳

例如:

1),生日字段 birthday
birthday date

2),创建时间 createtime
createtime datetime

 2.2.4表操作--修改

2.2.4.1添加字段

ALTER TABLE 表名 ADD 字段名类型 (长度) [COMMENT 注释] [ 约束];

2.2.4.2修改数据类型 

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

2.2.4.3修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [ 约束 ];

2.2.4.4删除字段

ALTER TABLE 表名 DROP 字段名;

2.2.4.5修改表名

ALTER TABLE 表名 RENAME TO 新表名;

2.2.5表操作-删除

2.2.5.1删除表

DROP TABLE [IF EXIST} 表名;

 可选项 IFEXISTS代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果加该参数项,删除一张不存在的表,执行将会报错)。

2.2.5.2删除指定表,并重新创建表

TRUNCATE TABLE 表名;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>