2020-10-23

本文概述了数据库的基本语法,包括数据类型(如tinyint, int, varchar等)、时间日期类型和null类型,以及创建、使用和管理数据库的关键操作。重点介绍了SQL语句创建表、修改表结构和数据操作的方法,如表名修改、字段增删、DML操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的基本语法

数据库的数据类型

数值型
tinyint   十分小的数据         1个字节
smallint   很小的数据          2个字节
mediumint  中等大小的数据      3个字节
int         标准整数           4个字节  比较常用的
bigint       较大的数据         8个字节  
float        浮点数             4个字节
double       浮点数              8个字节
decimal      字符串形式的浮点数     金融计算一般使用decimal
字符串
char        字符串固定大小0-255
varchar      可变字符串    0-65535   常用的
tinytext      微型文本   2^8-1
text          文本串     2^16-1      用来保存大文本
时间日期
date          YYYY-MM-DD   日期格式
time           HH:mm:ss    时间格式
datetime       YYYY-MM-DD HH:mm:s 最常用的时间格式
timestamp       时间戳 1970.1.1到现在的毫秒数  也比较常用
year             --年份表示
null 类型

注释相关

1、 --   表示单行注释
2、/*  
   */    表示多行注释

数据库相关语法

创建数据库
create database 数据库名 character set 字符集 COLLATE utf8_general_ci; --指定编码方式和排序方式
--例子:
 create database school CHARACTER SET utf8 COLLATE utf8_general_ci

说明:

utf8_unicode_ci,其实是用来排序的规则。对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCTGROUP BYHAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关系

删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
使用数据库
use 数据库名称
查看所有数据库
show databases  -- 查看所有数据名称

表相关语法

创建表
CREATE TABLE [IF NOT EXISTS] `表名`(
    `字段名`  列数据类型  [属性]  [索引] [注释],
    `字段名`  列数据类型  [属性]  [索引] [注释],
    ......
    `字段名`  列数据类型  [属性]  [索引] [注释]
)[表类型] [字符集设置] [注释]  

例子:在school数据库下创建一个学生表,包含学生的id,姓名,性别,生日,地址,联系方式。

CREATE TABLE `student`(
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) NOT NULL COMMENT '学生姓名',
`age` INT(3) NOT NULL COMMENT '年龄',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`address` VARCHAR(10) DEFAULT NULL COMMENT '家庭住址',
`birthday` DATETIME DEFAULT NULL COMMENT '生日',
`phoneNum` VARCHAR(11) DEFAULT NULL COMMENT '联系方式',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

注意

  • 字段名、表名尽量使用``符号标出来

  • 要使用英文的括号和逗号

  • create table里只有最后一句不用逗号

  • primary key(字段名) --将某一字段设置为主键

  • 数据库引擎的选取

    MYISAMINNODB
    事务支持不支持支持
    外键约束不支持支持
    全文索引支持不支持
    表空间大小较小较大 约为MYISAM的2倍

基本操作表的语句,可以直接获取代码

show create database school     --查看定义数据库的语句
show create table student       --查看student定义表的语句
desc 表名                        --显示表的结构
对表的操作
  • 修改表名
altet table  旧表名 rename as  新表名   --修改表名
  • 增加字段

    alter table  表名  add  字段名   列属性   --增加表字段    
    ex:
    ALTER TABLE `stu` ADD `email` VARCHAR(1);
    
  • 删除字段

    alter table 表名 drop 字段名
    

DML插入、删除、修改表数据

插入

格式:

-- 单条插入
inset into 表名[(字段1, 字段2, 字段3...)] values('值1','值2','值3',...)

--多条插入
inset into 表名[(字段1, 字段2, 字段3...)] values('值1','值2','值3',...),(),()

删除
delete 表名 where 条件;
修改
update 表名  set  colnum_name =value[,colnum_name =value]  where [条件]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值