数据库基本语句

一、数据库:
1、关系型数据库(mysql oracle sqllite),
2、非关系型数据库(redies mangGo habss())
3、两者区别:
1、关系型数据库,里面的每一张表都需要建立关系,对数据操作比较方便。
2、非关系型数据库,一般用在分布式项目以及大数据项目,是互联网未来主流趋势。
4、数据库与表与数据服务器的关系:
1、每一个对数据库进行操作,要依赖我们数据库服务器,每一个数据库里面存放多张表(一对多关系)。
二、sql:
1、就是数据库结构查询语句。
2、sql语句分为:DDL:数据操作语言,增删改,一般人都要会掌握(简单)
DQL:数据查询语言,比较复杂,但一定要掌握。
DMl:用户改变数据。
DCl:权限进行控制。

三、使用sql过程:
1、启动mysql:net start mysql;
2、进入mysql : mysql -uroot -proot;
1、对库操作:
3、创建数据库:create database 库名;
4、查看数据库:show databases;
5、切换数据库:use 库名;
5、删除数据库:drop database 库名;
6、修改数据库:alter database change 旧库名 新库名;
2、对表操作:
1、创建表:create table 表名(字段名字 类型(长度),其他字段);
2、修改表的名字:rename table 旧表名 to 新表名;
3、表里增加字段:alter table 表名 add 新字段名字 字段类型和长度;
4、表里删除字段:alter table 表名 drop 字段名字;
5、表里修改字段名:alter table 表名 change 旧字段名 新字段名 类型(长度);
6、表里修改字段类型:也是用change,自己思考。

3、DDL(增删改)

    1、增加一行数据:insert into 表名 values(所有字段要添加的值);

    2、增加一行数据(指定字段值):insert into 表名(字段名,..,) values(指定字段要添加的值);

    3、增加多行数据:(提示每条数据用括号括着,每个括号用逗号隔开)

        insert into 表名 values(),(),(),(),();插入5条数据

    3、修改指定字段的值:update 表名 set 字段名="修改的值" where sid=1;

    4、删除一行数据:delete from 表名 where sid=1;

4、DQL:

    1、查询单行或者多行数据:select * from 表名 where sid=1;

    2、查询指定字段的一列值:select sid,sname from 表名;

    3、查询区间的数据:select  *  from  表名   where  分数字段名 between    60 and  90;

    4、查询或者数据:select  *   from   表名  where  分数字段名 = 60 or  分数字段名=80;

    5、判断当前字段是否有值:is  null; 注意ename=""/"bull",并不属于kong。

    6、分页查询:select  *  from  表名 limit 当前索引((当前页-1)*页量),第二个参数是当前的页量。

        select * from student limit 0,3;//用分页查询前三条数据。

    7、聚合函数:max、min、svg、sum,一般都配合as关键字写。

        1、select max(sresult) as "最高分" from student;//这里用as写了个别名,显示清晰明了。

        2、其他min、svg、sum格式也一样的就不多写了。

    8、过滤相同班级:

        select distinct 字段名 from student;,(注意distinct不能放其他东西)。

    9、查询每种科目最高分:

        select gradeName,max(sresult) as "最高分" from student group by gradeName;//代表分组的意思。

    10、按照成绩的高低查询所有:

        select * from student order by sresult desc;//这是desc是降序,asc是升序。

    11、模糊查询:

        1、like : 查询姓名包含某个字母的都输出

        select * from student where sname like "%R%";//查询名字包含R字母的那行数据,注意双引号里不能有空格。  


        2、"__" :   查询名字是三个字母的查出来

        select * from student where sname like "___";//查询名字是三个字符的那行数据。

    12、时间查询:

        1: now(): 查询当前时间完整格式:   select now();   

        2、current_date;  查询当前日期 2018-09-04

        3、current_time; 查询当前时分秒 

三、数据库设计:(好处是:不会造成数据冗余、误删操作)

1、三大范式:
    1、数据库设计第一大范式的原则:每一个属性(字段)都是最小的原子,不能分割的。
    2、数据库设计第二大范式的原则:每一张表都是唯一的,就是指描述一种事物,每个属性必须与主键有关系。
    3、数据库设计的三大范式的原则:数据库里的属性不能有传递关系,只能依赖于主键。(所以要分开建表)

四、其他:
1、double(5,2) 代表的是5位整数2位小数。
2、给字段的值全部加1:update 表名 set 字段名=字段名+1;
3、查询表里总共有多少各人:select count(*) from student;

猜你喜欢

转载自blog.csdn.net/weixin_42334396/article/details/82388720