MySql数据库零散补充知识点

1、创建表格时

create table test(
   id int(4) zerofill -- zerofill 零填充
);

2、timestamp

create table test(
    id int,
    data1 timestamp
);

    timestamp为时间戳,建表时在最后添加一个timestamp字段,每更新一条记录时,系统会自动加上该记录更新时的时间

3、主键自增长

CREATE TABLE test(
	    id INT PRIMARY KEY AUTO_INCREMENT,-- 主键自增
	    NAME VARCHAR(20) ,
	    gender VARCHAR(2) DEFAULT '男'
);

4、truncate

  删除带有自增的字段数据后,再次插入数据时会按照删除之前的数据排序自增,即会出现自增数据跳跃的情况,可用truncate来删除数据,这样可避免自增跳跃,但是会删除整张表格的所有数据且无法恢复

5、外键约束   

CREATE TABLE empe(
    id INT PRIMARY KEY AUTO_INCREMENT,-- 主键自增
    NAME VARCHAR(20) ,
    deptID int,
    constraint empe_dept_fk foreign key empe(deptID) references dept(id) -- 外键约束
);
CREATE TABLE dept(
    id INT PRIMARY KEY AUTO_INCREMENT,-- 主键自增
    depte varchar(20)
);

    外键约束:constraint+外键名+foreign key+从表(外键约束字段名)+references+主表(参考字段名)

                    constraint empe_dept_fk foreign key empe(deptID) references dept(id)

     此处外键约束作用:在给empe表增加数据时,deptID字段的值 必须在dept表中id字段的取值范围内,否则报错

6、多表等值联查

        假设有三张表 ax,bx,cx(字段随意)

        select a.name,b.age,c.sex from ax a join bx b on a.id = b.id join cx c on b.name = c.id;

7、级联

              级联删除:on delete cascade

              级联修改:on update cascade

            作用:操作主表的参考字段数据时,从表的外键字段数据自动随之改变

8、数据库设计三大范式

    1)要求表的每一个字段,必须是独立的不可分割的单元

    2)在第一范式的基础上,要求表的除主键以外的其他字段都要和主键有依赖关系。

           例如创建员工表,表中除主键以外,其他所有字段应当都与员工直接相关

    3)在第二范式的基础上,要求除主键以外,其他所有字段只能和主键有直接决定的依赖关系

    以上三种范式最少满足前两个范式要求,第三范式则根据实际需要, 分表可以节省储存空间降低冗余,但同时也会降低相应的查询效率,因此在实际设计中,则要根据需求来对存储空间和查询效率进行取舍

9、MySql数据库三种变量

     1)全局变量

                mysql内置的变量随着数据库的启动,全局变量即开始存在内存中,当数据库关闭时,全局变量才会消失。

                查看某个全局变量:select @@变量名

                    修改某个全局变量:set @@变量名 = 值

    2)会话变量

                会话变量只在某次登录的会话中有效,退出连接之后,会话变量就失效  

                    查看某个会话变量:select @变量名

                    修改某个会话变量:set @变量名 = 值

    3)局部变量

                局部变量在存储过程中定义的变量。存储过程结束,局部变量失效    

                    查看某个局部变量:select 变量名

                    修改某个局部变量:set 变量名 = 值

                    定义某个局部变量:declare 变量名 数据类型 default 初始值


        一般使用会话变量和局部变量

10、MySql权限问题

    1)mysql 数据库:存放mysql配置信息,包括用户信息

            use mysql;

    2)用户表

            select * from user;

    3)加密函数(md5算法-单向加密)

            select password('root');

    4)修改用户密码

            update user set password =password('新密码') where user = 'root';

    5)   分配权限给不同的用户

             grant 功能 on 库名.表名 to '用户名'@'localhost' identified by '密码' ;

            例如分配一个查询功能给 新的用户 hei  密码为 123,只能查询 数据库中的student表 

            grant select on hf2.student to 'hei'@'localhost' identified by '123';

    6)取消已分配的权限

            revoke select on hf2.studnet from 'hei'@'localhost' identified by '123';

11、备份与恢复

            数据库的备份与恢复必须在进入数据库之前进行,在dos窗口中执行相应命令

            备份

            mysqldump -u root -p 数据库名 > d:/数据库名.sql

            恢复

            mysql -u root -p 数据库名>d:/数据库名.sql

            


猜你喜欢

转载自blog.csdn.net/weixin_42271016/article/details/80834347
今日推荐