MySQL--表操作1

这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师。

依赖软件:mysql

系统环境:win

注:本次所有命令都是在命令行上执行

数据库的四大天王操作:增删改查

增删改查都是在对表进行操作的,所以第一步是建表,

建表前需要的知识储备:数据类型,存储引擎

数据类型:数值型,字符型,日期/时间型、NULL类型

数值型

整型

可选参数

unsigned:无符号类型

zerofill:0填充(默认无符号)

M:宽度(在0填充的时候才有意义)

tinyint(M) unsigned zerofill

类型 字节 最大值(带符号/不带符号) 最小值(带符号/不带符号)
tinyint 1 -128/0 127/255
smallint 2 -32768/0 32767/65535
mediumint 3 -8388608/0 8388607/16777215
int 4 -2147483648/0 2147483647/4294967295
bigint 8 -9223372036854775808/0

9223372036854775807/

18446744073709551615

浮点型

float(M,D)M:精度,D:标度

定点型

decimal(M,D)M:精度,D:标度


字符型

类型 说明 典型声明方式 范围
char 定长字符串 gender char(1)

charn(M) 0<=M<=255

varchar 变长字符串 email varchar (20) varchar(M) 0<=M<=65535
text 文本串 content text 约2W-6W个字符

日期/时间型

类型 名称 字节 格式 范围
date 日期 3 YYYY-MM-DD 1000-01-01~9999-12-31
time 时间 3 HH-MM-SS -838:59:59~838:59:59
datetime 日期时间 8 YYYY-MM-DD HH-MM-SS

‘1000-01-01 00:00:00’

~

‘9999-12-31 23:59:59’

year 年份 1 YYYY 1901~2155

NULL类型

1、NULL:不是假也不是真,而是空

2、任何类型,任何运算符,任何判断符和NULL结合,结果都为NULL

3、NULL的判断只能用 is null、is not null

4、NULL影响查询速度,一般避免使用NULL

建表

# 语法 []内为可选参数
create table tbname(
列名 列类型 [列参数] [not null default ] ,
......
列名 列类型 [列参数] [not null default ]
)engine myisam charset utf8;

#示例
create table goods(
  goods_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
  cat_id smallint(5) unsigned NOT NULL DEFAULT '0',
  goods_sn varchar(60) NOT NULL DEFAULT '',
  goods_name varchar(120) NOT NULL DEFAULT '',
  click_count int(10) unsigned NOT NULL DEFAULT '0',
  goods_number smallint(5) unsigned NOT NULL DEFAULT '0',
  market_price decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  shop_price decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  add_time int(10) unsigned NOT NULL DEFAULT '0',
  is_best tinyint(1) unsigned NOT NULL DEFAULT '0',
  is_new tinyint(1) unsigned NOT NULL DEFAULT '0',
  is_hot tinyint(1) unsigned NOT NULL DEFAULT '0'
)engine myisam charset utf8;

增加数据

# 语法
insert into表名
(列名,....列名)
values
(值1,....值n),
......
(值1,....值n);

# 示例
insert into goods
(goods_id,cat_id,goods_sn,goods_name,click_count,goods_number,market_price,
shop_price,add_time,is_best,is_now,is_hot)
values
(1,4,'ECS000000','KD876',7,1,1665.60,1988.00,124583,1,1,1),
(2,4,'ECS000001','诺基亚N97',7,1,3665.60,3588.00,124585,1,1,1);

 添加其他表中的数据

# 语法
insert into dtname.tbname
select 列名1,......,列名n from dtname.tbname

# 示例
insert into goods.goods
select
goods_id,cat_id,goods_name,goods_number
from shop.goods;

增加列

# 语法
alter table 表名 add 列名 列类型 列参数
# 指定添加在某列后面(可选)
after 某列名
# 指定添加在某列前面(可选)
first 某列名

# 示例
alter table goods add shop_price decimal(8,2) not null default 0.0;

修改列类型

# 语法
alter table 表名 modify 列名 列类型 列参数

# 示例
alter table goods modify shop_price float(8,2) not null default 0.0;

同时修改列名和列类型

# 语法
alter table 表名  change 旧列名 新列名 列类型 列参数;

alter table goods change 
shop_price now_shop_price decimal(8,2) not null default 0.0

删除列

# 语法
alter table 表名 drop 列名;

# 示例
alter table goods drop now_shop_price;

修改数据

# 语法
update 表名 set 列名=修改的内容 where 表达式;

# 示例
update goods
set goods_name='诺基亚123'
where goods_id=4;

删除数据

# 语法
delete from 表名 where 表达式;

# 示例
delete from goods where goods_id=6

查看数据

查看数据在初级数据库工作中非常重要,所有这里只简单说明下,下一篇专门讲

# 语法
select 查看的列名 from 表名

# 示例
select * from goods;
由于mysql版本的变化,语法可能存在一定的变化,欢迎指出错误和评论区讨论
打破当前不满足的方式就是当下默默努力!!!
原文地址:https://www.cnblogs.com/Pang-Jie/p/10889332.html