MySQL基本操作
建表(table)
一个库中有多张表,每张表里有多条数据
表分成行(row 横向)与列(column 纵向)
- 选库
use 库名;
- 建表
create table 表名(
列1名 类型,
列2名 类型,
...
);
create table student(
id int,
name varchar(10),
sex char(1)
);
基本数据类型
整数类型: tinyint(1个字节), smallint(2个字节), int(4个字节), bigint(8个字节)
无符号数字 tinyint unsigned (0~255)
浮点类型: float, double
定点小数: decimal(总位数, 小数位数)
decimal(10, 2) 小数部分两位,整数部分最大8位
字符类型
char(长度) char(10) 表示最多存10个字符, 定长,效率高
varchar(长度) varchar(10) 表示最多存储10个字符,变长
“abc” "abc " 存储时,长度不足,用空格补齐
“abc” “abc” 存储时,根据实际长度存储,可以节省空间
日期类型
datetime
timestamp
- 插入数据
insert into 表名(列1, 列2, ... 列n) values (值1, 值2, ... 值n);
注意:值个数要与列个数一致
insert into student(id,name,sex) values(1, '张三', '男');
- 查询数据
语法:
select 列1, 列2, ... from 表名;
select id, name, sex from student;
- 查看所有库
show databases;
- 查看所有表
show tables;
- 唯一主键
每张表只能有一个主键
主键的值必须是唯一,且非空的
create table 表名(
列1名 类型 primary key,
列2名 类型,
...
);
删表语法:drop table 表名;
create table student(
id int primary key,
name varchar(10),
sex char(1)
);
insert into student(id,name,sex) values(null, ‘李四’, ‘男’);
自增列,用来解决主键冲突问题
在主键列后加入:auto_increment
1 2 3 4 …
因为id列由数据库维护,所以有了自增列后就不需要给id列赋值了
create table student(
id int primary key auto_increment,
name varchar(10),
sex char(1)
);
一次插入多条记录(mysql独有)
insert into student(name,sex) values(‘李四’, ‘男’),(‘王五’, ‘男’),(‘赵柳’, ‘男’);
-
查询所有列
select * from student;
mysql会把*翻译成:id,name,sex -
删除记录(只删除数据,不删表)
delete from 表 where 条件;
删除表(连表和数据一块删除)
drop table 表;