mysql基本语句

来源:互联网 发布:网络电视直播在线看 编辑:程序博客网 时间:2024/06/15 04:15
1:Database 学习
 1:数据库是一种软件可以动态的对数据库软件创建数据库,进行修改和查询
 2:常用的数据库:mysql,oracle,sqlserver,DB2数据库
 3:怎么启动:我的电脑-右键-管理-服务和应用程序-服务-找到对应数据库的服务
 4:mysql的几个命令:
1:show databases:显示所有的数据库
2:use databasename:使用某个数据库
3:show tables:显示某个数据库中的表
 5:数据库中的表:相当于java语言中的javabean储存具有相同属性的一类事物(百度javabean);
 6:SQL(结构化查询语言)全称
 7:DDL语句:创建或者删除表,索引等数据库对象的语句
1:创建表:create table 表名(column1 datatype)列:create table school(id int(10),name varchar(20));
2:删除表:drop  table 表名列:drop table school;
 8:表中添加数据:insert into 表名 (values)(添加的数据,几项对应几个数据)列insert into student values (NULL,"kk");(两项,第一项自增所以null)
 9:查询数据:具体某一项:select 字段名 from 表名 查询全部:select * from 表名;
 10:给查询出来的字段去别名:select coll(as) 别名1,col2
2:
1,查:SELECT * from user
2,增:INSERT into user (username,userpassword)VALUES("ii","ii")
3,删:DELETE from user where userid = 9
1,改:UPDATE user set username="gg",userpassword="gg" WHERE userid=5
3:distinct关键字:消除结果集中的重复信息,只显示一行。1:当字段为*(所有)时意思为所有字段都相同才会消除重复的。
2:语法:select distinct col1,col2from 表名 col1和col2里面的内容相同才会消除重复的
4:where条件:=,!=,<>(不等于),<,>,is null ,is  not  null 区别:is null 在添加数据的时候你在对应栏位会看见一个null
like ,not like %:表示0个或多个字符(不常用)_代表一个字符 逻辑符合条件关键字: not:相反 and:和(两个同时满足) or:或者(满足其中一个) 
列:SELECT DISTINCT * FROM user
SELECT * from user
SELECT DISTINCT username 姓名,userpassword 密码 from user
select * from user where username is not null
select * from user where username is null
select * from user where userid <>6
select * from user where userid <6
select * from user where userid !=6
SELECT * from user where username like "_1%"
5:对查询结果排序
1:语法::select col1,col2 from 表名 (where (添加条件时用)) order by colun(asc,desc)(默认)升序,降序。只作用前面一个字段。
列:select * from emp ORDER BY deptno desc ,sal DESC :不写默认为升序  判断先在第一个进行升序后如果有相同的则在执行后面的降序排序。
6:常用函数: 1:lower :把字段转换成小写 列:select LOWER(ename) y(取新的字段名) from emp  
     2:upper:把字段转换成大写 列:select upper(ename) y(取新的字段名) from emp 
     3:concat:连接两个字段。列:SELECT CONCAT(sal,deptno) (取新的字段名) from emp
     4:length:求字段的长度。列:select length (ename) 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,1)from 表名;
     7:to_number:把数字字符串转换成数字 列:select to_number(‘3.1415’)+5.1314 from 表名(oracle 有 mysql不是这个函数)
     8:to_char:按指定格式,格式化字符串:select empno,to_char(sal,‘L999,999,999,99’)from emp;(oracle 有 mysql不是这个函数)
     9:to_date:把字符串转换成,数据库内部的日期格式 (oracle 有 mysql不是这个函数)
7:分组函数:1:avg(字段):平均数 2:max(字段):最大值 3:min(字段):最小值 4:sum(字段):求和 5:count(字段):计算该字段的个数;
列:1:SELECT AVG (sal) from emp
   2:SELECT max (sal) from emp
   3:SELECT min (sal) from emp
   4:SELECT sum (sal) from emp

   5:SELECT count (sal) from emp

分组函数不能用在where条件中,只能用在select后面。
8:分组:group by :语法:select col1,col2... from 表名 where 条件 group by column(col1,col2)
列:SELECT deptno from emp group by deptno1 意思:从emp表里查询deptno通过deptno1进行分组。
列:一个班的学生名叫某某。
9:将两个表的内容连接在同一个表中(前提有外键关系): 
1:列:select 表1.字段名,表1.字段名2,表2.字段名1,表2.字段名2 from 表1 定义表1的简称 INNER JOIN 表2 定义表2的简称 on 表1的简称.外键字段名 = 表2的简称.外键字段名  结果:表1字段名1+表1字段名2+表2字段名1+表2字段名2 所组成的一张虚拟表。
2:列:select 表1.*,表2.* from 表1 定义表1的简称,表2 定义表2的简称 where 表1的简称.外键字段名=表2的简称.外键字段名
经典案列:
第一步:select * from emp
  第二步:select * from dept
第三步:select deptno sum(sal),count(empno),avg(sal) from emp group by deptno
第四步:select xin.*,d.dname from (SELECT deptno,COUNT(sal),SUM(emp.sal) from emp group by deptno) xin INNER JOIN dept d on xin.deptno = d.deptno;
10:having: select deptno,sum(sal) from emp group by deptno having 分组函数having起到过滤的作用 and or BETWEEN 2000  AND2500(2000~2500之间)
11:分页:mysql:关键字limit ;
列:SELECT empno from emp order by empno LIMIT 2,3



原创粉丝点击