MySQL数据库

2022.04.11(表名和列名不区分大小写)
  1. 查看MySQL当前版本号

连接上MySQL命令行输入:
> status; ## 查看版本号
create databases <库名> ## 创建<库名>数据库
use <表名> ## 进入数据库
create table <表名> (
列 字符限定 NOT NULL,
......................,
........................,
PRIMARY KEY ()); ## 创建表
show columns from <表名>; or describe <表名>; ## 查看表中的列
as ## 别名
  1. 常见的数据类型:    int |bigint/char|varchar|date|float/BLOB/CLOB
  2. 库名,表名,列名一般不区分大小写

--数据表结构的修改--

更改字段/类型长度/默认值/注释
alter table <表名> modify column <列名> varchar(60); ## 更改字符串
alter table <表名> change column <旧列名> <新列名> varchar(20); ## 更换字段名
表重命名
rename table <原表名> to <现表名>;
更改表的字符集为utf8
alter table <表名> character set utf8;
修改列名
alter table <表名> change <原列名1> <新列名2> varchar(20) not null;
删除某行
delete from <表名> where <列名1>=''and <列名2>='';
修改表中某行数据
update <表名> set <列名1>='' where/order/limit <列名2>=''; ## 没有where条件则全部更新
修改主键自增约束auto_increment
alter table <表名> modify id int ; ## auto_increment自增消失
alter table <表名> drop primary key; ## primary key 被删除
alter table <表名> modify id int auto_increment primary key; ## 添加自增约束,auto_increment与primary key顺序可调换


--查看表结构--

查看当前数据库下的所有表
show tables;
查看当前表的建表语句
show create table <表名>;
查看完整表结构
desc <表名>; | show columns from <表名>;
关键字查询 like
select * from <表名> where name like '刘%'; ## 查询姓‘刘’
select * from <表名> where name like '刘_'; ## 查询‘刘-’,限定两个字
select * from <表名> where name like '刘__'; ## 查询‘刘__’ 限定三个字
/* WHERE 子句 = 指定所对应的条件     HAVING 子句 = 指定所对应的条件///
四点需要注意的地方:
          当一条insert语句执行成功之后,表格中不然会多一行记录。及时多的这样某些字段全为null,后期也没有办法在执行insert语句插入数据了,只能使用update进行更新

易错分区

  1. 插入数据为null时,不需要加 ''     ,例如  
insert into goods ( name, expiry_date,price) values ('面包','2019-03-15',null); ## 非'null'
  1. 修改字段名用 --change--,修改字段数据类型用--modify--
alter table goods change column1 column2,float; ## 修改column1 为 column2,数据类型为float
alter table goods modify column1 double; ## 修改column1 的数据类型为double
--change--既可以修改列名,也可以修改字符串,而--modify--只能修改字符串。


--函数--
count函数
count(*)得到包含Null在内的行数,而count(列名)得到Null之外的数据行数。
sum函数
四则运算中如果有Null,则结果一定为Null,但是聚合函普遍都是排除Null值后计算。


--表的复制--
create table <表名 > as select语句。
--删除大表--
truncate table <表名>; ## 表被阶段,不可回滚,永久删除


--约束--
--常见约束--
  1. 非空约束 ,约束的字段不能为NULL
  2. 唯一约束,约束的字段不能重复,但可以为NULL, 这里NULL不是值。
常例:
id int,
name varchar(255) unique, ## 列级约束
age varchar(255),
unique( name,age); 多个字段联合约束unique(字段1,字段2); ## 表级约束

  1. 主键约束,约束的字段既不能为NULL,也不能重复。