目录
前言
SQL语言
SQL语言编写和运行
一、数据表操作
1.1 创建表
1.2 删除表
1️⃣方法一:drop table students
2️⃣ 方法二:drop table if exists students
方法二的使用:
二、数据操作 -- 增删改查
2.1 简单查询(后面会详细介绍,此处略写)
2.2 添加数据
2.2.1 添加一行数据
格式一;所有字段设置值,值的顺序与表中字段的顺序对应
格式二:部分字段设置值。值的顺序与给出的字段顺序对盛,给指定字段设置数据
2.3 修改
2.4 删除
2.4.1 删除(不轻易使用)
2.4.2 逻辑删除
鼠标左键点击某个数锯库下面的查询按钮。然后点击新建查询
需要保证程序员给的代码,能看懂
create table 表名(
字段名 类型 约束,字段名 类型 约束,
...
)
例1:创建学生表,字段要求如下;
姓名(长度为10)
-- create table 表名(
-- 字段名 类型 约束,
--
-- 字段名 类型 约束,
--
-- ...
--
-- )
-- 注释: ctrl + /
-- 取消注释屏蔽: ctrl + shift + /
-- 例:创建学生表,字段要求如下;
-- 姓名(长度为10)
create table students(
name varchar(10)
)
例2:创建学生表,字段要求如下:
姓名(长度为10),年龄
-- 例:创建学生表,字段要求如下:
-- 姓名(长度为10),年龄
--
create table students2(
name varchar(10),
age int
)
例子3 :无符号
-- 例:创建学生表,字段要求如下:
-- 姓名(长度为10),年龄
--
create table students2(
name varchar(10),
age int unsigned
)
例4: 创建学生表,字段要求如下:
姓名(长度为10),年龄,身高(保留小数点2位),带主键
-- 例3: 创建学生表,字段要求如下:
--
-- 姓名(长度为10),年龄,身高(保留小数点2位),带主键
create table students3(
id int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
heighe decimal(5, 2)
)
格式一: drop table 表名
格式二:drop table if exists 表名
例:删除学生表
drop table students
或
drop table if exists students
第一步:检查未删除的情况
第二步:输入删除命令,检查数据表是否删除
第三步:若数据表被删除,则使用drop table students会被警告
第一步:方法二来进行数据表删除
注意: 创建表之前,先删除再次创建,万一表存在。
第一步:表3原本存在,就算创建会覆盖原来,且用方法二存在的数据表也不会报错
drop table if exists students3;
create table students3(
id int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
heighe decimal(5, 2)
)
注意: 多条SQL语句,每句结束需要添加分号,最后一句不要
需要注意的小细节
注意代码未运行前“原先表3有数据”,
但进行更新之后数据消失了,说明重新新建一个新的表3
select * from 表名
例子:查询所布学生致据
select * from students
插入一行数据
insert into students3 values(0, 'JOM', 12, 3.2)
insert into students3 values(default, 'JANE', 12, 3.2)
insert into students3 values(null, 'Tom', 12, 6.2)
给部分字段设置数据insert into students3(name) values('TLL')
insert into students3(name, age) values('AMY',30)
执行多条语句插入多条数据
insert into students3 values(null, 'Tom1', 12, 6.2);
insert into students3 values(null, 'Tom2', 12, 6.2)
执行一条语句插入多条数据
insert into students3 values(null, 'RR', 12, 6.2),(null, 'AA', 12, 6.2)
insert into 表名 values(..)
例:插入一个学生,设置所有字段的信息
注意:varchar型和日期均用单引号,来实现。
id主键:则可以写default,0, null
insert into students3 values(0, 'JOM', 12, 3.2)
insert into students3 values(default, 'JANE', 12, 3.2)
insert into students3 values(null, 'JANE', 12, 6.2)
insert into 表名(字段1,-.-) values(值1,.,)
例:插入一个学生。只设置姓名
insert into students3(name) values('TLL')
例:插入一个学生。只设置姓名、年龄
-- insert into students3(name) values('TLL')
insert into students3(name, age) values('AMY',30)
加多条的,多个SQL语句,加分号
insert into students3 values(null, 'Tom1', 12, 6.2);
insert into students3 values(null, 'Tom2', 12, 6.2)
往表中某一字段插入数据,一条语句添加多条记录
insert into students3(name) values('TLL1'),('TLL2'),('TLL3'),('TLL4')
问: 若没有指定名称,没有指定字段怎么一条语句创建多条数据?
ANS:
insert into students3 values(null, 'RR', 12, 6.2),(null, 'AA', 12, 6.2)
注意:
一条语句比多条少些一些代码,多条语句会让后端执行多次,一条语句的效率高些。
格式: update 表名 set 列1=值1, 列2 = 值2.. .. where 条件
例:修改id为5的学生数据,姓名改为狄仁杰,年龄改为20
update students set name="狄仁杰", age=20 where id=5
-- 格式: update 表名 set 列1=值1, 列2 = 值2.. .. where 条件
update students3 set age = 20
可写id = 5 或 name = ‘TLL’
update students3 set age = 60 where id = 5
update students3 set name = 'APPLE', age = 30, heighe = 5.99 where id = 6
格式:delete from 表名 where条件
例:删除id为6的学生数据
delete from students where id=6
delete from students3
-- 格式:delete from 表名 where条件
delete from students3 where id = 2
注意: id越变越大,用过的将不会重新使用
逻辑删除︰对于重要的数据,不能轻易执行delete语句进行删除,一旦删除,数据无法恢复,这时可以进行逻辑删除。
update students3 set isdelete = 1 where id = 1
select * from students3 where isdelete = 0
-- isdelete = 0 代表数据未被删除
update students3 set isdelete = 0
update students3 set isdelete = 1 where id = 1
select * from students3 where isdelete = 0
例:
1、给学生表添加字段(isdelete)。默认值为0,如果表中已经有数据,需要把所有数据的isdelete字段更新为 0
update students set isdelete = 0
2、删除id为1的学生
update students set isdelete=1 where id=1
3、查询来删除的数据
select * from students where isdelete
注意:
像qq、微信、京东等提供永久注销的功能,并不是真正将其删除,而是将其禁用了,并没有真正的将其删除,还可以后悔。
看见isdelete / is del 的字段代表逻辑删除