mysql 进入 标点符号全部用英文的 mysql -uroot -p密码 或mysql -uroot -p 密码
show databases; 看数据库 create database 库名; 创建数据库 drop database 库名; 删除数据库 use 库名; 使用该数据库 show tables; 查看该库下的表 create table students( 创建表student id int, id 数字 name varchar(20), name 字符长度20 mes text, mes 文本 birthday datetime, birthday ‘1990-1-1 1:2:1’ Chinese float, chinese 数字可以有小数点 math double, math 和float相似 sex char(2) sex 字符长度限制为两个 );
删除表 drop table students;
修改 1.添加字段 alter table students add column score float; column 可不用 表格添加score float;后面可以再加上after id 那么添加的就会排在id的后面; 2.删除字段 alter table students drop mes; 删除mes 3. 修改字段 类型 alter table students modify name varchar(30); name的字符长度改为30,varchar可以改为其他的 名称 alter table students change mes mem text; mes改为mem 表名称 alter table students rename to student; to 可不用 rename table students to student; 表名students 改为student
数据管理 1增加数据 insert into student(id,name) value(1,‘吕布’); (id,name )对应的加入(1,吕布) insert into student value(1,‘zhugliang’,‘fajhfajk’,‘199-1-1 1:2:2’,88,88,‘nan’); 2删除数据行(慎用) delete from student; 表student内容全删 (可回滚) delete from student where id=1; 带条件删除,删id=1 的这些行
truncate table student; 内容全删(不可回滚)
修改字段 update student set name=‘guanyunchang’ where id=1; 在id=1这些行里的name都改为guangyunchang update student set name=‘xiaoqi’; 表里的name全部改为xiaoqi
1.查询 所有字段 select * from student; 指定字段,列查询 select id,name from studen; 指定别名 select id ,name as ‘姓名’ from student; 等于 select id ,name ‘姓名’ from student; 合并列 select (a+b+c) from student; 去重 select distinct name from student; 条件查询 逻辑查询 and 和 or select * from student where id=1 and name=‘小兰’; 查id=1并且name 为小兰的列 select * from student where id=1 or name=‘小兰’; 查id=1或者name为小兰的列 比较查询> < <= >= <> 大于,小于,小于等于,大于等于,不等于 select * from student where english>70 and english<90; select * from student where english between 70 and 90; 一样,查英文70到90分的列 判空查询 select * from student where english is null; select * from student where english=null; 查english是null的列 select * from student where english is not null; 查english不是null的列 select * from student where english=’’; 查english是空字符的列
模糊查询 % 匹配多个字符,_匹配单个字符 select * from student where name like ‘%a’; ‘%a’ 左多;'a%‘右多;’%a%'左右全 ‘a’左一 ;'a’ 右一; ‘a’ 都可一 聚合查询 sum()总和;avg()平均;max()最大;min()最小 count()个数;一般后面加group by 某个名称用来分开,分组 select sum(a+s=f) as ‘总’ from student; avg max min count
分页查询 select * from student limit 0,2; select * from student limit 2,2; limit (当前页-1)*每页行数, 多少行 (1-1)x 2=0 2 (2-1)x 2=2 2
排序查询 select * from student order by english; 按english的大小的升序排序(默认) 后面加asc 升序 后面加desc 降序 select * from student order by english ,id asc; 只作用前者 分组查询 select english from student group by id; 查english按id分组 select english from student group by id having english>90; 查english按id分组(并且条件满足english大于90)
alter table 表名 convert to character utf8; 给字符为utf8 约束 非空约束 id int not null, 唯一约束 id int unique, 默认值 address varchar(20) default ‘小西湖’; 关键词 id int primary key, 是唯一加上不为空 只增长 id int primary key auto_increment; 默认从1开始增长,后加=数字就从你加的数字开始增长
两表关联 先要有可以关联的某个名称 比如主表student的class与副表id关联 则创副表id的时候 写id int references student(class),
想要改主表而影响副表时 加上on update cascade; id int references student(class) on update cascade; 多表查询时 select 查的内容 from a ,b where a.id=b.id;
多表查询时 select 查的内容 from a ,b where a.id=b.id and 条件;
多表查询时 select 查的内容 from a ,b,c where a.id=b.id and b.id=c.id and 条件;
select 查的内容 from a inner jion b on b.id=a.id and 条件;
select 查的内容 from a left/right jion b on b.id=a.id and 条件;
select 查的内容 from a left/right jion b on b.id=a.id and left/right/inner c on b,id=c.id group by 名称 having 条件 order by 名称 asc/desc; 分组,条件,排序