表达式及运算符
表达式是指使用运算符将同类型的数据(如常量、变量、函数等)按一定的规则连接起来的、具有特定意义的语句。
MySQL中表达式包括
条件表达式
逻辑表达式
这两种表达式结果只能为TRUE或FALSE
比较运算符
逻辑运算符
查询入门
//我的表名是w_subject_1
select * from w_subject_1; -- 查询表所有内容
select studentid,studentname,age,Birthday from w_subject_1; -- 查询部分列名
select * from w_subject_1where age>20 and city='郑州' --查询年龄大于20 的记录
select DISTINCT classid from studentinfo -- 对查出来的结果进行去重
新增
-- insert 【into】 表名(字段名,字段名2....字段名n)values(值1,值2...值n)
insert into class(classid,classname,begintime,endtime,gradeid) values(10,'QY139','2011-01-01','2012-01-01',1);
-- 列名可以省略代表:所有列
insert into class values(11,'QY140','2011-01-01','2012-01-01',1);
-- 1.指定列名做新增——有些列名不写
-- a. 主键自增列没有写 直接触发自增
-- b. 普通列如果没有写,默认直接入值为null
-- c. 如果是默认值列,触发默认值的入值
-- d. 如果新增的数据不符合约束,不能。
-- 2. 如果不指定列名代表默认所有列
-- 3. into 可以省略
-- 多条新增
insert into class(classname,begintime,endtime,gradeid) values('QY151','2011-01-01','2012-01-01',1), ('QY152','2011-01-01','2012-01-01',1), ('QY153','2011-01-01','2012-01-01',1), ('QY154','2011-01-01','2012-01-01',1)
-- 2. 二种批量新增-自己也不知道有多少数据,这个数据来源是其他的结果集。
-- 一个查询的结果集作为新增输入。
-- A库,学生表:姓名 年级 班级 班主人......
-- B库:学生表:姓名 性别
-- 查询teacherid teahername放到学生表中。
insert into studentinfo(studentid,studentname)select teacherid,teachername from teacher;
-- 3.批量新增:备份:将结果集新建一张表存储。只有结果没有主外键。
create table class_backselect * from class;
修改
UPDATE table_name SET 列名=列值, 列名2=列值…......WHERE<表达式>
删除
DELETE FROM table_name [WHERE <表达式>]TRUNCATE TABLE table_name
-- 删除:delete from 表名 where 条件
delete from class where classid>15;-- 检索到的删除
delete from class_back;
-- delete:可以做条件删除 也可以做全表删除 但是自增占位还在。
-- 第二种删除:truncate table 表名
-- truncate:只能做全表删除,其实相当于将删除重建,占位不在了.
-- 全表删除truncate效率高
TRUNCATE table class_back;
-- 修改:指定行修改行中的指定列 set中修改的列 where 过滤的行,
-- 如果没有where 全部都修改
update class_back set classname='newname',GradeID=2;
update class_back set classname='nme111',GradeID=1where classid=1
级联——了解
在主从关系表中,对主表的主键信息进行修改、删除操作,则关联表中存储与其对应的外键信息也应该同步修改
ALTER TABLE StudentInfo
ADD CONSTRAINT fk_StudentInfo_Class_ClassId
FOREIGN KEY (ClassID) REFERENCES Class(ClassId)
ON DELETE CASCADE #打开级联删除
ON UPDATE CASCADE; #打开级联更新
内置函数
写个例子:
delete from w_ment where id = 4; -- 删除
update w_ment set name = 'gen' where id = 1; -- 更改
alter table w_ment add sex varchar(2) default null; -- 增加列
alter table w_ment change age age01 int(20); -- 更改列
alter table w_ment drop sex; -- 删除行
alter table w_ment add constraint weiyi UNIQUE(name); -- 添加约束
show index from w_ment; -- 显示约束
alter table w_ment drop index weiyi;