MySQL开发应该必须掌握的sql语句
发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,下面一起来了解下MySQL开发应该必须掌握的sql语句,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL开发应该必须掌握的sql语句这篇短内容是你想要的。创建数据库create databa
千家信息网最后更新 2024年11月15日MySQL开发应该必须掌握的sql语句
下面一起来了解下MySQL开发应该必须掌握的sql语句,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL开发应该必须掌握的sql语句这篇短内容是你想要的。
创建数据库
create database db1;
删除数据库
drop database db1;
创建数据表
create table tb1用户表( id int not null auto_increment primary key, name char(10), department_id int, p_id int, )engine=innodb default charset=utf8;
主键(primary key)一个表只能有一个主键,主键可以由一列或者多列组成
外键的创建
CREATE TABLE t5 ( nid int(11) NOT NULL AUTO_INCREMENT, pid int(11) not NULL, num int(11), primary key(nid,pid) --这里就是把两列设置成了主键 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; create table t6( id int auto_increment primary key, name char(10), id1 int, id2 int, CONSTRAINT fk_t5_t6 foreign key (id1,id2) REFERENCES t1(nid,pid) --这里是设置外键 )engine=innodb default charset=utf8;
数据行的操作
数据的插入
insert into tb1(name,age) values('ax',8);insert into tb12(name,age) select name,age from tb11;
表中的数据的删除
delete from t1;truncate table t1;drop table t1delete from tb1 where id > 10delete from tb12 where id >=2 or name='alex'
数据的更新
update tb1 set name='root' where id > 10
数据的查询
select * from tb;select id,name from tb;
表结构的查看
show create table t1;desc t1;
其他
select * from tb12 where id != 1 select * from tb12 where id in (1,5,12); select * from tb12 where id not in (1,5,12); select * from tb12 where id in (select id from tb11) select * from tb12 where id between 5 and 12;
通配符
select * from tb12 where name like "a%"select * from tb12 where name like "a_"
分页
select * from tb12 limit 10; select * from tb12 limit 0,10;select * from tb12 limit 10,10;select * from tb12 limit 20,10; select * from tb12 limit 10 offset 20;# page = input('请输入要查看的页码')# page = int(page)# (page-1) * 10# select * from tb12 limit 0,10; 1 # select * from tb12 limit 10,10;2
排序
select * from tb12 order by id desc; 大到小select * from tb12 order by id asc; 小到大select * from tb12 order by age desc,id desc;取后10条数据select * from tb12 order by id desc limit 10;
分组
select count(id),max(id),part_id from userinfo5 group by part_id;聚合函数有下面几个: count max min sum avg**** 如果对于聚合函数结果进行二次筛选时?必须使用having ****select count(id),part_id from userinfo5 group by part_id having count(id) > 1;select count(id),part_id from userinfo5 where id > 0 group by part_id having count(id) > 1;
自增值设置
表自增值的设置
alter table t1 auto_increment=20;-- 这个就表示从开始20开始算,用上面的show create table t1\G 就可以看到当前的值是多少。
基于会话级别
-- 查看当前的会话值show session variables like 'auto_incre%'-- 设置会话步长set session auto_increment_increment=2;-- 设置起始值set session auto_increment_offset=10;
基于全局设置
-- 查看全局的设置值show global variables like 'auto_inc%';-- 设置全局步长值set global auto_increment_increment=3;-- 设置起始值set global auto_increment_offset=11;
sql server 是在创建表的时候就可以自己设置,灵活度很高
REATE TABLE t5 (
nid int(11) NOT NULL AUTO_INCREMENT,
pid int(11) NOT NULL,
num int(11) DEFAULT NULL,
PRIMARY KEY (nid,pid)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=2 DEFAULT CHARSET=utf8CREATE TABLE `t6` (nid int(11) NOT NULL AUTO_INCREMENT,
pid int(11) NOT NULL,
num int(11) DEFAULT NULL,
PRIMARY KEY (nid,pid)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=20 DEFAULT CHARSET=utf8
唯一索引
create table t1( id int, num int, xx int, unique qu1 (num ,xx) -- 意思就是这两列在一行上面数据不能相同,例如都是1,1,就不行);
唯一索引:约束不能重复(可以为空)
主键索引:约束不能重复(不可以为空)
他们的特点都是加速查询
外键一对一
create table userinfo1( id int auto_increment primary key, name char(10), gender char(10), email varchar(64) )engine=innodb default charset=utf8; create table admin( id int not null auto_increment primary key, username varchar(64) not null, password VARCHAR(64) not null, user_id int not null, unique uq_u1 (user_id), CONSTRAINT fk_admin_u1 FOREIGN key (user_id) REFERENCES userinfo1(id) )engine=innodb default charset=utf8;
外键多对多
示例1: 用户表 相亲表 示例2: 用户表 主机表 用户主机关系表 ===》多对多 create table userinfo2( id int auto_increment primary key, name char(10), gender char(10), email varchar(64) )engine=innodb default charset=utf8; create table host( id int auto_increment primary key, hostname char(64) )engine=innodb default charset=utf8; create table user2host( id int auto_increment primary key, userid int not null, hostid int not null, unique uq_user_host (userid,hostid), CONSTRAINT fk_u2h_user FOREIGN key (userid) REFERENCES userinfo2(id), CONSTRAINT fk_u2h_host FOREIGN key (hostid) REFERENCES host(id) )engine=innodb default charset=utf8;
连表操作
select * from userinfo5,department5 select * from userinfo5,department5 where userinfo5.part_id = department5.id select * from userinfo5 left join department5 on userinfo5.part_id = department5.id select * from department5 left join userinfo5 on userinfo5.part_id = department5.id # userinfo5左边全部显示 # select * from userinfo5 right join department5 on userinfo5.part_id = department5.id # department5右边全部显示 select * from userinfo5 innder join department5 on userinfo5.part_id = department5.id 将出现null时一行隐藏select * from department5 left join userinfo5 on userinfo5.part_id = department5.idleft join userinfo6 on userinfo5.part_id = department5.idselect score.sid, student.sid from scoreleft join student on score.student_id = student.sidleft join course on score.course_id = course.cidleft join class on student.class_id = class.cidleft join teacher on course.teacher_id=teacher.ti
select count(id) from userinfo5;
看完MySQL开发应该必须掌握的sql语句这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
数据
用户
步长
语句
开发
全局
索引
用户表
一行
主机
内容
函数
就是
数据库
更多
示例
行业
增值
查询
肯定
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发付定金怎么入账
央企互联网科技介绍
抢票软件开发价格
消防网络安全教育短视频
cs1.6服务器比赛参数
软件开发合同延期
网络安全竞赛电力公司
p2p网络技术 标准
互联网科技公司的未来
网络安全法安全可信是什么含义
富仓网络技术
浦东新区营销软件开发诚信合作
宁波镇海附近服务器硬盘
国内数据库厂商 知乎
扫码共享充电宝软件开发
开源 sip 服务器
用友u812.5数据库
个体软件开发范围
静安区营销软件开发创新服务
软件开发项目研究现状
网络安全等级三个基本指什么
网络安全和游戏后端开发
软件开发公司活动
山西java软件开发诚信企业
疑难病例资源数据库
网络技术课程包括哪些内容
郑州软件开发怎么做微信小程序
网络安全概念强势领涨
锦鲤服务器C16
sql数据库如何保存