MySQL基本操作

时间:2022-04-29 01:29:16

启动/关闭

net start mysql     //管理员身份
net stop mysql

登入/退出

mysql -hlocalhost -p3306 -uroot  -p[密码]     //密码可选
可以简写为:mysql -uroot -p   //本机
exit    //退出    或 ctrl c 或 quit

mysql服务器架构

  1. DBMS(数据库管理系统)管理服务器端的内容。
  2. DB(数据库),用于存储数据的仓库。
  3. Table(数据表),用于存储具体的实体数据。
  4. Filed(字段),用于某种类型存储数据

库操作

创建数据库

create database 数据库名称 [库选项]

  • 库选项(数据库的相关属性):
    • 字符集 :charset 字符集
    • 校对集 :collate 校对集
       create database text charset gbk;
    查看数据库
    1. show databases; //查看所有数据库
    2. show databases like ‘ 匹配模式’ ; //模糊查看
    3. show create database 库名 //单个查看
选库与修改,删除
  1. use 数据库名字; //选择数据库
  2. alter database 数据库名字 charset gbk; //修改数据库的字符集为gbk
  3. drop database 数据库名字 ; 删除数据库

表操作

创建表

create table 表名(字段名1 字段类型1,字段名2,字段类型2,...)[表选项];
表选项:

  • Engine : 存储引擎
  • Charset : 字符集 (级别比数据库的字符集要高)
  • Collate : 校对集
  create table table1(
        age int
     )engine innodb charset gbk;
复制表

create table 表名 like 表名。 //只复制结构(空表)

设置表属性
drop table 表名1,表名2... 删除表
rename table 原表名 to 现表名 修改表名
alter table 表名 add [column] 新增字段名 类型 [first / after...] 新增字段
alter table 表名 change 旧字段名 新字段名 字段类型 [first /after] 修改字段名字
alter table 表名 modify 字段名 新字段类型 [新属性] [新位置]; 修改字段属性
alter table 表名 drop 字段名 删除字段
alter table 表名 表选项 修改表选项
查看表
  1. show tables; //查看所有的表
  2. show tables like ‘匹配模式‘ // 部分查看
  3. describe 表名; //查看表结构
    简写: desc 表名;
  4. show create table 表名; //查看表创建语句

数据操作

insert into 表名 (字段列表名) values(数据值列表) 添加数据(部分)
insert into 表名 values(值列表) 向表中所有的字段添加数据
查询:
select * from 表名字 查询表中所有的数据
select 字段列表 from 表名 查询指定字段的数据(字段之间都好分隔)
select 字段列表 from where 条件 条件查询
删除
delete from 表名 [where 条件] 没有条件,就默认删除表中所有数据
修改
update 表名 set 字段名 = 新字段值 [where 条件] 没有条件默认修改表中所有...

字符集

set name 字符集 设置字符集(client server connection)
show variables like ‘character_set%‘ 查看 client server connection 的字符集
set character_set_client = ‘字符集’ 修改clinet的字符集
set character_set_results = ‘字符集’ 修改server的字符集
set character_set_connection = ‘字符集’ 修改connection的字符集

列类型

范围
整型
tinyint 系统常用一个字节存储 0-255(-128 ~127)
smallint 两个字节 0-65535 ...
mediumint 三个字节
int 四个字节
bigint 八个字节
浮点型
float 四个字节 精度<=7,超过精度部分,四舍五入
double 八个字节 精度<=16,同上
定点数
decimal 整数部分一定精确 decimal(总长度<=65,小数部分长度<=30)
  • 无符号设定 unsigned (默认无符号)

    alter table xxx add age tinyint unsigned first;

  • 显示长度 : tinyint(3)
  • 零填充zerofill : alter table person modify age tinyint(2) unsigned zerofill after name; ||

日期类型

date 格式YYYY-mm-dd 初始值0000-00-00
time 格式HH:ii:ss
datetime 格式YYYY-mm-dd HH:ii:ss
timestamp 格式YYYY-mm-dd HH-ii-ss
year 一个字节 范围:1900-2155
  • insert into times (datetime) values(‘2018-12-5 12:12:21‘);

字符类型

char(L) L代表字符数 定长,查询效率比varchar高
varchar(L) L<65535,会有额外的1-2字节的开销 变长,节约空间
text 存储普通的文本 2^16 2字符数
tinytext <=2^8 1字符数
mediumtext <=2^24 3字符数
longtext <=2^32 4字符数
enum(数据值1,数据值2...) 下标一1开始
set(值1,值2,值3...) 集合,可以将多个数据选项同时保存的类型 0表示没被选中,1表示被选中

列属性

null 字段为空 默认为Yea
default 默认值 默认为null
comment‘描述’ 列描述 注释说明
[primary] key 主键 一张表只允许有一个主键
unique [key] 唯一键
auto_inncrement 自动增长
create table text2(
    name varchar(10) not null comment'dont arrow null' primary key ,
    city varchar(20) default 'beijing' 
    );

主键 (PRI)

  • 主键不允许为null
  • 主键的数据不允许重复(唯一性)
  1. 添加主键
  • alter table 表名 add primary key (字段)
  1. 删除主键
  • alter table 表名 drop primary key
  1. 复合主键
  • alter table 表名 add primary key(字段1,字段2)

自动增长

  • 在没有提供具体的数据的时候,系统会根据原来的数据自动增长后,填充数据。

  • 自动增长,只适用于数值类型。

  • 一个表只能有一个自增长

  1. 添加自增长

alter table 表名 modify id int unsigned auto_increment key;

  1. 修改自增长

    alter table 表名 auto_increment = 2; //设置自增长的(下一个)值

  2. 删除自增长

    alter table 表名 modify 自增长字段名 类型。

  3. 查看步长(auto_increment_increment) , 初始值(auto_increment_offset)

    show variables like ‘auto_increment%‘

唯一键(UNI)

  • 用于保证数据的唯一性
  • 唯一键在表中可以有多个
  • 唯一键允许字段为null,null可以有多个(null不参与比较)
  1. 创建唯一键

alter table 表名 add unique(字段名1,字段名2...)

  1. 删除唯一键

alter table 表名 drop index 唯一键字段名