MySQL
这是一个关系型数据库,存在表的概念。
结构数据库可以存放多张表,每个表可以存放多个字段,每个字段可以存放多个记录。
DOS命令操作数据库
PHPstudy使用终端打开数据库
第一步:设置-->MySQL工具-->MySQL命令行;
第二步:第一次打开:默认是root
一、对数据库进行增删查改
1.查看数据库的指令:show databases;
“ ; ”分号是数据库的结束符,没有加分号,即使按回车,也代表这个语句没有结束。
2.创建数据库:create database +数据库名;
3.删除数据库:drop database +数据库名;
4.进入某一个数据库中:use +数据库名;
二、对数据表增删查改
1.查看数据表:show tables;
2.创建数据表:create table +表名(字段1 类型,字段2 类型);
create table t1(id tinyint,age smallint,name int,sex bigint);在创建表的时候一定要加字段
id是字段、tinyint是字段的属性、unsigned是字段属性,代表无符号,不会去负数,扩充了正数的范围;
create table t2(id int unsigned);:创建了一个t2的表,有一个叫id的字段,且这个字段是整数型,无符号,扩充了正数范围;
alter table t1 add age int(5) zerofill;
查看字段定义的时候会发现int(5) 5是字符宽度1 00001 如果在给这个字段设置,id int(5) zerofill; id的宽度是5 如果输入2 前面会用0去填充成为00002
3.删除数据表:drop table +表名;
4.修改表名:alter table +表名 rename +新表名;
三、进入表里对字段进行操作
1.查看表的定义 :desc +表名;
2.添加字段(字段名和字段类型都要写):alter table +表名 add +字段定义;
3.删除字段:alter table +表名 drop +字段名;
4.修改字段:alter table 表名 change +旧的字段名 +新的字段名 +字段定义;
5.修改字段类型:alter table +表名 modify +字段名 +字段类型(字段定义);
四、给字段添加数据(记录)
1.添加一条记录:insert into +表名(字段名,字段名) value(值1,值2);
2.添加不指定字段名的语法:insert into +表名 value(值1,值2);
3.多条记录添加:insert into +表名 value(值1,值2),(值1,值2),(值1,值2),(值1,值2);
4.查看记录:
(1)、查看所有的字段记录:select * from +表名;
(2)、查看单个的字段记录:select +字段名 from +表名;
(3)、查看多个的字段记录:select +字段名1,字段名2 from +表名;
(4)、按条件查询:select * from +表名 where +字段+条件表达式(>、<、>=、<=、=、!、and 、且、 or);
(5)、排序查询:
由低到高排序:select * from +表名 order by +字段名 asc;
由高到低排序:select * from +表名 order by +字段名 desc;
(6)、限制查询:
从第二个开始向后查询五个: select * from +表名 limit 2,5;
从开始一直查询到第五个: select * from +表名 limit 5;
5.删除记录:
(1)、删除所有:delete from +表名;
(2)、按条件删除:delete from +表名 where +字段名+条件表达式;
6.改数据:
(1)、将要修改的字段下的数据都修改为所改的值:update +表名 set +字段名=值;
(2)、按条件修改:update +表名 set +被修改字段=值 where +被修改字段所对称的字段=值;
五:补充:
1.主键key
一个表必有一个唯一的标志符,往往都是id,尽量不要用数据记录去充当主键key;
(1)Primary key() 用于设置主键的
(2)设置主键的方法
1.Create table t4(id int primary key,age int);
2.Create table t5(id int,age int,primary key(id));
3.Create table t6(id int,age int);回车之后发现没有设置主键,可以使用alter table t6 modify id int primary key;
(3)自增:Auto_increment
1.Auto_increment 必须和primary key 配合使用
Create table t7(id int primary key auto_increment,age int);
2.加数据记录insert into t13(age) values(23),(21),(19);
2.Null
1.默认是null 但是主键不能是null 可以为空
2.Not null 不能为空
3.Default 默认值属性
Create table t11(id int not null,age int default 23);
后面在加数据记录的时候age这个字段如果有值就是这个值如果没有就是默认值23
怎么加:
Insert into t11(id) values(1),(2),(3)
4.添加数据记录
Insert into 表名[(字段1,字段2)] values(值1,值2);
5.数据库的数据类型
(1)数值
Tinyint int
Float 单精度最多到7位小数3.16528663=》3.165287
(2)字符串
1.Char 定长字符串不需要设置字符编码不管是字母还是汉字都是一个字符
存储空间是固定的哪怕放一个字母也分配那么多空间
2.Varchar 变长字符串需要设置
根据存储量varchar比较节省空间
3.Mysql设置字符编码charset=utf8|gbkd; uft8 一个汉字占三个字节gbk 一个汉字占2个字节
4.Text
(3)日期
6.聚合查询
(1)Sum() select sum(字段) from 表名;
(2)Count() 记录总数
(3)Max() 最大值
(4)min
(5)Group by 表示分类聚合
(6)With rollup 对分类后的结果再汇总可有可无
(7)Having 对分类后的结果再进行条件过滤
表链接
(1)内链接
Select * from t1,t3 where t1.id=t3.eid;
(2)外链接
1.左链接
Select * from t1 left join t2 on 表1.字段=表2.字段;
2.右链接
左连接和右连接
左连接把左表的当主表
子查询
in 查询子查询必须是按唯一一个字段查询
Not in