您的位置:68399皇家赌场 > 虚拟主机 > 澳门皇家赌场55533网址:【Mysql数据库】学习笔记

澳门皇家赌场55533网址:【Mysql数据库】学习笔记

发布时间:2019-05-03 21:46编辑:虚拟主机浏览(76)

    默许约束(DEFAULT)

    如果需要让某个字段插入数据时有默认值时使用此约束
    create table t3 (id int,age int default 0,name varchar(10));
    

     

          desc table _name;   //呈现表的字段信息

        

    查询全部 show databases;

    创建 create database 库名;

    查询详细情形 show create database 库名;

    点名字符集 create database 库名 character set utf八;

    删除 drop database 库名;

    使用 use 库名;

    导入数据库 source 路径;

    查询全部 show tables;

    创建 create table t1(name varchar,age int);

    查询实际情况 show create table t壹;

    点名引擎和字符集 create table t一(name varchar,age int) engine=myisam/innodb charset=utf八;

    ----------------innodb:帮衬数据库的错综复杂操作,包罗外键、事务等

    ----------------myisam:只支持数据基础的增加和删除改查操作

    查阅表字段 desc 表名;

    删除表 drop table 表名;

    修改表名 rename table 原名 to 新名;

    修改表的发动机和字符集 alter table 表名 engine=myisam/innodb charset=utf捌;

    增添表字段

    --最前面: alter table 表名 add 字段名 字段类型;

    --最前方: alter table 表名 add 字段名 字段类型 first;

    --XX前面: alter table 表名 add 字段名 字段类型 after xxx;

    删除表字段 alter table 表名 drop 字段名;

    修改表字段的名字和种类 alter table 表名 change 原字段名 新字段名 新字段类型;

    修改表字段的种类和职责 alter table 表名 modify 字段名 字段类型 地点;

    删去并新建 truncate table 表名;

    保留数据 insert into 表名 values(字段值,字段值,...);

    点名字段插入 insert into 表名 values ;

    查询数据 select * from 表名 where 条件;

    修改数据 update 表名 set 字段名=字段值,字段名=字段值,... where 条件;

    剔除数据 delete from 表名 where 条件;

    查询到的字段更名 select 原字段名 新字段名 from 表名;

    询问去重 select distinct 字段名 from 表名;

    in 查询有个别字段的值为三个的时候 select * from where 字段名 in(值1,值2,...);

    查询有个别字段的值不为**的时候 select * from where 字段名 not in(值1,值2,...);

    between查询在**之间 select * from where 字段名 between 值1 and 值2;

    查询不在**之间的 select * from where 字段名 not between 值1 and 值2;

    漏洞非常多查询: like

    _:代表单个未知字符

    %:代表0个可能四个未知字符

    升序 select * from 表名 order by 字段 asc;

    降序 select * from 表名 order by 字段 desc;

    分组 select 字段 from 表名 group by 字段;

    分页查询 select * from 表名 limit *每页数量,每页数量 -----limit 7,7

    取余 mod -----7%2

    赢伏贴今日子 时间 select now();

    收获当今天期 select curdate();

    获得当前几日子 select curtime();

    从年月日时分秒中提取日期 select date;

    从年月日时分秒中领取时间 select time;

    从年与日时瞬间中领取时间分量:

    年 select extract(year from now; ------select extract(year from 字段) from 表名;

    月 select extract(month from now;

    日 select extract(day from now;

    时 select extract(hour from now;

    分 select extract(minute from now;

    秒 select extract(second from now;

    日子格式化:

    %Y 四位年 YYYY

    %y 两位年 yy

    %m 两位月

    %c 一位月

    %d 日

    %H 24小时

    %h 12小时

    %i 分

    %s 秒

    -------select date_format,'%Y年%m月%d日 %H时%i分%s秒');

    非标准格式调换为正式格式

    str_to_date('非规范格式的光阴',格式); --------select str_to_date('2018年11月16日 15时49分08秒','%Y年%m月%d日 %H时%i分%s秒');

    ifnull ----update emp set comm = ifnull;

    创造表的时候定义主键和自增 注释 create table 表名(字段名 字段类型 primary key auto_increment comment '内容',....);

    查看自动提交状态 show variables like '%autocommit%';

    设置自动提交的情状 set autocommit=0/一;

    翻开事务 begin;

    付出业务 commit;

    保留回滚点 savepoint 名;

    回滚到回滚点 rollback to 名;

    平均值 avg; ------select avg from emp;

    最大值 max; ------select max from emp;

    最小值 min; ------select min from emp;

    求和 sum; ------select sum from emp;

    计算数据 count; ------select count from emp;

    拼接 concat('xx','xx');

    获取长度 select char_length from emp;

    取得字符串在其它2个字符串中冒出的地点 instr(str,substr);

    插入字符串 insert(str,start,length,newstr);

    转大写 upper;

    转小写 lower;

    去两端空白 trim;

    截取字符串

    从左截取 left;

    从右截取 right;

    自定义截取 substring(str,start,len);

    重复 repeat;

    轮换 replace(str,要替换的,替换后的);

    反转 reverse;

    向下取整 select floor;

    四舍五入 select round; ------select round(23.47捌二,二) 二叁.48

    非4舍伍入 select truncate -----select truncate 二叁.八七

    随机数 rand() 0-1

    获取3、4、5 随机数 select floor 3;

    内接连 select from 字段 from 表一 join 表二 on 等值条件

    外连接 select from 字段 from 表一 left join 表二 on 等值条件

    始建视图 create view 视图名 as 子查询 with check option;

    开创或沟通视图 create or replace view 视图名 as 子查询;

    去除视图 drop view 视图名;

    格式: constraint 约束名称 foreign key references 注重的表名

    格式: create index 索引名 on 表名)

    去除索引 drop index 索引名 on 表名;

    视图概述

    -数据库中存在多种对象,表和视图都是数据库中的对象 **表和视图不能重名**
    -视图是张虚拟的表,是通过sql的查询语句查询的结果集的表保存成了一个视图 
    -视图中的数据 会随着真实表中的数据改变而改变
    -视图实际上就是代表了一部分sql语句
    

    -创造视图

    -格式:create view 视图名 as 子查询;
    
    create view v_emp_10 as (select * from emp where deptno=10); 
    
    案例:创建emp表的部门是20 工资小于3000的 视图
        只保存名字 工资 部门id
    
    create view v_emp_20 as (select ename,sal,deptno from emp
        where deptno=20 and sal<3000);
    
    案例:创建emp表 每个部门的工资平均值 的视图
    
    create view v_emp_dept_avg as (select deptno,avg(sal) from emp group by deptno)
    

     

    -若是成立视图的时候利用了小名,这视图未来的操作只认知别称

    -视图的利用格局 和 table 同样 -格式:select * from 视图名

     select * from v_emp_10;
    

     

    • 修改视图 -格式:create or replace view 原视图名 as 新的子查询

      create or replace view v_emp_10 as
      (select * from emp where deptno=10 and sal<3000);
      

       

    • 视图的归类 -视图分为:不难视图和复杂视图 -轻松视图:在创制视图的子查询中 不分包:关联查询、去重、函数、分组的视图称为轻巧视图 -复杂视图:和简易视图相反

    • 对视图进行dml操作,只针对轻便视图能够应用 因为复杂查询普通情形只是为着浏览数据的,无需也不能够拓展增删改的操作

    视图的字段 遵从原表字段的约束 - 视图的多少污染 如果往视图中插入一条在视图中不具体 不过在原表中浮现的数据,称之为数据污染,不建议那样操作 唯有insert命令才会并发数量污染,因为update和delete命令只可以操作视图中部分数据

    • with check option create view vemp10 as select * from emp where deptno=10 with check option;

    • 视图的效用

      1. 重用子查询 提升开销作用
      2. 范围数量的拜会 举个例子:能够创造2个视图把原表的敏锐性音讯过滤掉就能够 
        create view v_emp as select empno,ename,deptno,comm,job from emp
        
    • 职业中对视图一般只实行DQL,不选用DML

    • 除去视图

      drop view vemp10;
      

       

      -案例:创设三个繁杂视图:呈现部门的平均薪俸,最高薪资,最低薪金,薪资总额,部门职员和工人人数;

      create view v_emp_deptinfo as
      select deptno,avg(sal),max(sal),min(sal),sum(sal),count(*) 
      from emp 
      group by deptno;
      

       

        create table 表名

        where shop_price between 100 and 500;     

    mysql -uroot -proot

    CHECK约束

    mysql语法支持,但是没有效果
    create table t7(id int,name varchar(10),
    age int,check(age>20));
    

     

        create trigger student_backup  //学生备份表随学生表的退换而退换

                        for each row

    注意:

    1、where后边不能够写聚合函数,使用having

    二、假诺创制视图的子查询中使用了外号,则对视图操作时只好采纳外号

    3、not null 不可能为空

    四、unique 无法再一次

    伍、primary key 主键,无法为空,不可能重复

    6、auto_increment 自增

    7、展现一行 select depto,group_concat from emp group by deptno;

    视图

       2.4 删除表

            -- 重回date的月度名

    如何是事情

    事务是一组原子性的 SQL 查询, 或者说是一个独立的工作单元. 在事务内的语句, 要么全部执行成功, 要么全部执行失败
    

        alter table 表名 add 新字段名 数据类型  //增加字段

                        on t_score for each row

    外键约束(FOREIGN KEY)

    1. 做事中,除非特别情状,一般不选择外键,使用代码通过逻辑进行限定
    2. 外键约束是承接保险2个或七个表之间数据的壹致性和完整性的
    3. 表的外键常常选用的是另一张表的主键
    4. 外键能够重新、能够是null、但不能够是另一张表不存在的数据
    5. 选择外键约束的规格 -必须确定保障两张表使用同1的存储引擎 -存款和储蓄引擎必须是innodb,myisam不援助外键约束 -外键和涉及字段必须有一般的数据类型,数字长度必须一律 -外键约束对应的字段必须创制索引,若是不存在索引,mysql会自动创立索引

            insert into student_backup

            b)修改视图view_selStu,能够突显选修课程的学习者的学号,姓名,选修科目代号,科目名称,科目成绩,班级,教师姓名

    目录概述

    1. 目录是用来增强查询速度的技艺
    2. 假如不接纳索引mysql会从第一条数据依次今后查询,如若数据量一点都不小,相当耗费时间
    3. 增添索引能够交到查询品质,但是一旦数据量比不大,增多索引可能会降低功用
    4. 目录的变化是数据库内部生成,假设查询数据时意识某些字段已经增加过索引会自动使用

    5. 复合索引

      创办索引时假使设置多个索引字段 则称之为复合索引

    6. 创建表的时候一向增添索引

      create table t11 (id int,name varchar(10), age int, index index_name(name(10)));
      

       

    7. 更换表的索引 

      alter table t11 add index index_age(age);
      

       

    8. 除去索引

      drop index index_age on t11;
      

       

        唯1性约束: 字段名 数据类型 unique

            Connection conn = JDBCUtils.getConnection();

    练习

    1.案例:创建一张表customer2,id number(4),
    name varchar2(50),password varchar2(50)
    ,age number(3),address varchar2(50),修改
    customer2表的时候设置主键约束
    pk_id_name_cus2修饰id和name列。
    
    
    
    
    2.案例:创建一张book3表,id number(4),
    name varchar2(50),author varchar2(50),
    pub varchar2(50),numinput number(10)。
    修改book3的时候,设置主键约束
    pk_id_name_b3修饰id和name列,设置唯一约束uq_author_pub_b3修饰author和pub列
    
    
    
    3.案例:删除temp中的唯一约束uk_name_pwd
    
    4.案例:在book表中author和pub列上添加索引index_author和index_pub
    
    
    5.案例:删除book中在pub和author上的索引
    
    
    6.案例:创建一个视图emp_view1,查询emp表中所有的数据,查询语句作为视图emp_view1
    
    
    7.案例:创建一个视图dept_view,查询dept表中所有的数据,查询语句作为视图dept_view
    
    
    8.案例:创建一个视图emp_view2,查询emp表中所有员工的编号,姓名,职位,工资,上级领导的编号以及工资的等级,该等级的最低工资和最高工资,查询语句作为emp_view2
    
    
    9.案例:查询emp表中10,20号部门员工的编号,姓名,职位,工资,所属部门的编号,使用查询语句来修改视图emp_view1
    
    
    10.案例:删除视图emp_view1,emp_view2
    

          stu_score int,

            字段的另壹称呼

    MySQL事务

    1.查看事务是否是自动提交
        show variables like '%autocommit%';
    2.关闭自动提交
        set autocommit=0;
    
    begin 开始事务
    commit 提交事务
    rollback 回滚事务
    

     

          foreign key(stu_name) references anotherTable_name(stu_name)  //外键

                and t_course.cid = t_teachcourse.cid

    课程回看

    1. ①对一关乎 案例一:查询每种职工的名字和掌管领导的名字

      select e.ename 员工姓名,m.ename 领导姓名
      from emp e join emp m
      on e.mgr=m.empno;
      

       

      案例二: 查询经理官员名称叫blake的具有职工名字 

      select e.ename 员工姓名,m.ename 领导姓名 from emp e join emp m on e.mgr=m.empno where m.ename='blake'
      

       

      案例三:查询有商品的归类消息及上级分类信息往titemcategory表内部插入以下数据 id 16二 name 办公用品 id 22九 name 文具 id 九一三 name 户外用品 -插入数据

       insert into titemcategory (id,name) values(162,'办公用品'),(229,'文具'),(913,'户外用品');
      

       

       -查询全数有商品的分类id

      SELECT DISTINCT categoryid FROM titem WHERE categoryid IS NOT NULL
      

       

      * -查询分类详细的情况*

      select * from titemcategory where id in (SELECT DISTINCT categoryid FROM titem WHERE categoryid IS NOT NULL)
      

       

       -查询上级分类

       select n.*,c.name 上级分类名称 from (select * from titemcategory where id in (SELECT DISTINCT categoryid FROM titem WHERE categoryid IS NOT NULL)) n join titemcategory c on n.parentid=c.id
      

       

      -查询有商品的归类音信及上级分类消息完成步骤:壹.通过子查询查到有商品的归类id 二.把当前分门别类和顶头上司分类通过内延续组建关联 3.然后把分类的id作为筛选规范 -轻便写法 

      select c.*,m.name 上级分类 from titemcategory c join titemcategory m on c.parentid=m.id where c.id in (SELECT DISTINCT categoryid FROM titem WHERE categoryid IS NOT NULL);
      

       

    2. 1对多涉及

      单位 职员和工人 分类 商品 用户 地址 userid -1对多的表中 在多的表中增加关系字段

      案例1:查询每一种分类下所对应的具有商品

      select *
      from t_item_category c left join t_item i
      on c.id=i.category_id
      

       

      案例2:查询部门平均薪水 大于 全部职员和工人的平均薪资的装有单位下的装有职工

      SELECT * FROM emp 
      WHERE deptno IN (SELECT deptno FROM emp
      WHERE deptno IS NOT NULL
      GROUP BY deptno
      HAVING AVG(sal)>(SELECT AVG(sal) FROM emp))
      

       

      案例叁:上题结果上再多呈现出 部门的名字

       select n.*,d.dname from(SELECT * FROM emp WHERE deptno IN (SELECT deptno FROM emp WHERE deptno IS NOT NULL GROUP BY deptno HAVING AVG(sal)>(SELECT AVG(sal) FROM emp)))n join dept d on n.deptno=d.deptno
      

       

    3. 多对多涉及 -多对多需求独自通过新建的关联表保存数据

      create table teacher(id int primary key auto_increment,name varchar(20));
      
      insert into teacher values(null,'唐僧'),(null,'赵本山'),(null,'刘老师'); create table student(id int primary key autoincrement,name varchar(10)); insert into student values(null,'八戒'),(null,'悟空'),(null,'宋小宝'),(null,'小沈阳'),(null,'小明'),(null,'小红'); create table ts(tid int,sid int); insert into t_s values(1,1),(1,2),(2,3),(2,4),(3,5),(3,6),(1,5),(2,5); 案例1:查询每个老师对应的所有学生信息 1. 子查询 select name from student where id in (select sid from ts where tid in(select id from teacher)) 2. 内连接 SELECT n.name tname,s.name FROM (SELECT * FROM teacher t JOIN ts ts ON t.id=ts.tid)n JOIN student s ON n.sid=s.id
      

       

      案例二:查询 小明 对应的有所老师 

      SELECT n.name tname,s.name FROM (SELECT * FROM teacher t JOIN t_s ts ON t.id=ts.tid)n JOIN student s ON n.sid=s.id where s.name='小明'
      

       

      案例三:刘先生 对应的装有学员消息 

      SELECT n.name tname,s.name FROM (SELECT * FROM teacher t JOIN t_s ts ON t.id=ts.tid)n JOIN student s ON n.sid=s.id where n.name='刘老师';
      

       

                    net start mysql 或 net stop mysql     // 运维或结束MySQL服务

     

    目录原理

        drop table [if exist] 表名;

        一、数据库是如何存款和储蓄数据的

    目录总计

    1. 索引不是越多越好 
    2. 数据量小的时候不需要用到索引
    3. 经常出现在 where、order by、 distinct的字段添加索引,效果会更好
    4. 不要在经常做增删改的表中添加索引
    

        alter table 表名 change 旧字段名 新字段名 新数据类型  //修改字段名

        | name | sum(score < 60) | pj      |

    主键约束(P路虎极光IMA哈弗Y KEY)

    1. 非空、唯一
    2.如何添加主键
    -创建表时添加主键
        create table t4(id int primary key,age int );
        create table t5(id int,age int,primary key(id));
    -创建表之后添加主键
        alter table t6 add primary key(id);
        alter table t6 modify id int primary key
    -删除主键约束
        alter table t3 drop primary key;
    -自增约束 auto_increment
    1.当字段赋值为null的时候,字段自动增长 
    2.如果删除了某一条数据 自增的数值不回减少
    3.如果插入数据时指定了一个特别大的数,下次自增则从这个数基础上 1
    

     

        create view stu_sub(stu_num,stu_name)  //创设视图

    |二陆 |壹三| ECS000026 | 小灵通/固话20元充钱卡 |    0 |                贰 |              2贰.80 |       1九.00 | 1二④一九七一78九 |       0 |      0 |      一|

    职业案例

    转账案例:
    
    1.创建user表
        create table user(id int,name varchar(20), money int);
        insert into user values(1,'苍老师',2000),(2,'刘老师',100);
    2.转账sql
        update user set money=money 500 where id=2;
        update user set money=money-500 where id=1;
    

     

    学科回看:

    一.如何是视图 实际上海电台图正是①段sql语句

    二.视图中多少实际上都以原表中的数据,借使改变视图中的数据 原表数据跟着变动

    三.幸免现身数据污染 能够由此丰裕 with check option 防止出现数据污染

    四.视图经常只进行查询操作

    5.视图效应:子查询复用、限制数量的访问

    6.索引index 须求驾驭 创制命令和删除命令

    7.约束:unique、not null、primary key、default foreign key,check

    八.事务 背下来第四次全国代表大会特点: 原子性、一致性、隔绝性、持久性

    day01:

    数据库相关的sql:show databases create database db1 character set utf8show create database db一 drop database db一;

    表相关: create table show tables; show create table t1; desc t1; rename table t1 to t2; alter table t1 change age age2 int; alter table t1 modify age long first/after id; add age int; drop age; drop table t1;

    insert update delete select

    day02:

    1.主键 自增 not null 注释:comment

    2.去重 distinct

    3.事务

    四.sql分类 ddl 数据定义语言 create alter drop truncate:删除表内全部数据,内部贯彻原理:先删除表再创设一个新表 实施功效高 dml 数据操作语言 insert update delete select 扶助职业 dql 数据查询语言:select tcl 事务调节语言:begin commit rollback dcl 数据调节语言:调节权限

    五.数据类型 整数: int bigint 浮点数: double decimal(m,d)

    6.字符串: char varchar text

    7.日期:date time datetime timestamp

    day03:

    聚合函数:sum count avg min max

    字符串:charlength instr(x,y) locate(x,y) insert(str,begin,length,newStr) lower upper left right substring(str,begin,length) trim() replace(str,old,new); repeat(str,2); reverse

    日子相关:now date(now()) time(now()) extract(year from now()) month day time hour second minute dateformat(now(),'%Y-%m-%d %H-%i-%s') strtodate('','')

    数学:  - * / % mod(2,3)
    数学函数: floor  round() rand()
    

        4* repeatable read :制止赃读,不可重复读。虚读有希望爆发;

            pid int not null default 0,

    非空约束(NOT NULL)

    如果某个字段的值不能为null 需要使用此约束
    
    create table t2(id int,age int not null,name varchar(10));
    -以下两种都不可以
    insert into t2 (id,name)values(2,'a');
    insert into t2 values(3,null,'b');
    

     

       五.三 查看和装置专门的学业等第

        | 李四     | 2 |    50.0000 |

    开创外键约束

    1. mysql支持外键的列级语法,但是没有效果,是为了保证和sql的规范的一致性
    2. 表级约束的添加方式
    -格式:CONSTRAINT 约束名 FOREIGN KEY(当前表添加约束的字段名) REFERENCES 关联表表名(关联表的字段名)
    create table classes(id int primary key auto_increment,name varchar(20));
    insert into classes values(null,'一班'),(null,'二班');
    CREATE TABLE student(
    id INT AUTO_INCREMENT PRIMARY KEY,         
    name VARCHAR(20),                                
    class_id INT,
    CONSTRAINT fk_class_id FOREIGN KEY(class_id) REFERENCES classes(id)
    );
    1.创建班级(classes)表 id name
    2.创建学生表(student)id name classid
    给classid添加外键约束 
    3.先往班级表中插入数据 然后往学生表插入数据,
    

     

    测试插入错数据 和删除 被波及的班级数据

           

            -- mod(x,y)

    事务的 ACID 性质

    **必须背下以下4点 面试常考**
    -原子性:最小的单元,不可分割
    -一致性: 保证sql执行的一致 要么都成功,要么都失败,保证执行前后数据一致
    -隔离性:多个事务并发时,互不影响
    -持久性:commit提交之后,数据保存到数据库中
    

     

          end

     

    MySQL 约束

        a. 备份  

        #充裕赵⑥后错误揭示

    唯一约束(UNIQUE)

    如果数据库中的数据需要保证唯一性则添加此约束
    CREATE TABLE T1( ID INT, AGE INT UNIQUE, NAME VARCHAR(20));
    

     

          mysqldump -u root -p123 database_name>d:myDBdemo.sql 

            -- 收取每一个栏目下的新颖的货色

        自增量: 字段名 数据类型 auto_increment  //私下认可开头值为壹,增量为1;如需从100伊始,可以安装为auto_increment=100

    ——limit限制结果条数
        limit [offset,] n(不包含offset)

          begin

        database()
        version()
        user()

          进入须要还原到的目标数据库;

                若是删表,先删主键表仍然先删外键表?

          if((select count(*) from inserted) > 0)

                通过命令建表:

        create view view_name(字段名,字段名,字段名)

        能够将有所音信寄存到一张视图中,再由别的条件进行筛选。
        定义:
                视图是壹种数据库对象,其内容由询问(来自于查询)定义
                实例:创制视图,查询学号,姓名,联系电话,班级,选课号,课程名,成绩,教授名称
                        create view view_v

        一.1.二 数据表操作命令

     

        

    ——exists型子查询

        两个等级:

        group by cat_id;

        持久性。

            -- 与lpad相反。

        设置隔断品级,必须在拉开事务在此以前!

    |31 | 三| ECS00003一  | 摩Toro拉E8                |        5 |               一 |          1604.3九 |    13三七.00 | 12421拾41贰 |       0 |      0 |      0 |

     

                                    end&&

          stu_gender char(2),

        goods_sn varchar(60) not null default '',

        2* read commited :幸免赃读。不可重复读,虚读都有比较大可能率产生;

        select * from goods

        end

            date = 2017-04-05 12:29:19

    壹、数据库的创制

        注意:数据库优化
            当每一条记下都是定长数据时,会一点都不小的进步数据库的找寻成效。
            因为每一行的长短都以定点的,所以搜索时的定址、寻址尤其快。
            当存在多少浪费和作用增高三种意况还要存在是,以频率为准。(不能够浪费太多)
            时间与空间是壹对争论体,无非是时间换空间,或许空间换时间。
            当数码表中的某1列影响了1体化进程并且无法进展空中优化时,并且该列修改频率也不高,
            那么能够将该列单独抽出存为一张表。
            在付出进度中,数据库优化往往是把频仍用到的新闻囤积到一张表中,优先思量寻觅效用。
            不常用的音讯和相比较并吞空间的消息,优先挂念空间攻下,单独存款和储蓄到别的一张表中。
            并且一般时间并不使用datetime存款和储蓄,而是利用时间戳,因为datetime即便直观,但不方便人民群众总结,影响效用。

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 full join table2_name t2 on t1.id=t2.id    //全连接,MySQL不支持!

     

          stu_name char(10) not null,

        1、在t_student 表中的sname列创立唯一索引

      drop database database_name;  //删除数据库

        -- | 张三 | 数学    |    90 |

          show create table table_name;  //呈现表的创设消息

        | num  |

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 right join table2_name t2 on t1.id=t2.id    //右连接

        where (cat_id = 3 and shop_price > 1000 and shop_price < 3000 and click_count > 5)and goods_name like '诺基亚%';

        外键约束: foreign key(字段名) references 表名(字段名);

     

        1* read uncommitted :赃读,不可重复读,虚读都有希望发生;

                        where cid = 1 and sid = 2016001;

        8* serializable :防止赃读,不可重复读、虚读;

                                    -- 输出

            from inserted

                        as

          if((select count(*) from deleted) > 0)

                                create procedure sp_fail()

        on student        

                                delimiter &&            //分隔符,当下三遍蒙受&&时就能够落成     能够采用任何字符 比方://

      2.3 修改表

    |2玖 |1四| ECS00002玖 | 移动100元充钱卡       |        0 |               0 |                0.00 |        90.00 | 1二四19七302二 |       一 |      0 |      一 |

          begin

        set num = 30

          primary key(stu_num),  //主键

        

          stu_num int auto_increment,  //自增量

        三)列的特色
            是还是不是为主键
            是还是不是为空
            是还是不是为机关拉长列
            是或不是有暗许值

        虚读(幻读):一个事务A读取另二个事务B插入的数量(insert),前后分歧等。

    import java.sql.Blob;

      例如:

        非空约束:
            create table 表名
            (
                字段名 数据类型 not null
            );

          source d:myDBdemo.sql

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

        >内连接:

    3、C:ProgramDataMySQLMySQL Server 5.6data
        该目录下的每一个目录都表示多少个数据库,举例该目录下有3个mysql目录,表明DBMS中有1个名叫mysql的databases。
        在每种数据库目录下会有0~N个扩展名叫frm的文件,每种frm文件表示三个table,不要选拔文本编辑器张开。

      create database database_name  DEFAULT CHARACTE福睿斯 SET utf八;  //成立3个数据库  

        | 张三 |    60.0000 |

            where stu_name in(select stu_name from deleted)

            -- 转换来小写

        on table(表名)

                select t_student.sid,sname,cname,score

    五、事务

            

        alter table 表名 modify 字段名 数据类型;  //修改字段数据类型

            

    • =、 !=、 <>、<、<=、>、>=;
    • between   ·····  and ········;
    • in(set) ; //set是集合
    • is null;is not null
    • and ;
    • or;
    • not;
    • like  '%三';          //%意味任性多少个字符,_代范例性单个字符

    MySQL内部每一行又一个rowid

     

                                        set balance = balance money

            delete from student_backup

        limit 2,3

      一.三 内三番五次和外接连

            -- 再次回到参数x的四舍5入的y位小数的值

          use database_name;  // 引用数据库

    |11 | 3| ECS000011  | 索爱C702c                 |       0 |                  1 |               0.00 |    1300.00 | 1241966951 |       0 |      0 |      0 |

        原子性;

        #正确思路,先查看各样人的平均战绩

        alter table 表名 AUTO_INCREMENT=十0  //设置自增量起初值为拾0

                where t_student.sid = t_score.sid

      例如:

                    带有输入与参数的存款和储蓄进度。
                            语法:
                                    delimiter &&
                                    create procedure 存款和储蓄进度名(in 参数名 参数数据类型,......)    // 能够输入八个参数。
                                    reads sql data
                                    begin
                                            存款和储蓄进程语句
                                    end &&
                                    delimiter ;

        as <sql_statement>(sql语句)

                                    end &&

          source path(.sql文件路线)  //导入数据库文件,生成数据库,即基于sql脚本生成数据库;比方:source F:mysql.sql

     

          end

                /*

        (

                                    --查询ename字段中第3个字符不在A到F的限定内的员工新闻。

       一.四 数据库备份和死灰复燃

        | 李四 |          1 |

      例如:

        insert into score values('张三','地理',40);

      5.贰 事务隔开分离等级

        
            max()函数取最大值。
            min()函数取最小值。
            avg()总计平均值
            count(*)函数总括个数,假诺count(列名),在钦点列名时则不总计null值。
            那么使用count(*)和count(一)什么人越来越行吗?
                对于myisam引擎的数据库未有区分,那种内燃机的数据库内部有三个计数器计算那行数,当供给输出游数的时候,会一向抽出游数
                对于利用innodb引擎的数据库,使用count(*)直接读行数,会导致成效低下,因为innodb会一行一行的数。
        
            有如下语句:
                select goods_id,sum(goods_number) from goods;
                收取结果为:
                goods_id    sum(goods_number)
                      1                        314
                对于SQL标准来讲,该语句是荒唐的,无法被实施,不过在MySQL中能够被试行,可是为了可移植性和标准性,不引入应用。     

            或:

        

          mysql -u username -p  // 登陆MySQL管理体系  

            select insert('aaaaaa',1,4,'ss')

        非空约束: 字段名 数据类型 not null

    is_new,is_hot from shop.goods;

        暗中认可约束: 字段名 数据类型 default 私下认可值

    import org.apache.commons.io.IOUtils;

          字段名贰 数据类型,

            

           mysql -u root -p123 database_name<d:myDBdemo.sql

    壹、表的有关概念
        关周密据库(Relational DataBase, GL450DB):正是凭仗关系模型的数据库,在管理器中,关周全据库是数码和数据库对象的结合关系型数据库基础数据是数据表。

        隔离性;

    |13 | 3| ECS000013  | 诺基亚5320 XpressMusic |13|                 8 |         1573.20      1311.00 | 1241967762 |       0 |      0 |      1 |

        等级越高,安全性越高,质量越差!

            -- year(date)

          show tables;         // 展现某数据库中全数表

            

        for insert,delete,update

    肆、SQL管理表结构
        壹)建表语法
            use 数据库名;
            create table [if not exists] 表名
            (
                id int not null,
                name varchar(20) not null
            );

        一.一.1 数据库命令

    7、SQL管理约束
        加多约束:
            创制表时加多
                非空约束
                    not null

          mysqld install      // 安装MySQL数据库服务

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

       壹.二 查询关系运算符

    |23 | 5| ECS000023  | 诺基亚N96                |      17 |                8 |          4440.00 |   3700.00 | 1241971488 |       1 |      1 |      0 |

          show databases;    // 显示全数数据库

        改
            修改数据
                日常依照主键来修改,因为主键是唯一的。
                语法
                    修改单列值:
                        update 表名
                        set 字段名 = 修改的值
                        where 字段名 = 值;

    三、视图的创制

        将外层的查询结果(查询字段)获得内层查询,决断内层的询问是不是构造建设,假设内层的查询where制造,则该行抽出,
        并在外行输出展现,要是不成立则不出口。

        drop view stu_sub;  //删除视图

        select * from goods

            select *

        相比运算符
            <    <=    =    >    >=    <>    in
        逻辑运算符
            not 或 !    or 或 ||    and 或 &&
        -- 1、查询主键为3二的货品

      二.二 常用约束

                 * 将Blob保存到硬盘 壹、通过Blob得到输入流对象 二、本人创设输出流对象 3、把输入流的多少写入到输出流中

            或:

    三、数据库的军管表达
        1)创立:create database 数据库名;    成立在暗中认可data目录下。
        二)删除:drop database 数据库名;

        as <select查询语句>

                                    不在字符列中的率性一个字符。

        >外连接:

        create table product

        以上景况均为事务A已张开,但未提交时爆发!

        | 赵六 |          0 |

        设置职业隔断品级:set transaction isolation level 三个品级之1;  //dos命令

            // pstmt施行executeQuery方法,试行查询,获得ResultSet

        (

        from goods

    四、触发器

                create or replace view view_selstu

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  left join table2_name t2 on t1.id=t2.id    //左连接

            -- 若是newstr长度超越len,则将newstr全部插入钦赐地方,即使高出长度。

        create trigger trigger_name  //创设触发器

            -- repeat(str,count)

          from student;

                                    delimiter;

        

                                        select * from emp

        for insert|delete|update

                    (

        begin

     

        create table student

            -- 抽出每一个栏目下的风行的货物

        赃读:1个事务A读取另一个事务B未提交的多少;

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

          或:

        创建表:
            create table 表名
            (
                字段名 数据类型
            );

        alter table 旧表名 rename 新表名  //修改表名

     

        );

                                reads sql data

      2.1 创建表

        -- 三、查询最便利的的货品价位

          字段名一 数据类型 [not null] [默认值],

    1、MySQL安装成功后会在八个目录中贮存文件
        >   D:Program FilesMySQL Server 5.6
            DBMS管理程序
        >   C:ProgramDataMySQL Server 5.6data
            DBMS数据库文件,卸载数据库时不会删除该目录,供给和煦手动删除。

      5.1 事务四大特征

    ——MySQL入门最基本语句
        连接服务器:
            mysql -uusername -ppassword
        当连上服务器后,大家首先面对的是库,库有二个或七个,如若不知晓有啥库,必要查阅全数的库,语句如下
        查询全数库:
            show databases;

        不可重复读:3个事务A读取另三个事务B提交后的多少(update);

        select min(shop_price) from goods;

      1.壹 DOS常用命令

     

        );

            -- user()

    二、基本表的开创

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

        as select stu_num,stu_name

                        create trigger tr_del

        b. 恢复

                                    begin

            select  t1.name,t1.age,t2.score  from table1_name t1 , table2_name t2 where t1.id=t2.id

        2 rows in set (0.00 sec)

          主键约束: primary key(字段名);  //或在概念字段时一贯在后面扩大 primary key

                    一般不钦定列为null值,因为不便于比较与查询。

       数据类型:int,char,varchar,text(字符串类型),blob(字节类型);double(5,2)表示最多七个人,当中三个人小数。

        

        alter table 表名 drop 字段名  //删除字段

                                        select * from emp

        一致性;

                                    end &&

          字段名三 数据类型

                通过图形化分界面建表。

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  join table2_name t2 on t1.id=t2.id

                                end &&

        as

    A表与B表通过1个关系来筛选B表的行

        查看当前政工隔开品级:select @@tx_isolation;  //dos命令

        insert into score values('李四','语文',55);

            select date_format(now(),'%yy年%M月%d日');

                                        and inputcid = t_score.cid;

        检查约束:
            在MySQL中数据库引擎会分析check语句,不过会忽略check约束,所乃至于字段限制范围的操作,能够在程序中限定。

            -- lower(str)

     

        

                set cname = '2'

    时间:2016-3-28 19:40

        

    一、定义:
        一、数据库指的是以自然艺术存款和储蓄在1块儿、能为八个用户提供共享,具有尽大概小的冗余度的风味,是与应用程序相互独立的多寡集合。

        offset假若不写,约等于limit 0,n

        is_new tinyint(1) unsigned not null default '0',

            -- truncate(x,y)

                                    delimiter;

        | name | k | avg(score) |

                select * from view_fail

        -- 叁、按栏目由低到高排序,栏目之中按价格由高到低排序

        -- 5、查询该店全体商品的仓库储存总的数量

            -- insert(str,pos,len,newstr)

        mysql> #测算每一种人的挂科学科

            

                        -- 插入一条选课消息后 要求掌握选课号是不怎么

    示范代码:

            pstmt.setInt(1, 1);

     

                create view view_selstu

    ——where条件查询

    ——order by排序
        order by 列名 desc/asc

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

                having中只可以查询组的一体化音信,但不能够查询组的详细音讯。
                 where必须写在having前边,顺序不可剖腹藏珠,不然运转出错。

                            Cou_id int not null primary key,

     
    ——数据库的基本概念

        5、删除上述索引

            

        |   25 |

                                        update bank

                                select * from t_student

            b)在view_fail中询问各班比不上格的实际业绩音讯

        concat(str1,str2)
        lower(str)
        upper(str)
        length(str)
        trim(str)
        replace(str,oldstr,newstr)
        substring(str,pos,len)

        (

        | 王五     | 1 |    30.0000 |

            -- 第二步:把goods_id对应的商品音讯输出就可以

     

            -- 再次来到按字符串fmt格式化日期date的值

        select * from goods

                    DQL:Data Query Language,数据查询语言
                        select  查询

                主键经常都以整数,不提出选拔字符串当主键(纵然主键是用于集群式服务,能够设想用字符串当主键)。

        反过来讲,排序是针对最终结出,即:order by要放在where/group by having之后,顺序无法颠倒。

                and t_score.cid = t_course.cid;

        唯1约束:
            create table 表名
            (
                字段名 数据类型 unique
            );

            -- 重返日期的时辰值

     

        暗许约束:
            create table 表名
            (
                字段 数据类型 default 暗中同意值
            );

                and t_score.cid = t_course.cid

                                delimiter ;

            select date_add(now(),interval 1 year);

    ——管理表

            -- 重临开首时间expr一和完工作时间间expr2之间的造化。

     * 向数据库中插入大文本数据

        public void fun1() throws Exception {

            

        where (shop_price > 100 and shop_price < 300)

                                    end &&

        

        3、在t_teacher表中的tname创建普通索引

        | 李四 |    50.0000 |

        表和字段、记录的涉及

        insert into score values('张三','语文',50);

            select now();

                                    insert into bank values(10002,'李四',200);

        alter table t_student

                select t_student.sid,t_student.sname,t_course.cid,cname,score

            alter table t_student

        | 赵六 |          0 |

                from t_student,t_score,t_course,t_teachcourse,t_teacher

        -- 陆、抽取十0<=商城价格<=500的物品(不许用and)

        );

            四、删除视图
                    drop view [if exists] 视图名
                    判定假诺视图存在,则删除视图视图。

                                        and inputsid = t_student.sid

                                        where id = outputid;

    /*

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

     

    5、从七个地点学习数据库

     

        | 张三 |               2 |

        -- 八、抽取商号价格抢先十0且低于300,恐怕超过伍仟且小于陆仟的物品()

        | 王五 |               1 | 30.0000 |

            

        }

     

    聚拢不可能重新,不过有十分大可能率有两行数据完全同样,怎样管理?

            pid int not null default 0,

            -- date_add(date,interval exp type)

            -- curdate()

    import java.io.OutputStream;

                            --要是要查询% _ 通配符等特殊字符,能够行使:

    ——单表查询

        mysql> select name,sum(score < 60),avg(score) as pj from stu group by name;

            -- concat(str1,str2)

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

        修改数据库编码:
            alter database mydb character set utf8;

        

                                    call sp_score(2016001,2,@score);

            -- %y:年,2位

            select mod(5,3);

            -- 重返钦命日期为一年中的第几周

        -- 四、抽取价格最高的前四个商品

    在多表连接之后,产生的是第二张新表,第3张新表中无别的索引字段,由此子表的目录发挥不了成效。

            -- rand()

            ssubject char(5) not null,

        where cat_id <> 3;

            使用distinct关键字屏蔽重复数据:
                    select distinct 列名 from 表名;
                        对点名列屏蔽重复值。

        select * from goods

            二个东西的某1个静态特征(属性)。

    import java.io.FileInputStream;

        当获得终极结出集之后,才方可实行排序,因为在结果集生成进度个中进行排序无意义。

                create view view_execllent

        select * from goods

            select database();

            -- %d:日(05,06)

        select * from goods

            -- 返回x/y的模(取余)

                    DCL:Data Control Language,数据调控语言
                        对用户的成立及授权。
                        revoke  create  table  from  user1

    import javax.sql.rowset.serial.SerialBlob;

                        where cid = new.cid

     

     

        2 rows in set (0.00 sec)

     

            -- 重回当前登六用户名

                                            where ename like '_[A-F]%'

             * 一、获得Connection对象 二、给出SQL模板,创制pstmt 三、设置SQL模板中的参数

                                        from t_student,t_score

            );

    语法:

    select goods_id,cat_id,goods_sn,goods_name,click_count,goods_number,market_price,shop_price,add_time,is_best,

            -- substring(str,pos,len)

                    意义:
                            一、存款和储蓄进程只在开创时打开编写翻译,今后施行都没有供给编写翻译,而相似的SQL语句推行二次就需求编写翻译1次,所以使用存款和储蓄
                                 进度会提升实践效能。
                            贰、存款和储蓄进程可以重复使用,可以减去数据库开垦职员的专门的职业量。

                OutputStream out = new FileOutputStream("D:/Alan Walker - Fade.mp3");

        mysql> select name,count(score<60) as k,avg(score) from stu group by name;

    故而pid能够视作sale表中的外键。

     

            str = sssssaa

        二、基本select查询语句
            语法格式:
                    select 列名 from 表名
                    where 查询条件表明式
                    group by 属性名一 having 条件表明式    -- 用于分组
                    order by 排序的列名 asc | desc;  -- 用于排序
            查询表中全数列:
                    select * from 表名;
                    查询全数列,顺序依据表的本来面目顺序突显。
                    select 列名贰,列名1 from 表名,调节列名的相继。
            查询表中有的列:
                    select 列名1,列名2 from 表名 where 条件;
                    在查询全部记录的根基上过滤信息。
                    条件大小顺序不能够改换,必须扩展。
                    条件:
                            比较
                            钦点范围:between and  /  not between and
                                能够and八个尺码
                            钦定群集:in  /  not in
                            相称字符:like  /  not like
                                %:相配任意多个字符
                                _: 相称率性2个字符
                                 [a-f]

        

                and score > 85;

    A left join B on 筛选标准

        where cat_id in (4,11);     

            删除表:
                drop table 表名;

     

    |17 | 3| ECS000017  | 夏新N7                      |       2 |                 1 |          2760.00 |    2300.00 | 1241969394 |       1 |      0 |      1 |

            /*

                create table 最后贰个字段的末尾提出不用写逗号。

                            group by tjob;
                            总计学生表中各班级人数
                                -- 总计学生表中各班级人数

                公式:(当前页-1) * 每页记录数,得出的正是起初行

                    create table Course

            select insert('aaaaaa',1,4,'ss')

        select * from goods

        | 张三 |          1 |

            select user();

        4、在t_course表中的cname列创立唯一索引

                                    -- 调用

    ——触发器

        select max(shop_price) from goods;

    本文由68399皇家赌场发布于虚拟主机,转载请注明出处:澳门皇家赌场55533网址:【Mysql数据库】学习笔记

    关键词: 68399皇家赌场 mysql 数据库 操作

上一篇:数据库(8)

下一篇:没有了