MySQL语法
数据库表:
一个数据库通常包含一个或者多个表。每个表有一个名字标识。
SQL语句:
注释:一定记住,SQL对大小写不敏感!
分号在数据库系统中分隔每条SQL语句的标准方法,这样就可以在对服务器的相同请求中执行一条
以上的语句。
SQL select语句:
select语句用于表中选取数据。结果被存储在一个结果表中(称为结果集)。
select语法:
select:列名称 from:表名称;
select*from 表名称
注释:SQL语句对大小写不敏感。SELECT 等效于 select;
SQL语句实例:
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
SQL DML 和 DDL:
可以把SQL分为两部分:数据操作语言(DML)和数据定义语言(DDL)。
SQL是用于执行查询的语法。但是SQL语言也包含用于更新、插入、删除的语法。
查询和更新指令构成了SQL的DML部分:
select:从数据库表现中获取数据;
update:更新数据库表中的数据;
delete:从数据库表中删除数据;
insert into:向数据库表中插入数据;
SQL的数据定义语言(DDL)部分使我们有能力创建或者删除表格。我们也可以定义索引键,
规定表之间的链接,一级施加表间的约束。
SQL中最重要的DDL语句:
create database:创建数据库;
alter database:修改数据库;
create table:创建新表;
alter table:变更(改变)数据库;
drop table:删除表;
create index:创建索引;
drop index:删除索引;
——————————————————————————————————————————————————————————————————————————————————————————————————————
SQL select distinct语句:
在表中,有可能会包含重复值。而distinct就是用来消除结果集中重复的信息,只显示一行;
语法:
select distinct :列名 from :表名;
例子:
——————————————————————————————————————————————————————————————————————————————————————————————————————
SQL where子句用于规定选择的标准:
where子句:
如需有条件地从表中选取数据,可将where子句添加到select语句。
语法:
select 列名 from 表名 where 条件 :
is null is not null 语句:
可用于where子句中的操作符:
=(等于);<>(不等于);>(大于);<(小于);>=(大于等于);<=(小于等于);any(任何一个);all(所有的);some(任何一个);
between:在某个范围内;
like:搜索某种模式;
not like %表示0或者多个字符;_ 表示一个字符
语法:
AND和OR运算符:
and和or可以再where子语句中把两个或者多个条件结合起来。
如果第一个条件和第二个条件都成立,则and运算显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则or运算符显示一条记录。
我们也可以把and和or结合起来(使用圆括号来组成复杂表达):
语法:
select * from 表名 where (列名 = 值 or 列名 = 值)and 列名 = 值;
语法:
注释:在某些版本的SQL中,操作符<>可以写成!=;
引号的使用:
SQL使用单引号来环绕文本值。如果是数值,请不要用引号;
文本值:
这是正确的: SELECT * FROM Persons WHERE数值:FirstName='Bush'
这是错误的: SELECT * FROM Persons WHEREFirstName=Bush
这是正确的: SELECT * FROM Persons WHEREYear>1965
这是错误的: SELECT * FROM Persons WHEREYear>'1965'
——————————————————————————————————————————————————————————————————————————————————————————————————————
SQL update语句:
update语句:
update语句用于修改表中德尔数据;
语法:
update 表名称 set 列名称 = 新值 where 列名称 = 值;
——————————————————————————————————————————————————————————————————————————————————————————————————————
SQL delete语句:
delete语句用于删除表中的行。
语法:
delete from 表名称 where 列名称 = 值;
删除某行:
fred Wilson 会被删除:
DELETE FROM Person WHERE LastName = 'Wilson'
——————————————————————————————————————————————————————————————————————————————————————————————————————
asc 升序 desc 降序;
order by 排序字段可以用查询字段的别名,先查后排;
where 条件中不能用查询字段的别名
常用函数:
可以再select后面,也可以在where后面
1.lower(字段或者字符串):把字符串转换成小写
2.upper(字段或者字符串):把字段转换成大写
3.concat(字段1或字符串1):链接两个字段(每次只能连接两个字段)||可以连接很多个
4.length(字段或者字符串):求字段的长度
5.substr(字段或者字符串,start,length):把字段转换成大写 start 从1开始 截取长度
6.round(number,n):n指定四舍五入到小数点后第几位,可以用负数指定小数点前几位
6.round(number,n):n指定四舍五入到小数点后第几位,可以用负数指定小数点前几位
7.to_number(字段或者字符串):那数字字符转换成数字
8.to_char(字段或者字符串,格式控制字符串):按指定的格式,格式化字符串
9.to_date:把字符串转换成数据库内部 日期
——————————————————————————————————————————————————————————————————————————————————————————————————————
分组函数:
计算的结果是一个查询的,不是某一行的
1.avg(字段):计算出查询结果中该字段的平均数
2.max(字段):计算出查询结果中该字段的最大值
3.min(字段):计算出查询结果中该字段的最小值
4.sum(字段):计算出查询字段中该字段的和
5.count(字段):计算出查询结果中该字段的个数
注释:函数不能写在where后面
SELECT * FROM `emp`;
SELECT job,LOWER(job) FROM emp;
SELECT empno||ename FROM emp;
SELECT LENGTH(job) FROM emp;
SELECT ename,substr(ename,1,3) from emp;
SELECT ROUND(3.1415926,6) from dual;/*ROUND 函数用于把数值字段舍入为指定的小数位数。*/
SELECT * FROM `emp` WHERE sal>(SELECT AVG(sal) FROM emp);/*AVG 函数返回数值列的平均值。NULL 值不包括在计算中*/
SELECT SUM(sal) FROM emp;/*SUM 函数返回数值列的总数(总额)。*/
SELECT MIN(sal) FROM emp;/*MIN()函数返回一列中的最小值 NULL值不包括在内*/
SELECT COUNT(sal) FROM emp;/*COUNT() 函数返回匹配指定条件的行数。*/
SELECT MAX(sal) FROM emp;/*MAX 函数返回一列中的最大值。NULL 值不包括在计算中。*/
SELECT job,LOWER(job) FROM emp;
SELECT empno||ename FROM emp;
SELECT LENGTH(job) FROM emp;
SELECT ename,substr(ename,1,3) from emp;
SELECT ROUND(3.1415926,6) from dual;/*ROUND 函数用于把数值字段舍入为指定的小数位数。*/
SELECT * FROM `emp` WHERE sal>(SELECT AVG(sal) FROM emp);/*AVG 函数返回数值列的平均值。NULL 值不包括在计算中*/
SELECT SUM(sal) FROM emp;/*SUM 函数返回数值列的总数(总额)。*/
SELECT MIN(sal) FROM emp;/*MIN()函数返回一列中的最小值 NULL值不包括在内*/
SELECT COUNT(sal) FROM emp;/*COUNT() 函数返回匹配指定条件的行数。*/
SELECT MAX(sal) FROM emp;/*MAX 函数返回一列中的最大值。NULL 值不包括在计算中。*/