Mysql基本语句

                                   SQL零基础语句                                                                    
SQL select语句:
select语句用于表中选取数据。结果被存储在一个结果表中(称为结果集)。
select语法:
select:列名称 from:表名称;
select*from   表名称
注释:SQL语句对大小写不敏感。SELECT 等效于 select;
SELECT*FROM schools;/*查询表*/

给查询出来的字段取别名:
SELECT userName as "猪猪",password as "密码" FROM user WHERE userId=1;

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL DML 和 DDL:
可以把SQL分为两部分:数据操作语言(DML)和数据定义语言(DDL)。
SQL是用于执行查询的语法。但是SQL语言也包含用于更新、插入、删除的语法。
查询和更新指令构成了SQL的DML部分:
select:从数据库表现中获取数据;
SELECT*FROM schools;/*查询表*/
update:更新数据库表中的数据;
UPDATE schools SET Name="波波" WHERE Name ="博博"; /*改变表里的行*/ 
delete:从数据库表中删除数据;
DELETE FROM schools;/*删除表*/
DELETE FROM schools WHERE id = 1;/*删除表内容*/ 
insert into:向数据库表中插入数据;
INSERT INTO user VALUES(4,"小黑",1,"dddd",1);/*增加表内容*/
SQL的数据定义语言(DDL)部分使我们有能力创建或者删除表格。我们也可以定义索引键,
规定表之间的链接,一级施加表间的约束。
SQL中最重要的DDL语句:
create database:创建数据库;
alter database:修改数据库;
create table:创建新表;
CREATE TABLE schools(/*创建表*/
     Id int not null,
     Name varchar(30)
);
alter table:变更(改变)数据库;
drop table:删除表;
DROP TABLE schools;/*删除表*/
create index:创建索引;
drop index:删除索引;

————————————————————————————————————————————————
SQL select distinct语句:
在表中,有可能会包含重复值。而distinct就是用来消除结果集中重复的信息,只显示一行;
语法:
select distinct :列名 from :表名;
例子:
SELECT DISTINCT * FROM user;/*查询表  相同的不显示*/

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL where子句用于规定选择的标准:
where子句:
如需有条件地从表中选取数据,可将where子句添加到select语句。
语法:
select 列名 from 表名 where 条件 :
is null      is not null  语句:
SELECT*FROM user WHERE password IS NOT NULL;/*查询非空的*/
SELECT*FROM user WHERE userName IS  NULL;/*查询空的*/


可用于where子句中的操作符:
=(等于);<>(不等于);>(大于);<(小于);>=(大于等于);<=(小于等于);any(任何一个);all(所有的);some(任何一个);
between:在某个范围内;
like:搜索某种模式;
not like %表示0或者多个字符;_ 表示一个字符
语法:
SELECT*FROM user WHERE sex LIKE "%1";/*%的意思是0到n都可以*/
SELECT*FROM user WHERE sex LIKE "_1";/*_的意思是2个字符最后是1*/



AND和OR运算符:
and和or可以再where子语句中把两个或者多个条件结合起来。
如果第一个条件和第二个条件都成立,则and运算显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则or运算符显示一条记录。
我们也可以把and和or结合起来(使用圆括号来组成复杂表达):
语法:
select * from 表名 where (列名 = 值 or 列名 = 值)and 列名 = 值;
语法:
SELECT*FROM user WHERE userName LIKE '小%' AND password = "aaaa";/*and是并且*/
SELECT*FROM user WHERE userName LIKE '小%' OR password = "aaaa"; /*or是或者*/


-------------------------------------------------------------------------------------------------------------------

asc  升序   desc 降序;
order by 排序字段可以用查询字段的别名,先查后排;
where 条件中不能用查询字段的别名
SELECT*FROM emp ORDER BY empno ASC;/*升序*/
SELECT*FROM emp ORDER BY empno DESC;/*降序*/


常用函数:
可以再select后面,也可以在where后面
1.lower(字段或者字符串):把字符串转换成小写
SELECT ename,lower(ename) xin FROM emp;/*把大写换成小写*/
2.upper(字段或者字符串):把字段转换成大写
SELECT ename,upper(ename) xin FROM emp;/*把大写换成小写*/
3.concat(字段1或字符串1):链接两个字段(每次只能连接两个字段)||可以连接很多个
SELECT CONCAT(empno,ename)xin FROM emp;
4.length(字段或者字符串):求字段的长度
SELECT LENGTH(empno) FROM emp;/*显示数组长度*/
5.substr(字段或者字符串,start,length):把字段转换成大写 start 从1开始  截取长度
SELECT ename,substr(ename,2,1) FROM emp;/*显示第几位*/
6.round(number,n):n指定四舍五入到小数点后第几位,可以用负数指定小数点前几位
SELECT ROUND(3.1415,2) FROM dual;/*显示小数点后几位*/
7.to_number(字段或者字符串):那数字字符转换成数字
8.to_char(字段或者字符串,格式控制字符串):按指定的格式,格式化字符串
9.to_date:把字符串转换成数据库内部 日期

-------------------------------------------------------------------------------------------------------------------
分组函数:
计算的结果是一个查询的,不是某一行的
1.avg(字段):计算出查询结果中该字段的平均数
SELECT avg(sal) FROM emp;/*平均数*/
2.max(字段):计算出查询结果中该字段的最大值
SELECT max(sal) FROM emp;/*最大数*/
3.min(字段):计算出查询结果中该字段的最小值
SELECT min(sal) FROM emp;/*最小数*/
4.sum(字段):计算出查询字段中该字段的和
SELECT sum(sal) FROM emp;/*和*/
5.count(字段):计算出查询结果中该字段的个数
SELECT count(sal) FROM emp;/*个数*/
6.拓展:
SELECT * FROM emp WHERE sal>(SELECT avg(sal) FROM emp);/*大于平均值的取出来*/

注释:函数不能写在where后面

-------------------------------------------------------------------------------------------------------------------

SQL GROUP BY 语句:
GROUP BY语句用于结合合计函数,根据一个或多个列对结果集进行分组
SQL INNER JOIN 语句:
inner join :对两个表进行连接!注释:只有两个表中有相同的属性时才能进行连接!
链表语句的其他两种方法:
LEFT JOIN (左连接)查询出包括左表中所有记录和右连接中连接字段相等的记录 
right join (右连接)查询出包括右表中的所有记录和左表中联结字段相等的记录
SQL having 的用法:
having 过滤 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。*/
having与where的区别:
 
having 后面可以跟函数 where后面不能跟函数
分页
MySQL:利用关键字:limit
MySQLserver:利用关键字top
Oracle:利用关键字rownum
格式:select*from(select rownum r,a.* from(?)a)where r between?and?
第一个问号:指的是要查询的SQL语句(包含排序)
第二个问号:指的是分页查询的起始行号;
第三个问号:指的是分页查询的结束行号
 ;

select max(sal) from emp  
  
select min(sal) from emp  
  
select sum(sal) from emp  
  
select count(sal) from emp  
  
  
select empno as "姓名" from emp where group by empno "姓名"  
  
/*分组函数 group by  后面字段相同的一段*/  
select deptno ,avg(sal) from emp group by deptno  
  
/*GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组*/  
select deptno,avg(sal)from emp group by deptno  
  
select job,sum(sal)from emp GROUP BY job  
/*我们一个月前来到优越国际,进入一个Java班级名称叫王萌的项目部!*/  
  
/*链表语句  两种:inner join(等值连接) 查询出两个表中联结字段相等的行 */  
/*连表查询不能用点星,这样会把两个表中所有的数据都连在一起,会多出一组一样的数据*/  
select * from emp e inner join dept d on e.deptno = d.deptno  
  
/**/  
  
select e.*,d.* from emp e,dept d where e.deptno = d.deptno  
/*链表语句查询 想要查询什么就给出你想要查询的列名*/  
select e.empno,e.ename,e.sal,e.mgr,d.loc from emp e   
inner join dept d on e.deptno = d.deptno  
/*表连接是:通过两个表中相同的元素进行连接 emp.deptno = dept.deptno;如果两个表中没有相同的元素是,两个表就不能进行连接!*/  
SELECT emp.ename,emp.job,emp.mgr,dept.dname,dept.loc from emp   
inner join dept on emp.deptno = dept.deptno  
/*left join(左连接) 连表查询语句  查询出包括左表中所有记录和右连接中连接字段相等的记录 */  
SELECT emp.ename,emp.job,emp.mgr,dept.dname,dept.loc from emp   
left join dept on emp.deptno = dept.deptno  
/*right join (右连接) 连表查询语句  查询出包括右表中的所有记录和左表中联结字段相等的记录*/  
SELECT emp.ename,emp.job,emp.mgr,dept.dname,dept.loc from emp   
right join dept on emp.deptno = dept.deptno  
/**/  
select deptno 部门编号,sum(sal) 总工资,count(empno) 部门人数 from emp   
GROUP BY deptno  
  
SELECT COUNT(empno) 部门人数 from emp/**/  
  
SELECT 新.*,d.dname,d.loc from (select deptno ,sum(sal) ,count(empno)  from emp   
GROUP BY deptno) 新 INNER JOIN dept d on 新.deptno = d.deptno  
  
SELECT emp.empno,emp.ename,emp.job,dept.dname,dept.loc FROM emp   
        INNER JOIN dept on emp.deptno=dept.deptno  
  
  
SELECT xin.deptno,dept.dname FROM (  
SELECT deptno,ename,job FROM emp ) xin INNER JOIN dept   
ON xin.deptno = dept.deptno  
/**/  
SELECT xin.dname,emp.deptno,SUM(emp.sal) from emp,dept  
WHERE emp.deptno=dept.deptno GROUP BY dept.deptno   
INNER JOIN dept on emp.deptno = dept.deptno   
/**/  
  
  
/* having 的用法*/  
select * from emp;  
  
SELECT * FROM dept;  
  
SELECT deptno,ename,SUM(sal),MAX(sal),MIN(sal),COUNT(sal),AVG(sal) avg_sal from emp   
group by deptno having avg_sal>1800 and avg_sal<3000  
  
  
SELECT deptno,ename,SUM(sal),MAX(sal),MIN(sal),COUNT(sal),AVG(sal) avg_sal from emp   
group by deptno having avg_sal>1800 or avg_sal<3000  
  
/*having 后跟between智能用and来表示并且   加上or会报错*/  
SELECT deptno,ename,SUM(sal),MAX(sal),MIN(sal),COUNT(sal),AVG(sal) avg_sal from emp   
group by deptno having avg_sal BETWEEN 1800 and 3000  
  
/**/  
  
/*having 过滤 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。*/  
/*having与where的区别: having 后面可以跟函数 where后面不能跟函数*/  
SELECT ename,sum(sal) from emp   
GROUP BY ename having SUM(sal)<2000  
  
/*分页  
            MySQL:利用关键字:limit  
            MySQLserver:利用关键字top  
            Oracle:利用关键字rownum  
            格式:select*from(select rownum r,a.* from(?)a)where r between?and?  
                        第一个问号:指的是要查询的SQL语句(包含排序)  
                        第二个问号:指的是分页查询的起始行号;  
                        第三个问号:指的是分页查询的结束行号  
      
*/  
  
SELECT * FROM emp ORDER BY  sal desc LIMIT 4,10   



-------------------------------------------------------------------------------------------------------------------

SQL IN 语法:

我们查询empno为7900,7901,7902的三条信息
SELECT * FROM emp WHERE empno IN(7900,7901,7902);

SQL NOW() 语法:

SELECT ename, NOW() FROM emp;

HTML:
<mate>:
<meta http-equiv="Refresh" content="n;url=http://yourlink"><


<from> 表单域:
文本框:<input type= "text" id = "wbk" name="wbk" value="文本框" readonly disabled/>
密码框:<input type= "passwoed" id = "mmk" name="mmk" value="mm" readonly disabled/>
单选按钮:<input type= "radio" id = "radiol" name="hobby" value="nan" checkbox/>
复选框:<input type= "CheckBox" id = "radiol" name="hobby" value="nan" />
隐藏域:<input type= "hidden" id = "radiol" name="hobby" value="nan"/>
文本域:《textarea》 row
图片域:<input type= "image" id = "radiol" name="hobby"  src = “图片名”title = “”取名“”alt =“”找不到该图片“” width=“”30px“” height=“”90px“”/> 
文件上传域:有file的表单只能用post传送方式
<frameset> 标签的属性:

cols一列方式分割;
rows以行方式分割;

css:

id 选择器:

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

id 选择器以 "#" 来定义。

类选择器:

选择器以 "." 来定义。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值