九江市建设规划局网站,外贸流程图详细,易联网站建设,微网站建设是什么目录 日期类型的基本使用
timestamp时间戳
修改表 insert基本使用
insert注意事项
update基本使用
update注意事项
delete基本使用
delete注意事项
select基本使用
select练习1
select练习2
select练习3 日期类型的基本使用
timestamp时间戳
在5.7版本使用时间戳需…目录 日期类型的基本使用
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 goodsinsert注意事项
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, (chineseenglishmath) 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 english90
-- 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 math1000 WHERE name张飞SELECT * FROM student