MYSQL指令
MySQL指令
数据库(文件夹),数据表(excel文件)
数据库管理
show databases; # 查看已有的数据库
create database <数据库名字>; # 创建数据库
create database <数据库名字>; DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # 以utf-8创建
drop database <数据库名字>; # 删除数据库
use <数据库名字>; # 进入数据库
show tables; # 查看数据库下的数据表
数据表管理
- 查看表
use <数据库名字>; # 进入数据库
show tables; # 查看数据库下的数据表
- 创建表
create table <表名称号>(
列名称,类型,
列名称,类型,
列名称,类型
)default charset=utf8
- 可以写一行
create table tb1(id int, name varchar(16), age int)default charset=utf8;
- 也可以分开写(直到分号才结束)
create table tb2(
id int,
name varchar(16),
age int
)default charset=utf8;
两种创建方式均可
此时show tables就可以看到创建的两张表了
不允许为空
create table tb2(
id int,
name varchar(16) not null, # 不允许此列为空
age int null # 允许此列为空(默认)
)default charset=utf8;
- 插入时,写默认值
create table tb2(
id int,
name varchar(16),
age int default 18 # 插入数据时,age列的值默认为18
)default charset=utf8;
- 主键一般表示当前行的数据的编码
create table tb2(
id int primary key, # 主键,不允许为空,不能重复
name varchar(16),
age int
)default charset=utf8;
- 内部维护,自增
create table tb2(
id int auto_increment primary key, # 内部维护,自增
name varchar(16),
age int
)default charset=utf8;
- 一般创建不允许id为空
create table tb2(
id int not null auto_increment primary key,
name varchar(16),
age int
)default charset=utf8;
- 删除表
drop table <表名称>;
- 展示表格的属性
desc <表名称>;
数据类型
以下列举常用的数据类型,更多参考官方文档
- tinyint
有符号:取值范围:-128~127(有正负)默认
无符号:取值范围:0~255(只有正)
- 以下就是创建无符号的表
create table tb2(
id int not null auto_increment primary key,
age tinyint unsigned
)default charset=utf8;
- int
int 有符号:取值范围:-2147483648~2147483647(有正负)默认
int unsigned无符号:取值范围:0~4294967296(只有正)
- bigint
这个的范围比int还大的多
- float
- double
- decimal
准确的小数值,m是数字总个数(负号不算),d是小数点后放两位,m最大值为65,d最大值为30
create table tb3(
id int not null auto_increment primary key,
salary decimal(m,d)
)default charset=utf8;
- char,速度快
定长字符串(固定用11个字符存储) ,最多可容纳255个字符
create table tb4(
id int not null auto_increment primary key,
moble char(11)
)default charset=utf8;
- varchar ,节省时间
变长字符串,真实数据多长,就按照多长存储。最大根据编码最大字节/3
create table tb5(
id int not null auto_increment primary key,
moble varchar(11)
)default charset=utf8;
- text
text数据类型用于保存变长的最大字符串,则可以多达六万多字符,mediumtext, longtext更多
一般,长文本用text,
mediumtext
longtext
datatime
YYYY-MM-DD HH:MM:SS
- data
YYYY-MM-DD
数据行操作
- 新增数据
insert into 表名(列名,列名) values(值,值);
- 删除数据
delete from 表名;
delete from 表名 where 条件;
delete from usertable where id = 3;
delete from usertable where id = 3 and name = "王";
delete from usertable where id != 3;
delete from usertable where id > 3;
delete from usertable where id in (3,5); # 产出3和4
- 修改数据
update 表名 set 列=值;
update 表名 set 列=值,列=值;
update 表名 set 列=值 wherr 条件;
- 查询数据
select * from 表名称;
select 列名称 from 表名称;
select 列名称 from 表名称 where 条件;
练习
- 创建用户表
create table usertable(
id int not null auto_increment primary key,
name varchar(64) not null,
password char(64) not null,
email varchar(64) not null,
age tinyint,
salary decimal(10,2),
ctime datetime
)default charset=utf8;