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: 为该字段设置默认值
列类型
整型
- tinyint
- smallint
- int
- mediumint
- bigint
注意: 加上unsigned代表不能取负数,只适用于整型
浮点型
- float
- double\
- decimal(总位数, 小数位数)
字符串
- char(长度)
- varchar(长度)
区别:
char: 固定长度,无论插入多少个字符都是占用固定长度的字节数,可以用来存放身份证,手机号,md5加密的值等
varchar: 可变长度,根据插入的字符串来计算所占的字节数,但是有一个字节来保存字符串的大小
注意: 如果不能确定插入数据的大小,一般建议使用varchar(255)
时间类型
- year
- time
- date
- datetime
- 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的区别:
- delete是一行一行的删,truncate是全选删除,truncate的执行速度比delete快
- delete之后,插入数据从上一次主键增加1开始,truncate直接从1开始
修改数据
update 表名 set 列名1 = 值1, 列名2 = 值2 where 条件
查找数据
select * from 表名 where 条件
数据过滤
- =,<,>,<=,>=,<>,!=
- between...and...
- distinct
- like(模糊查找)