主键:唯一标识表中的每一行的这个列(或者这几个列)称为主键;主键用来标识特定的行。
设计SQL目的:提供一种从数据库中读写数据的简单有效的方法;
创建数据库,并规定特定格式UTF8
CREATE DATABASE IF NOT EXISTS `school`
CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
创建数据库表,并规定特定格式utf8;
CREATE TABLE `teacher`(
`tno` INT(4) NOT NULL COMMENT '教师编号',
`tname` VARCHAR(10) NOT NULL COMMENT '姓名',
`tid` CHAR(18) COMMENT '身份证号',
`gender` CHAR(2) COMMENT '性别',
`birthdate` DATE COMMENT '出生日期')ENGINE = INNODB DEFAULT CHARSET = utf8;
更改表的
字段名;
ALTER TABLE teacher CHANGE 字段名 新字段名 新字段名的 数据类型 ;
Select—检索数据:
1.SELECT tname FROM teacher LIMIT 5; —->只检索前五行数据;
2.SELECT tname,tno FROM teacher LIMIT 5 OFFSET 5; ———>返回从第五行起的五行数据(第一个检索的行是第0行,而不是第一行);
Select—排序检索数据:
1.利用order by子句取一个或多个列的名字,据此对输出进行排序;
SELECT tname,sal FROM teacher ORDER BY sal;
注意:在指定一条order by 子句时,应保证它是select语句中的最后一条子句,如果不是,则会出现错误。
利用order by 进行降序操作,需使用关键字desc;
Descending 降序;ascending 升序;
SELECT tname,sal ,tno FROM teacher ORDER BY tno DESC;
select—过滤数据
1.使用where子句;
—使用where子句过滤检索数据
SELECT tname,tno,sal FROM teacher WHERE sal >20000 AND sal < 30000;
2.使用between and;
#使用between and ,必须指定两个值,包括指定的开始值和结束值SELECT tname,sal,deptno FROM teacher WHERE sal BETWEEN 20000 AND 30000;值检查;
#非空值检查
SELECT tname ,sal, deptno, comm FROM teacher WHERE comm IS NOT NULL;
一、Select—-高级数据过滤
1.组合where子句
And 操作符
SELECT tname,sal,deptno,comm FROM teacher WHERE comm > 1000 AND deptno = 20;
- > Or 操作符 or操作符与and操作符相反,在满足第一个条件后就不再计算第二个条件了。但是与and相比,and在求值过程中优先级更高;
in操作符 in操作符用来指定条件范围,范围中的每个条件都可以进行匹配,in取一组由逗号分隔、括在圆括号里的合法值; Not 操作符
二、Select—-用通配符进行过滤
1.like通配符 %通配符
like操作符 百分号%通配符 some%表示任何字符出现任意次数;%some%表示匹配任何位置上包含文本some的值,不论它之前或之后出现什么字符;F%y表示以F开头以y结尾的所有值;
SELECT tname,sal FROM teacher WHERE tname LIKE '刘%';
2.[ ]通配符,适用于access 和SQL server
三、创建计算字段
1.
#concatenate 拼接;concat(name,'(',name2,')',若干 )
SELECT CONCAT(tname ,'(',job,')','[',tno,']')
FROM teacher
WHERE sal BETWEEN 10000 AND 30000;
这里写图片描述
#算术计算;
SELECT tname,job,sal,commnew,sal+commnew AS expanded_sum
FROM teacher
WHERE commnew IS NOT NULL;