对表的操作命令

本文详细介绍了SQL中对数据库表的操作,包括如何创建表格、选择数据类型,如数值、字符串和日期时间类型,以及如何删除和修改表格。重点讲述了对表中数据的插入、删除和修改,强调了主键设置、数据查询和约束的使用,如非空、唯一和外键约束,同时提到了查询中的条件操作、排序、分组和分页等技巧。
摘要由CSDN通过智能技术生成

一、创建表格

查询当前数据库所有表:
SHOW TABLES;
查询表结构:
DESC 表名;
查询指定表的建表语句:
SHOW CREATE TABLE 表名;

create table 表名(
字段名(就是列名)  数据类型(长度)  约束条件(可省略) comment “注释”,
字段名(就是列名)  数据类型(长度)  约束条件(可省略)
);

注意:

  1. 创建表时在小括号后面要加上分号
  2. 字段与字段中间用逗号隔开,最后一个字段不要加逗号(参考java参数格式)
  3. 如果定义为字符串类型的字段,后面要规定字符串长度
  4. 如果不指定长度,则使用默认值,如int类型默认长度11

二、数据类型

一、数值类型

类型 大小 描述
tinyint 1 bytes 小整数值
smallint 2 bytes 大整数值
meniumint 3 bytes 大整数值
int或interger 4 bytes 大整数值
bigint 8 bytes 极大整数值
float 4 bytes 单精度浮点数
double 8 bytes 双精度浮点数
decimal 小数值(精确定点数)

二、字符串类型

类型 大小 描述
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 长文本数据
mediumblob 0-16777215 bytes 二进制形式的中等长度文本数据
mediumtext 0-16777215 bytes 中等长度文本数据
longblob 0-4294967295 bytes 二进制形式的极大文本数据
longtext 0-4294967295 bytes 极大文本数据

日期时间类型

类型 大小 范围 格式 描述
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 - DD HH : MM : SS 混合日期和时间值
timestamp 4 1970-01-01 00:00:01 至2038-01-19 03:14: 07 YYYY - MM - DD HH : MM :SS 混合日期和时间值,时间戳

注意:

字符串类型:
      varchar:长度可变,不留空格,节省空间
      char :长度不可变,输入长度不够,则在后面用空格补齐,效率较高,不灵活
      例子:定义一个字符串类型的变量,规定长度为10,输入一个5长度的字符串 hello
           使用varchar:长度变为5
           使用char :长度不变,剩余五位长度用空格补齐
数值型:
    TINYINTsmallint (short)、INTBIGINT(long)、FLOATDOUBLE
    DOUBLE类型定义:DOUBLE(总长度,小数点位数)
逻辑型:
    BIT01)
日期型:
	DATE:        年月日
    TIME:        时分秒
    DATETIME:    包含时间和日期,如果输入空值,则字段为空
    TIMESTAMP:   包含时间和日期,如果输入空值,则默认调用当前系统时间

三、删除表格

drop table 表名称;-- 删除指定表格
drop table if exists 表名称;-- 如果指定的表存在,则删除表
truncate table 表名称;-- 删除指定表,并重新创建该表

四、修改表格

alter table 表名 rename to 新表名;-- 修改表名称
rename table 表名 to 新表名;-- 修改表名
alter table 表名 add 新列名 类型长度 [约束];-- 添加列
alter table 表名 add 新列名 类型长度 [约束] after 字段名;-- 在指定字段后添加新列
alter table 表名 add 新列名 类型长度 [约束] first;-- 在首行添加新字段 
alter table 表名 drop 字段;-- 删除指定字段
alter table 表名 drop primary key;-- 删除主键
-- 注意:当带有主键的列还有auto_increment属性,则需要间接方式才能删除主键
-- 解决方法:1. 先修改字段的约束 2. 删除主键
alter table 表名 modify 字段 类型长度;  alter table 表名 drop primary key;
alter table 表名 modify 字段 类型长度 default 默认值;-- 为字段设置默认值
alter table 表名 modify 字段 类型长度 [约束];-- 修改字段类型或约束
alter table 表名 change 旧字段 新字段 类型长度 [约束];-- 修改字段名
alter table 表名 charcter set 编码格式;-- 修改表编码格式

注意:

注意:当在cmd中插入数据时出现ERROR 1366 (HY000): Incorrect string value: ‘\xB9\xE3\xCE\xF7’ for column ‘address’ at row 1错误,是因为cmd默认编码格式为gbk;而数据库默认编码为utf-8;所以出错

解决方法:

在cmd中告诉MySQL:

-- cmd这边发送给MySQL的是gbk的。
set character_set_client=gbk;
-- cdm这边接受的数据要求是gbk的。
set character_set_results=gbk;
-- 或者在cmd上输入:
set names gbk;

五、对表中数据进行操作

DML:数据操作语言,对数据库中表的数据进行操作

一、在表中插入数据

1、给指定字段添加数据
insert into 表名(字段1,字段2...) values(列名对应的内容,列名对应的内容.....;-- 插入的类型必须与此处表列出的顺序一致
如:
insert into emp(name, age, gender, salary, join_date, dep_id) VALUES ('赵敏',22,'女','2000-01-07',5500,6); -- 报错Data truncated for column 'salary' at row 1,因为列出的顺序是salary, join_date,插入的却是'2000-01-07',5500
正确的写法:
insert into emp(name, age, gender, salary, join_date, dep_id) VALUES 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值