Tiny_Lu
不忘初心

Day 34 sql基础

MySQL操作

创建表格

语句:

create table 表名(
字段名1 类型 [约束条件],
字段名2 类型 [约束条件]
);
# 注意
1. 在同一张表中,字段名是不能相同的
2. 宽度和约束条件可选
3. 字段名和类型是必须的

实例:

create table teacher(
id int auto_increment primary key,
name varchar(20),
age int,
salary decimal
);

列约束

auto_increment: 不指定则自增

primary key: 主键

NOT NULL: 标识字段不能为null

DEFAULT: 为该字段设置默认值

列类型

整型

  1. tinyint
  2. smallint
  3. int
  4. mediumint
  5. bigint

注意: 加上unsigned代表不能取负数,只适用于整型

浮点型

  1. float
  2. double\
  3. decimal(总位数, 小数位数)

字符串

  1. char(长度)
  2. varchar(长度)

区别:

char: 固定长度,无论插入多少个字符都是占用固定长度的字节数,可以用来存放身份证,手机号,md5加密的值等

varchar: 可变长度,根据插入的字符串来计算所占的字节数,但是有一个字节来保存字符串的大小

注意: 如果不能确定插入数据的大小,一般建议使用varchar(255)

时间类型

  1. year
  2. time
  3. date
  4. datetime
  5. timestamp

枚举

enum

实例:

create table teacher_info(
id int auto_increment primary key,
name varchar(20),
gender enum(male, female)
)

修改表格

修改表名

alter table 旧表名 rename 新表名

增加字段

alter table 表名
add 字段名 列类型[约束条件],
add 字段名 列类型[约束条件];

上面添加的列永远在最后一列之后

alter table 表名
add 字段名 列类型[约束条件] first;

将列添加到第一列之前

alter table 表名
add 字段名 列类型[约束条件] after 字段名;

将列添加到选择的字段名之后

删除字段

alter table 表名 drop 字段名

修改字段

alter table 表名 modify 字段名 类型 [约束条件]

修改已存在的字段的类型和约束条件

alter table 表名 change 旧字段名 新字段名 新数据类型 [约束条件]

修改旧的字段名为新的字段名,并设置新的数据类型和约束条件

删除表格

drop table 表名

查询表格

show tables

复制表结构

create table 表1 like 表2

将表2复制给表1

表格数据的增删改查

增加数据

insert into 表名 (列1, 列2, ...) values (值1, 值2, ...)

删除数据

delete from 表名 where 条件

不加where条件就会删除表内的所有数据

truncate 表名

delete和truncate的区别:

  1. delete是一行一行的删,truncate是全选删除,truncate的执行速度比delete快
  2. delete之后,插入数据从上一次主键增加1开始,truncate直接从1开始

修改数据

update 表名 set 列名1 = 值1, 列名2 = 值2 where 条件

查找数据

select * from 表名 where 条件

数据过滤

  1. =,<,>,<=,>=,<>,!=
  2. between...and...
  3. distinct
  4. like(模糊查找)
posted @ 2019-10-29 17:19  二二二二白、  阅读(98)  评论(0编辑  收藏  举报