SQL单表操作
创建表格
CREATE TABLE `student`(
`student_id` INT PRIMARY KEY, #设置int类型,primary key
`name` VARCHAR(20), #设置字符串的长度
`major` VARCHAR(20),
);
或者
CREATE TABLE `student`(
`student_id` INT,
`name` VARCHAR(20), #设置字符串的长度
`major` VARCHAR(20),
PRIMARY KEY(`student_id` )
);
DESCRIBE; #查看表结构
DROP TABLE `student`; # 删除表格
新增表格属性
alter table `表格名称` ADD gpa DEMCIMAL(3,2); #属性gpa 类型demcimal
删除表格属性
alter table `表格名称` DROP column gpa;
在创建表中插入数值,根据属性的数据
Insert into `表名称` values(1,’小白’,’历史’) ;
没有的信息填NULL
Insert into `表名称` values(2,’小黑’,NULL) ;
自己决定属性顺序
Insert into `表名称` (`name`,`major`,`student_id`) values(’小绿’,’英语’,3) ; #字符串用单引号或者双引号
Insert into `表名称` (`major`,`student_id`) values(’小绿’,’英语’) ; #属性缺失就默认NULL填充
列举信息表的全部 * 指全部
Select * from 表名称
;
- constraints 限制,约束
创建表格时候,可以给属性增加一些约束
CREATE TABLE `student`(
`student_id` INT auto_increment, #添加数据时自动补足
`name` VARCHAR(20) NOT NULL, #这个属性一定要有值
`major` VARCHAR(20) unique, #这个属性的值不能重复
PRIMARY KEY(`student_id` )
)
- 修改、删除资料
set sql_safe_updates = 0; 关掉(这行要大写)
要将某个表的’major’中的’英语’更新为’英语文学’
Update `表的名称`
Set `major`=’英语文学’ #设置字段
Where `major` = ‘英语’;
或者 where student_id
=3 判断哪些行的数据对应的major
要改成英语文学
多个条件用or连接
Update `表的名称`
Set `major`=’生物系’ #设置字段
Where `major` = ‘生物’ or `major`=’化学’; #将这两个学科的名字修改为生物系
Update `表的名称`
Set `name`=’小灰’,`major`=’物理’ #多个列名用逗号隔开
Where `student_id` =1;#将`student_id` =1的name修改为小灰,major修改为物理
如果不写where,是默认所有数据set 的属性字段都会被修改
- 删除资料:
判断条件可以and连接,或者是比较 号 <>:不等于 =:等于 <=小于等于
(注意优先级:NOT>AND>OR)
where level>1 and level<5 or level>7 and level<9; 先执行两个and 然后再执行or
Delete from `表的名称`
Where `student_id`=4;
Delete from `表的名称`
Where `name`=’小灰’ and `name`=’物理’;
Delete from `表的名称`
Where `score`<60;
- 取得资料
Select * from表的名称
; *:表示取得所有的属性
Selectname
,major
from表的名称
; 选择特定的属性
如果想要取的表是排序的
Select *
from `表名`
order by `score`; #默认是从小到大排序(ASC)
或者
order by `score` desc; #表示逆序排序,从大到小
或者
order by `score`,`student_id`; #先根据score属性从小到大排序,如果score属性一样,根据Student_id排序(ASC)
只要前3条数据
Select * from 表名
limit 3;
Select * from `表名`
order by `score` DESC
limit 3; 得到分数前3高的资料
如果是对某些符合字段内容进行回传
Select * from `表名`
Where `major` =’英语’ [and `student_id`=3 或者 or `score`<>20]
Limit 4
; #可以用and 或者or 来连接条件
Select * from 表名
Where major
in (‘历史’,’英语’,’生物’)
Limit 4
; 可以用and 或者or 来连接条件
Where major
in (‘历史’,’英语’,’生物’)
等价与 where major
=’英语’ or major
=’历史’ or major
=’生物’