Mysql数据库学习笔记

什么是数据库
        存储数据的仓库
        本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
         所有的关系型数据库都可以使用通用的 SQL 语句进行管理
为什么要使用数据库?
        持久化存储,安全稳定,存储量大,存储的数据多样性  查找方便,效率高
mysql 修改密码:
        1.以管理员的身份打开DOS
        2.将mysql服务停掉-->net stop mysql;
        3.在my.ini文件中的 mysqld下面加入    skip-grant-tablees并保存
        4.重新以管理员身份打开DOS命令
        5.启动mysql服务 net start mysql
        6.use mysql
        7.update user(mysql)  set password = password("密码") where user ="root";
        8.刷新列表 flush preivilges;
        9.将my.ini文件中的skip-grant-tablees注释掉(#skip-grant-tablees) 并保存文件
        10.重新打开DOS 使用新密码登录;
什么是 SQL?
        Structured Query Language 结构化查询语言
        是一种所有关系型数据库的查询规范,不同的数据库都支持。
        通用的数据库操作语言,可以用在不同的数据库中。
        不同的数据库 SQL 语句有一些区别
SQL 语句分类
        Data Control Language(DCL 数据控制语言 ) ,如:对用户权限的设置
        Data Definition Language (DDL 数据定义语言 ) 如:建库,建表
         Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删改
        Data Query Language(DQL 数据查询语言),如:对表中的查询操作
SQL语句中不区分大小写, 关键字 中认为大写和小写是一样的
                                      
DDL 操作数据库
创建数据库
       create database 数据库名;
判断数据库是否已经存在,不存在则创建数据库
        create database if not exists  数据库名 ;
创建数据库并指定字符集
         create database mldn character set utf8;
删除数据库
         drop database数据库名;
判断数据库是否已经存在,不存在则创建数据库
          drop database if exists 数据库名
 修改数据库默认编码
          alter database 数据库名 default character set gbk;
查看创建的数据库信息
         show create database 数据库名; 
查看当前用户的所有数据库
         show databases;
查看当前使用的数据库
         select database();
使用数据库
         use  数据库;
DDL 操作表结构
       mysql中常用的数据类型:
            int:整型数据,存储的是真实的整型数据,例如存储5,数据库实际存储的就是5;
            int(位数):整型数据,存储的数据不足位数,前面会补0,例如存储11,则实际存储的是011;
        
            varcahr(x):字符型,x可以指定存储长度;
            double:浮点型,例如double(5,2),表示可以存储一个保留两位小数,总长度是5位的小数,例如996.25;
            date:日期
            time:时间
            datetime:日期时间
            timestap:(时间戳,精确到毫秒)
            blob:大字节类型,最大支持4G
            clob:大字符类型,支持存储大文本存储,
        
      创建表
            create table 表名(
                字段1  数据类型,
                字段2  数据类型,
                .....
                字段    数据类型
            );
            
查看当前数据库下的所有数据表:    
        show tables;
查看表结构:    
        desc 表名;
查看创建表的SQL语句:    
        show create table 表名;
创建一张表结构完全相同的表:
        create table 新表名 like 旧表名;
删除数据表
         drop table 表名;
判断数据表是否已经存在,存在则删除表
          drop table if exists 表名;
修改表结构:
    添加数据列:
            alter table 表名  add 列名 数据类型;
    修改列类型:
            alter table 表名 modify 列名 新的数据类型
    修改列名:
            alter table 表名 change 旧列名  新列名 旧数据类型;
    删除列:
            alter  table 表名 drop 列名;
    修改表名:
            rename table 表名 to 新表名;
    修改数据表的字符集:
            alter table 表名 character set 字符集;
    
    DML语句:(对表中的数据进行增删改查操作)
            插入数据:
                    a.插入全部数据:
                        insert into 表名 values(值1,值2.....);
                    b.一次插入多条数据
    delete 和truncate的区别?
            delete只会清空表中的数据,表结构丶约束条件等还在,比如主键id自增后的数据....外键约束,空约束等的;
            truncate会将表中的数据以及这张表都删除掉,然后会按照原表结构重新创建一张新表,例如:表中的主键自增会从1开始,而不会记录原表中自增后的数据;
-- 查询数据库字符集
SHOW VARIABLES LIKE '%character%' ;
-- DQL语句之分组查询:group by
-- select 字段列表 from 表名  group by 分组字段名称;
-- 注意事项:  1)查询的字段列表中可以使用 分组字段
     --       2)group by之后不能使用聚合函数
带条件分组查询的语法:  where 条件 必须放在group by 之前,否则语法错误!
-- select 字段列表包含分组字段,聚合函数.. from 表名 where 条件  group by 分组字段;
筛选查询 having
-- where条件,group by,having  必须先有条件,分组,然后才筛选!
-- 注意:筛选的后面可以使用聚合函数,group by的后面是不能使用聚合函数的
分页查询 limit
-- select 字段列表 from 表名   limit 起始行数,每页显示的条数;
    
-- 起始行数:从0开始算的,    
-- 起始行数 = (当前页码-1)*每页显示的条数
数据库的约束
         概念:限制用户操作数据库的一种行为(非法行为)
          默认约束: 
                    default '默认值' :如果某个字段没有插入数据,那么默认约束就会给设定的默认值
                    ALTER TABLE 表名  MODIFY 字段 字段类型 DEFAULT  默认值 ;
         非空约束 not null,当前这个字段值不能为null:
                    ALTER TABLE 表名  MODIFY 字段 字段类型 NOT NULL  ;
         唯一约束unique (属于一种index :索引):
                    ALTER TABLE 表名 MODIFY 字段  字段类型  UNIQUE ;
            
          主键约束 primary key(非空且唯一的) 一般和auto_increment(自增长约束)一起使用多一些,  一般设置在非业务字段上(如id)
           字段 字段类型  PRIMARY KEY AUTO_INCREMENT  -- 编号   加入主键约束,加入自增长
-- 通过sql将主键约束删除
            ALTER  table 表名 drop PRIMARY  KEY ;
    修改字段约束为主键约束
           ALTER TABLE 表名 MODIFY 字段  字段类型 PRIMARY KEY  ;
mysql中获取最后一次主键的自增长值
            SELECT LAST_INSERT_ID() ;
外键约束 foreign key:
      CONSTRAINT  -- 声明
     dept_emp_fk -- 外键名称  命名规则:主表名称_从表名称_fk
     FOREIGN KEY (dept_id)   -- 作用在这个dept_id字段上
     REFERENCES dept(id)  -- 关联主表的主键id
加入外键约束:修改和删除是很麻烦,需要先修改或者删除从表数据,然后修改/删除主表数据
-- 数据库的备份和还原
        方式1:图形界面化工具
        备份:选中库名,右键----->BACKUP/Export 备份导出---->
            选中Sql脚本,存储到本地某个磁盘上----->StructureAndData:表的结构和数据都需要备                  还原:先在SqlYog将myee_2203删除了,新建库右键---->Import 导入---->选中执行execute sql 脚本
数据库的备份和还原命令行的方式2
    备份:
        以管理员身份进入dos,不需要登录mysql
                          保存到指定路径上
        mysqldump -uroot -p你的密码  库名 >  磁盘上的路径xx\xx\xx.sql
    
    还原: 进入dos控制台,登录mysql
      先将库删除,新建一个库
      使用这个库 use库名;
      
      加载指定路径的sql脚本
      source 备份的sql脚本路径(D:\EE_2203\day9\code\mysql_01.sql)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值