关于安装部分就去看其他人的一些文章即可网上太多,这篇文章主要就是记录本人的一些关于mysql操作上的笔记。
mysql -u root -p
show databases
create database abcd;
OK
时间: 0.003s
如果当前数据库已经存在,则会提示已存在无法创建
create database abcd;
1007 - Can’t create database ‘abcd;’; database exists
时间: 0s
drop database abcd
OK
时间: 0.008s
使用之前已经创建数据库abcd
use abcd;
primary key
比如我要设置id为主键就在表创建的时候在末尾新增
primary key (id)
多个主键的话就是直接在括号中新增即可
primary key (id,name)
如果我需要使用外键也就是连接另一个表的数据进行关联时
比如我需要在user2中,让外键deptld关联到deptld2的主键id中,
那么我可以这样操作
在创建表时在末尾写下这段
constraint deptld2 foreign key(deptld) references user(id)
约束一个字段值不为空
not null
unique
确保一列或几列不能出现重复值,但是可以为空,perimary key外键不能为空,unique允许为空,但不能重复
default + 值
默认当前数值为女、或者男
auto_increment
每新增一个数值,默认自增加一可用在例如id之类的数据上
describe user
简写
desc user
show create table user
alter table user rename user1;
alter table user1 modify name varchar(30);
修改前varchar是15,修改后变成varchar30
alter table user1 change name name1 varchar(15);
alter table user1 add work varchar(15);
1.对添加的字段进行约束,如添加不为空
alter table user1 add workid int(8) not null;
2.对表的第一列添加一个字段
alter table user1 add worknu int(15) first;
3.在表的指定列后添加一个字段
alter table user1 add t11 int(15) after id;
4. 删除字段
alter table user1 drop t11;
5.修改字段的排列位置
alter table user1 modify id int(15) first;
将id移动到表的第一个位置
alter table user1 modify work varchar(15) after id;
将work移动到id后面
drop table if exists abc;
1.查询所有字段
select * from user1
2.查询指定字段
select work from user1
3.查询多个字段
select work,worknu from user1;
4.查询指定记录
select work,worknu from user1 where worknu 7;
5.查询关于YYjHhHHJG6
select work,worknu from user1 where work=‘YYjHhHHJG6’
6.查询价格小于300的worknu
select work,worknu from user1 where worknu < 300
7.带in关键词的查询
worknu 104,163
select work,worknu from user1 where worknu in (104,163) order by worknu
8.查询所有worknu不等104,163的记录
select work,worknu from user1 where worknu not in (104,163) order by work
9.查询100-200之间的范围
select work,worknu from user1 where worknu between 100 and 200
10.like字符匹配查询
like 可以对字符开头a%,%a结尾,中间%a%
select work,worknu from user1 where work like ‘b%’
11.多条件查询AND
查询user1中id大于30且小于300,name1中间有c的字符,且salary大于300,并显示id,workid,name1,salary
select id,workid,name1,salary from user1 where id>30 and id<300 and name1 like ‘%c%’ and salary>300;
12.OR多条件查询
只要满足其中一个条件即可查询
select id,workid,name1,salary from user1 where id=246 OR id=170
13.查询不重复数据
select distinct workid from user1
14.对查询结果进行排序
order by desc降序排序
order by asc升序排序
多列排序,先按照work排序再按照id排序
select id,work from order by work ,id;
15.分组查询
对workid进行分组,相同id为一组,并计算其中总数
select workid,COUNT(*) as total from user1 GROUP BY workid
16.查询结果显示头几行
limit 4就是显示前四行
limit 5,10就是从第5行开始显示到第10行
select * from user1 LIMIT 5,10
17.聚合查询
1.count 统计列中包含的行数
select count(id) from user1;
统计id中包含最大的数据
2.avg返回某列中的平均值
select avg(salary) from user1;
统计salary中的平均数据
3.max返回某列的最大值
select max(salary) from user1;
返回salary中最大值
4.min返回某列最小值
select min(salary) from user1;
返回最小值
5.sum返回某列的和
select sum(salary) from user1;
返回salary中的总值
select * from user1 as u where u.worknu =535;
u就是表的别名直接用u代替user1使用即可查询到表内的信息
1.字段别名
select work AS w,worknu as wn from user1 as u where u.worknu = 94
具体正则可参考以下文章
正则表达式常用字符匹配列表
1.查询work中c开头的记录
select * from user1 where work REGEXP ‘^c’
2.查询work中c结尾的记录
select * from user1 where work REGEXP ‘c$’
3.查询字符串中任意一个包含字符"."
select * from user1 where work REGEXP ‘x.c’
4.查询连续出现次数的字符
a{3,} a最少出现3次
a{1,3} a最少出现1次,最多出现3次
select * from user1 where workid regexp ‘7{1,3}’
insert into user1 (id,work,worknu,deptld,name1,salary,workid) VALUES (1,‘adc’,222,‘abcdeer’,‘Dem Kevi’,22222,12345)
同时插入多条数据
insert into user1 (id,work,worknu,deptld,name1,salary,workid) VALUES (1,‘adc’,222,‘abcdeer’,‘Dem Kevi’,22222,12345),(2,‘abcd’,333,‘abcddd’,‘Kce ve’,2222,11111)
将id为52的数据更新,将worknu更新成666,salary更新成8888
update user1 set worknu=666,salary=8888 where id =52;
between AND 更新从多少到多少的数值
更新id为20-30,将salary数值变成8888
UPDATE user1 set salary=8888 where id BETWEEN 20 and 30;
DELETE from user1 where id =52;
删掉user表中id为52的数据
1.删除user1表中id为30-100的数据
DELETe from user1 where id BETWEEN 30 and 100;
2.删除表中所有的记录
delete from user1;
创建一个用户,用户名user10,密码gkbb123 主机名localhost
create user ‘user10’@‘localhost’ IDENTIFIED by ‘gkbb123’
删除user10
drop user ‘user10’@‘localhost’
create index a on user1(work);
查询索引
show index from user1
create unqiue index abc on user1(wrok)
注意:这里面的字段里面不能有重复值不然的话无法创建唯一索引
create table w(id int PRIMARY key)
show index from w;查询主键
alter table w drop primary key;
删除主键
在user1表中创建一个名为a的视图,并只显示work和workid
create view a as select work,workid from user1
SELECt * from a
查看视图中的数据
在st1表中和st2表中同时创建一个视图f1,同时显示id,name,class
create view f1 (id,name,class) as SELECt st1.id,st1.name,st2.class FROM st1,st2 where st1.id=st2.id
注意:需要保证两个表的列数相同不然无法创建成功
SELECt * from f1
查询创建的表
查看视图的基本内容
describe f1
show table status like ‘f1’
查看视图基本信息
show create view f1
查看视图的详细信息
create or replace view f1 as select * from user1
将f1视图的信息源变成user1
alter view f1 as select name from st1
alter也可以对视图内部的显示字段进行修改