赞
踩
Createtable表名(
字段名1数据类型[完整性约束条件],
字段名2数据类型[完整性约束条件],
…
字段名n数据类型[完整性约束条件]
)characterset字符集collate校对规则;
创建数据库
Createdatabaseitcast;
选择数据库
Useitcast;
2.创建一个用于存储学生成绩的表tb_grade
Createtabletb_grade1(
Idint(11),
Namevarchar(30),
Gradefloat
);
查看当前数据库所存在的表
Showtables;
查看表详细信息
Showcreatetabletb_grade;
查看表详细信息(调整格式)
Showcreatetabletb_grade\G
使用DESC查看数据库
DESCtb_grade;
Field字段名称
Type字段类型
Null表示该列是否可以存储NULL值
Key表示该列是否已经编制索引
Default表示该列是否有默认值
Extra表示附加信息
添加、更新、、删除数据
===========
Createdatabasech03;
Usech03;
Createtablestudent(
Idint(4),
Namevarchar(20)notnull,
Gradefloat
);
使用select*fromstudent;可以查看当前数据表所有记录
添加操作
INSERTINTO表名(字段名1,字段名2,……)把表所有字段写完
VALUES(值1,值2,……);
指定字段名的方式添加记录
案例在student表中添加一条记录
Insertintostudent(id,name,grade)values(1,’zhangsan’,99);
Insertintostudent(name,grade,id)valuse(‘lisi’,88,2);
不指定字段名的方式添加记录
Insertintostudentvalues(3,’wangwu’,77);
语法
INSERTINTO表名(字段名1,字段名2,……)可以指定添加的字段
VALUES(值1,值2,……);
Insertintostudent(id,name)values(4,’zhaoliu’);
Insertintostudent(id,grade)values(5,78);
错误field‘name’doesn’thaveadefaultvalue
insert语句其他写法
Insertinto表名set字段名1=字段值1,字段名2=字段值3…
Insertintostudentsetid=5,name=’zhangsan’,grade=55;
INSERTINTO表名[(字段名1,字段名2,……)]
VALUES(值1,值2,……),(值1,值2,……),
……
(值1,值2,……);
Insertinto student values(6,’xiaohong’,81),(7,’xiaowang’,82),(8,’xiaoming’,82);
直插入IDname
Insertinto student(id,name)values(9,‘xiaohong1’),(10,‘xiaowang2’),(11,‘xiaoming3’);
3.2更新数据
语法
案例:更新student 表中id字段值为1的记录。将记录中的name字段的值更新为zhangsan, grade 字段的值更新为50.
Update student set name=’zhangsan’,grade=50 where id=1;
案例2.更新student表中id字段小于3的记录,将grade字段全部修改为100;
Update student set grade=100 where id<3;
Update student set grade=80 where id=1 or id=2;
Update 表名 set 字段名=值;
案例将student 表中的所有记录其中的grade 字段修改为0;
Update student set grade=0 ;
3.3删除数据
语法
Delete from 表名 【where 条件表达式】
删除表中部分记录
案例在student表中,删除id为1的记录;
Delete from student where id=1;
案例2在student 表中删除ID大于3的所有记录
Delete from student where id>3;
案例 删除student 表中全部记录
Delete from student;
语法
Truncate 【table】 表名
Create table tab(
Id int(3) primary key auto_increment,
Name varchar(20)
);
插入记录
Insert into tab(name) values(‘A’),(‘B’),(‘C’),(‘D’),(‘E’),(‘F’);
Delete 与 truncate 区别:
索引
===
为什么要使用索引:为了提高表的查询速度
普通索引、唯一索引、全文索引、单列索引、多列索引、空间索引、创建索引
创建表的时候创建索引
Unique:表示唯一索引
Fulltext:全文索引
Spatial: 空间索引
Index和KEY:字段索引 二选一
别名:创建索引的名称,可选
字段名:指定索引对应字段
长度:用于表示索引的长度
Asc和desc:asc 代表升序 desc 降序
案例 在T1表中ID字段上建立索引。
Create table t1(
Id int,
Name varchar(20),
Grade float,
Index (id)
);
查看索引是否被使用
Create table t2(
Id int,
Name varchar(20),
Grade float,
Unique index unique_id (id asc)
);
Create table t3(
Id int,
Name varchar(20),
Grade float,
Fulltext index fulltext_name(name)
)engine=myisam;
索引字段只有一个叫单列索引,上述三个案例都是单列索引
Create table t4(
Id int,
Name varchar(20),
Grade float,
Index multi (id,name(20))
);
注意: 在多列索引中,只有查询条件中使用了这些字段中的第一个字段时,多列索引才会被使用
Create table t5(
Space geometry not null,
Spatial index sp(space)
)engine=myisam;
表的约束
====
Primarykey主键约束
FOREIGNKEY外键约束
NOTNULL非空约束
UNIQUE唯一约束
DEFAULT默认值约束
保证该字段唯一并且保证该字段不为空
单字段主键字段名数据类型PRIMARYKEY
案例创建一张数据表EX1并设置id为主键
Createtableex1(
Idintprimarykey,
Namevarchar(20),
Gradefloat
);
Insertintoex1(id,name,grade)vaules(1,’zhangsan’,88);
多字段主键
案例创建ex2表并把id和sud_id两个字段共
同作为主键
Createtableex2(
Idint,
Sud_idint,
Gradefloat,
Primarykey(Id,Sud_id)
);
定义☞字段的值不能为空(null)
语法字段名数据类型notnull
案例创建ex3把表中的NAME字段设置为非空约
束
Createtableex3(
Idintprimarykey,
Namevarchar(20)notnull,
Gradefloat
);
唯一约束用于保证数据表中字段的唯一性,表中
字段的值不允许出现重复值。
语法字段名数据类型unique
案例创建表EX5把sub_id字段设置为唯一约束;
Createtableex5(
Idintprimarykey,
Sub_idintunique,
Namevarchar(20)
);
默认约束用于给数据表中的字段指定默认值
语法字段名数据类型default默认值
案例创建ex6表,将表中的成绩字段GRADE
设置为默认值为0
Createtableex6(
Idintprimarykey,
Namevarchar(20),
Gradefloatdefault0
);
设置表的字段值自动增加
字段名数据类型AUTO_INCREMENT;
案例创建ex7表,将表中ID字段设置为自动增加。
Createtableex7(
Idintprimarykeyauto_increment,
Namevarchar(20),
Gradefloat
);
基本查询
=====
语法
SELECT [DISTINCT] *|{字段名1, 字段名2, 字段名3,……}
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名 [ASC|DESC]]
[LIMIT [OFFSET] 记录数]
select from 系统关键字
Distinct 去除重复值
*|字段名 *代表当前表中所有字段 两者只能选一个
Where 筛选条件 用于指定查询条件
Group bu 用于将查询结果按照指定字段分组
Having 筛选条件 用于分组后使用
Order by 用于将数据排序, 其中ASC 代表升序 , DESC代表降序 不写默认升序
Limit 控制查询条数
查询所有字段
在select 语句中指定所有字段
Select 字段1,字段2… from 表名
案例查询STUDENT 表中所有记录
1、创建数据库
Create database ch04;
2.选择数据
Use ch04;
3.创建数据表
create table student(
Id int(3) primary key auto_increment,
Name varchar(20) not null,
Grade float,
Gender char(4)
);
添加记录
Insert into student (name,grade,gender) values
(‘songjiang’,40,’n’),(‘wuyong,100,’n’),(‘qinming’,90,’n’),(‘husanniang’,88,’v’),(‘sunerniang’,66,’v’),(‘wusong’,86,’n’),(‘linchong’,92,’n’),(‘yanqing’,90,null);
查询操作
select id,name,grade,gender from student;
语法
Select * from 表名
案例 查询student表中所有记录
Select * from student
4.1.3 查询指定字段
语法
Select 字段名1,字段名2,… from 表名
案例 查询student 表中姓名和成绩字段信息
Select name,grade from student;
案例 如果先展示grade 后展示NAME是否可以
4.2.1带关系运算符的查询
案例1.查询student 表中ID为4的学生姓名。
Select id,name from student where id=4;
案例2.查询name 为wusong的学生性别。
Select name,gender from student where name=’wusong’
案例3.查询student 表中 grade 大于80分的学生姓名
Select name,grade from student where grade>80;
案例1.查询student 表中id的值为1,3,4的记录。
Select * from student where id in(1,3,4);
案例2.查询student 表中id的值不为1,3,4的记录。
Select * from student where id not in(1,3,4);
案例查询student 表中id值在2-5之间的学生姓名;
Select id,name from student where id between 2 and 5;
案例。查询student 表中gender为空值的记录。
Select * from student where gender is null;
案例2.查询student 表中gender不为空值的记录。
Select * from student where gender is not null;
Select gender from student;
语法
案例 查询student 表中有哪些性别 要求不重复;
Select distinct gender from student;
案例查询STUDENT 表中gender 和name字段,使用distinct 关键字作用与这两个字段
Select distinct gender,name from student;
案例查询STUDENT表中gender和name字段,使用distinct关键字作用与这两个字段
Selectdistinctgender,namefromstudent;
案例查找student表中name字段以S开头的学生id;
Selectid,namefromstudentwherenamelike“s%”;
案例查询student表中name字段以W开头,以g结尾的学生id;
Selectid,namefromstudentwherenamelike“w%g”;
案例3.查询student表中name字段值包含y的学生ID;
Selectid,namefromstudentwherenamelike“%y%”;
案例1查询student表中name字段以wu开始,以字符串ong结尾,并且两个字符串中间
只有一个字符的记录。
Selectid,namefromstudentwherenamelike“wu_ong”;
案例2.name字段值包含7个字符。并且以字符串ing结束的记录。
Selectid,namefromstudentwherenamelike“____ing”;
案例3查询student表中name字段值包含%的记录;
Insertintostudentvalues(null,’sun%er’,98,’n’);
Selectid,namefromstudentwherenamelike“%\%%”;
查询记录时如果需要查询%或者_则在字符前面加上转义字符\;
案例查询id字段值小于5,并且gender字段值为v的所有学生信息;
Select*fromstudentwhereid<5andgender=’v’;
案例2.查询id字段值在(1,2,3,4)中name字段值以字符串ng结束,并且grade字
段值小于80的记录;
Select*fromstudentwhereidin(1,2,3,4)andnamelike“%ng”andgrade<80;
案例1查询id小于3.或者gender为V的学生信息
Select*fromstudentwhreid<3orgender=’v’;
案例2查询name字段以字符H开后,或者gender字段为V,或者grade为100;
Select*fromstudentwherenamelike‘h%’orgender=’v’orgrade=100;
or和and一起使用的情况
查询gender字段值为V或者gender字段值为男,并且grade为100的记录
Select*fromstudentwheregender=’v’orgender=’n’andgrade=100;
注意,如果and和or一起使用是先执行and后执行or
高级查询
=====
案例,统计student表中有多少条记录
Select count(*) from student;
案例 求出grade 字段的总和。
Select sum(grade) from student;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
录
Select count(*) from student;
案例 求出grade 字段的总和。
Select sum(grade) from student;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-oqFhulyk-1713253439642)]
[外链图片转存中…(img-Ud5Yr6jk-1713253439642)]
[外链图片转存中…(img-E1lsKHqM-1713253439643)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
[外链图片转存中…(img-uta0TpAZ-1713253439643)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。