大家好,欢迎来到IT知识分享网。
DDL
DDL_数据库增删改查(使用较少)
DDL_数据库表增删改查
DDL_创建表
语法:
代码及注意事项 :
1 — 所有的列明或者创建的表明都要用“括起来
(2)数值型
(3)日期型
(4)二进制型
DDL_修改表
1、增加表的字段
(2)给表数据重命名(可以修改字段名或者数据类型)
(3)仅修改字段名
3、修改表名
4、删除字段
DDL_删除整张表
drop table if exists +想要删除的表
创建数据库和表的经验
查询到的结果是:
然后将查到的SQL语句复制出来即可
DML
DML_给表添加数据
公式一:一般写插入语句都是字段和数据一一对应
insert into 表名称(字段名1,字段名2,字段名3...) values('值1','值2','值3'...);
例子:
如果想要给某个字段添加多条信息,直接在values后面加多个括号,括号里面添加相关的信息即可,见公式2
公式二:
insert into 表名称 (`字段名1`,`字段名2`...) values('值1','值2',...),('值1','值2'),...;
例子:
注意事项:
DML_修改表数据
公式:
update 表名 set 原数据 = 新数据 where 判定条件 (想要修改多个,直接在set 后面用逗号隔开,直接添加数据即可)
例子: update stu set sex =’女’,age = 12 where name = ‘张三’;
DML_删除表数据
公式:
delete from 表名称 where 判定条件;
例子: delete from stu where name = ‘张三’;
truncate table 表名称;
delete和truncate区别:
delete不会影响自增,truncate可以将自增归零
测试:
(1)创建好测试表,此时的自增为5
(2)执行delete语句,此时他的自动递增依旧是5
(3)而当我执行 truncate语句时,此时的自动递增归为初始的1
拓展:(加分项)
DQL
DQL_数据库表数据查询语句
语法汇总
这些语法如果共用,那么使用的顺序一定按照上面的顺序,不能乱!!!
基础查询
(1)查询所有列(慎用,因为真正做项目的时候* 不知道是查询哪些数据)
select * from stu;
(2)查询特定列信息
select 列名1 ,列名2 from stu;
(3)去除重复关键字
select distinct address from stu;
(4)给列名起别名(as 可以省略 ,但是原始的修改的中间至少要有一个空格)
select name as 姓名,math as 数学成绩 from stu;
条件查询
语法:
select 字段列表 from 表名 where 条件列表;
(2)查询年龄大于等于20,小于等于30的
select * from stu where age>=20 and age<=30;
select * from stu where age between 20 and 30;
(4)查询或关系的语句(跟模糊查询相似,只不过,in后面加的时具体的值)
select * from stu where age = 18 or age = 20;
select * from stu where age in(18,20);(推荐用)
(6)模糊查询,其中 “_”代表单个任意字符,”%“代表多个任意字符
查询姓马的学员
select * from stu where name like ‘马%’;
查询第二个字是花的学员
select * from stu where name like ‘_花%’;
查询名字中包含‘德’的学员
select * from stu where name like ‘%德%’;
排序查询
排序方式:
asc: 升序(默认)
desc:降序
1、升序查询
select * from stu order by age asc;
例子:
2、降序查询
select * from stu order by age desc;
例子:
3、多字段排序
select * from stu order by math desc ,english asc;
分组查询(SQL的内置聚合函数和计算)
一、count函数
1、count函数定义
count (): 统计数量,可以用于任一数据类型(因为他只是用来计数的)
2、函数取值:
(1)count(主键)主键
(2)count(*)(直接查询数据最快的地方)
(3)count(指定列)
(4)count(1)
4、区别
二、max和min可以用于数值、字符串、日期时间数据类型
*max : 求最大值
select max(列) from stu;
三、sum和avg只能数字数据类型来做计算
*sum : 求和
select sum(列) from stu;
四、分组查询
关键字: group by
用法: group by + 分组的条件
3、查询结果:
Join On七种联表查询方式
1、测试表
(1)
(2)
2、分析两张表的相同字段,为gradeid ,想要查出每一个科目对应学习的年级,就得让科目表的 gradeid与年级表的 gradeid字段一一对应
查询语句如下:
注意:
(1)on就是join on 完整的语法,表示查询的前提,保证两张表的gradeid一致;
(2)因为两张表都存在这个gradeid,所以查询的时候给两张表起一个别名,这样就可以避免在两张表中重复查询gradeid字段了。
3、查询结果: 两张表的不同字段展示在同一张表中,查询成功!
自连接查询(开发常用)
实际开发中常常将具有父子关系的数据为了节省表,
将父子数据放在同一张表中,如果想要查出一张表中的父子对应关系,那么就需要用到自连接查询。
测试:
1、测试表,需要查询父栏目的categroyname对应子栏目的categroyname:
其中pid为1的是父数据,pid!=1的是子数据,子数据的pid则对应父数据的categroyid
2、这样的表就需要我们把一张表看作两张一模一样的表
3、查询结果
分页查询
用limit关键字
分页规律:
子查询
子查询先执行where条件内的查询语句
两张表:
1、查询语句对比:
总结:到此,关于MySQL的基本语法就写完啦,个人感觉新手或者是中级开发可以经常翻翻看看,及时唤醒记忆,查缺补漏。我也会及时的更新最新的语法,欢迎交流和指正!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/145073.html