电子商务网站推广实训报告学it什么培训机构好
目录
日期类型的基本使用
timestamp时间戳
修改表
insert基本使用
insert注意事项
update基本使用
update注意事项
delete基本使用
delete注意事项
select基本使用
select练习1
select练习2
select练习3
日期类型的基本使用
timestamp时间戳
在5.7版本使用时间戳需要进行配置,配置后才可以使用,后期即使不对该字段进行更新,对其他字段进行更新也会更新时间
TimeStamp在Insert和update时,自动更新
代码演示:
#演示时间相关的类型
#创建一张表, date , datetime , timestamp
CREATE TABLE t14 (birthday DATE , -- 生日job_time DATETIME, -- 记录年月日 时分秒login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); -- 登录时间, 如果希望login_time列自动更新, 需要配置SELECT * FROM t14;
INSERT INTO t14(birthday, job_time) VALUES('2022-11-11','2022-11-11 10:10:10');
-- 如果我们更新 t14表的某条记录,login_time列会自动的以当前时间进行更新
修改表
修改字段数据类型
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];
删除字段
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
修改字段名
ALTER TABLE <表名> DROP <字段名>;
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
代码演示:
-- 员工表emp的上增加一个image列,varchar类型(要求在resume后面)
#这句话表示,在emp这个表中增加一列 列名为image 类型是varchar 不允许为空值,默认给一个空串 增加在resume后
ALTER TABLE emp ADD image VARCHAR(32) NOT NULL DEFAULT ' ' AFTER RESUME;
DESC emp
-- 修改iob列,使其长度为60。
ALTER TABLE emp MODIFY job VARCHAR(60) NOT NULL DEFAULT ' ';
-- 删除sex列。
ALTER TABLE emp DROP sex ;
-- 表名改为employee。
RENAME TABLE emp TO employee
DESC employee
-- 修改表的字符集为utf8
ALTER TABLE employee CHARACTER SET utf8
-- 列名name修改为user name
#修改employee这张表的name列名修改成uesr_name 不允许为空 默认值为空
ALTER TABLE employee CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ' ';
insert基本使用
代码演示:
#练习insert 语句
-- 创建一张商品表goods (id int , goods_name varchar(10), price double );
-- 添加2条记录
CREATE TABLE `goods` (id INT , goods_name VARCHAR(10) , price DOUBLE);
-- 添加数据
INSERT INTO `goods`(id , goods_name , price)VALUES(1,'华为手机',1000);INSERT INTO `goods`(id , goods_name , price)VALUES(2,'苹果手机',2000);SELECT * FROM goods
insert注意事项
1.插入的数据应与字段的数据类型相同比如 把abc'添加到 int 类型会错误
2.数据的长度应在列的规定范围内,例如: 不能将一个长度为80的字符串加入到长度为40的列中
3.在values中列出的数据位置必须与被加入的列的排列位置相对应
4.字符和日期型数据应包含在单引号中。
5.列可以插入空值[前提是该字段允许为空],insert into table value(null)
6.insert into tab name(列名..) values ()()()形式添加多条记录
7.如果是给表中的所有字段添加数据,可以不写前面的字段名称
8.默认值的使用,当不给某个字段值时,如果有默认值就会添加],否则报错
代码演示:
#说明insert 语句的细节
-- 1.插入的数据应与字段的数据类型相同。
-- 比如 把 'abc' 添加到 int 类型会错误
INSERT INTO `goods` (id, goods_name, price) VALUES('韩顺平', '小米手机', 2000);
-- 2. 数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
INSERT INTO `goods` (id, goods_name, price) VALUES(40, 'vovo手机vovo手机vovo手机vovo手机vovo手机', 3000);
-- 3. 在values中列出的数据位置必须与被加入的列的排列位置相对应。
INSERT INTO `goods` (id, goods_name, price) -- 不对VALUES('vovo手机',40, 2000);
-- 4. 字符和日期型数据应包含在单引号中。
INSERT INTO `goods` (id, goods_name, price) VALUES(40, vovo手机, 3000); -- 错误的 vovo手机 应该 'vovo手机'
-- 5. 列可以插入空值[前提是该字段允许为空],insert into table value(null)
INSERT INTO `goods` (id, goods_name, price) VALUES(40, 'vovo手机', NULL);
-- 6. insert into tab_name (列名..) values (),(),() 形式添加多条记录
INSERT INTO `goods` (id, goods_name, price) VALUES(50, '三星手机', 2300),(60, '海尔手机', 1800);
-- 7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称
INSERT INTO `goods` VALUES(70, 'IBM手机', 5000);
-- 8. 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错-- 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给null-- 如果我们希望指定某个列的默认值,可以在创建表时指定
INSERT INTO `goods` (id, goods_name) VALUES(80, '格力手机');SELECT * FROM goods;INSERT INTO `goods2` (id, goods_name) VALUES(10, '菠萝手机');
SELECT * FROM goods2;
update基本使用
代码演示:
-- 演示update语句
-- 要求: 在上面创建的employee表中修改表中的纪录
-- 1. 将所有员工薪水修改为5000元。[如果没有带where 条件,会修改所有的记录,因此要小心]
UPDATE employee SET salary = 5000
-- 2. 将姓名为 小妖怪 的员工薪水修改为3000元。
UPDATE employee SET salary = 3000 WHERE user_name = '小妖怪'
-- 3. 将 老妖怪 的薪水在原有基础上增加1000元
INSERT INTO employee VALUES(200, '老妖怪', '1990-11-11', '2000-11-11 10:10:10', '按摩', 5000, '给大王按摩', 'd:\\a.jpg');UPDATE employee SET salary = salary + 1000 WHERE user_name = '老妖怪' -- 可以修改多个列的值
UPDATE employee SET salary = salary + 1000 , job = '军师'WHERE user_name = '老妖怪'
SELECT * FROM employee;
update注意事项
1.UPDATE语法可以用新值更新原有表行中的各列。
2.SET子句指示要修改哪些列和要给予哪些值。
3.WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行(记录),因此提醒一定小心
4.如果需要修改多个字段,可以通过 set 字段1=值1,字段2=值2....
delete基本使用
代码演示:
-- delete 语句演示-- 删除表中名称为’老妖怪’的记录。
DELETE FROM employee WHERE user_name = '老妖怪';
-- 删除表中所有记录,一定要小心
DELETE FROM employee;-- Delete语句不能删除某一列的值(可使用update 设为 null 或者 '')
UPDATE employee SET job = '' WHERE user_name = '老妖怪';SELECT * FROM employee-- 要删除这个表
DROP TABLE employee;
delete注意事项
1.如果不使用where子句,将删除表中所有数据。
2.Delete语句不能删除某一列的值 (可使用update 设为 null 或者)
3.使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。drop table 表名;
select基本使用
注意事项(创建测试表学生表
Select 指定查询哪些列的数据
column指定列名。*号代表查询所有列。From指定查询哪张表DISTINCT可选,指显示结果时,是否去掉重复数据
select练习1
代码演示:
****创建新的表(student)********
CREATE TABLE student(id INT NOT NULL DEFAULT 1,NAME VARCHAR(20) NOT NULL DEFAULT '',chinese FLOAT NOT NULL DEFAULT 0.0,english FLOAT NOT NULL DEFAULT 0.0,math FLOAT NOT NULL DEFAULT 0.0
);INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'韩顺平',89,78,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,98,56);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',88,98,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',82,84,67);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳锋',55,85,45);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,30);SELECT * FROM student-- 查询表中所有学生的信息。
SELECT * FROM student;
-- 查询表中所有学生的姓名和对应的英语成绩。
SELECT `name`,english FROM student;
-- 过滤表中重复数据 distinct 。
SELECT DISTINCT english FROM student;
-- 要查询的记录,每个字段都相同,才会去重
SELECT DISTINCT `name`, english FROM student;
select练习2
代码演示:
-- select 语句的使用-- 统计每个学生的总分
SELECT `name`, (chinese+english+math) FROM student;
-- 在所有学生总分加10分的情况
SELECT `name`, (chinese + english + math + 10) FROM student;
-- 使用别名表示学生分数。
SELECT `name` AS '名字', (chinese + english + math + 10) AS total_score FROM student;#使用AS可以设置别名 比如`name` AS '名字'这句话执行之后,查询出来的表,后面name就会以名字显示
select练习3
代码演示:
-- 1,查询姓名为赵云的学生成绩
SELECT * FROM student WHERE `name`='赵云'
-- 2查询英语成绩大于90分的同学
SELECT * FROM student WHERE english>90
-- 3查询总分大于200分的所有同学
SELECT * FROM student WHERE (chinese + english + math) > 200-- 使用where子句,课堂练习[5min]:
-- 查询math大于60 并且(and) id大于4的学生成绩
SELECT * FROM student WHERE math > 60 AND id > 4
-- 查询英语成绩大于语文成绩的同学
SELECT * FROM student WHERE english > chinese
-- 查询总分大于200分 并且 数学成绩小于语文成绩,的姓赵的学生.
#赵% 表示 名字以赵开头的就可以
SELECT * FROM student WHERE (chinese + english + math) > 200 AND math < chinese AND `name` LIKE '赵%'-- 1,查询英语分数在 80 - 90之间的同学
SELECT * FROM student WHERE english BETWEEN 80 AND 90
-- 2查询数学分数为89,90,91的同学
SELECT * FROM student WHERE math IN(89,90,91)
-- 3查询所有姓李的学生成绩。
SELECT * FROM student WHERE `name` LIKE '李%'
-- 4.查询数学分>80,语文分>80的同学。
SELECT * FROM student WHERE math > 80 AND chinese > 80-- 1。查询语文分数在 70- 80之间的同学
SELECT * FROM student WHERE chinese BETWEEN 70 AND 80
-- 2.查询总分为189,190,191的同学。
SELECT * FROM student WHERE (chinese + english +math) IN(189,190,191)
-- 3.查询所有姓李 或者 姓宋 的学生成绩
SELECT * FROM student WHERE `name` LIKE '李%' OR `name` LIKE '宋%'
-- 4.查询数学比语文多30分的同学
SELECT * FROM student WHERE math - english >30UPDATE student SET math=1000 WHERE `name`='张飞'SELECT * FROM student