MySQL基础篇(DDL,DML,DQL,DCL详情)

DDL:(定义库)

创建数据库:create database 数据库名;

 数据库名的要求:区分大小写,唯一性,不能使用关键字,如create,select,不能数字或特殊符号

查看所有数据库:show databases;

选择进入数据库:use 数据库名;

                             select database(); 调用函数,查询当前数据库 

删除数据库:drop database 数据名;

系统中的位置:/var/lib/mysql   //数据库的实体

数据类型:

        1.数值类型:整数类型 int , 浮点数类型float(小数)

        2.字符串类型

        3.时间和日期类型

创表:创建   表格  表名tl  (列名id   类型int)

          create table   tl        (id            int);

 

查看所有表名:show  tables; 

 

删除表:drop table tl;

创表格:create table t2 (id int,name varchar(20)); 

              创建   表格  表名tl  (列名id   类型int, 第二列名 字符类型(长度))

描述表t2:desc t2;

DML:通过SQL语句中的DML语言来实现数据的操作(insert,update,delete)

一、插入:1.完整插入:语法:insert into 表名 values(值1,值2.....值n);

                                       操作:insert into t2 values(1,"zhangsan");

                2.部分插入:语法:insert into 表名(列名)values(值1);

                                     操作:insert into t2(name) values("lisi");

 二、更新:update:语法:update 表名 set 列名=值 where condition;

                               操作:update t2 set name="wangwu" where id=1;

 三、删除:delete:语法:delete from 表名 where condition;

                              操作:delete from t2 where id=1;

DQL:目的:在MySQL管理软件中,可以通过SQL语句中DQL语言来实现数据的查询:select查询

在teacher下创建student表

MySQL查询:一、简单查询:select * from 表名

                              查部分列:select 列1,列2,列3 from 表名

                                四则运算查询:select name,age,age*3 from student; 

二、条件查询:1.单条件查询:查询性别为男的学生

                          2. 多条件查询:查询性别为女且年龄大于20的学生(and)加了一些学生一起查询

                                                     查询所有学生,并且年龄是18或20的学生(or)

                            3.关键字BETWEEN AND在什么之间

                                        查询年龄在15-20岁之间的学生;

                                       不在18-20岁之间的学生;使用NOT

                              4.关键字in集合查询:年龄可能18,可能20,也可能16

                             5.关键字like模糊查询,好像有个学生是li开头 ;

                                “%”代表多个任意字符,“_”代表一个任意字符

 三、查询排序:列如:以年龄升序排列

                                     select * from 表名 order by 工资 列名 ASC;

                                      以年龄降序排列

                                       select * from 表名 order by 工资 列名 DESC;

 

                                      年龄最小的两个人 

DCL:

        一、权限级别:1.Global level:所有库,所有表的权限

                                  2.Database level:某个数据库中的所有表的权限

                                  3.Table level:库中的某个表的权限

                                  4.Column level:表中某个字段的权限

        二、MySQL用户管理:1.创建用户

                                                create user 'zhangsan'@'localhost' identified by 'Zhangsan@123';

                                                创建   用户  ‘用户名称 ’                     身份认证        ‘用户密码’

                                                @:分隔符

                                              ‘localhost’:允许localhost登录,‘%’允许除localhost以外其他主机登录 

                                         2.删除用户:drop user 'zhangsan'@'localhost';

                                        3.修改用户密码:(1)root修改自己的密码:

                                                                      set Password=Password('new_Password');

                                                                       flush privileges;//刷新权限

                                                             mysqladmin -uroot -P'Zz@123456' Password 'Ll@123456'

 

                                                                  (2)丢失root用户密码:1* 修改MySQL启动配置

                                                                                                              vim /etc/my.cnf

                                                                                                               [mysqld]

         #skip-grant-tables//有的去掉注释,没有的加上,之后可以不需要密码,直接进入数据库

                                                                                                      2* 重启数据库,无密码登录

                                                                          (1*)重启数据库:systemctl restart mysqld

                                                                          (2*)无密码登录:mysql -uroot                                                                                                            (3*)修改密码:

update mysql.user set authentication_string=password('Zz@123456') where user='root' and host='localhost';

                                                                          (4*)刷新权限:flush privileges;

                                                 3*退出数据库,进入vim /etc/my.cnf,注释 #skip-grant-tables

        三、mysql权限管理

grant 权限列表  on 库名.表名 to '用户名'@'客户端主机' [identified by '密码'  with option 参数];

权限列表:all:所有权限(不包括授权权限)

                   select ,update 授予查询更新权限

数据库.表名:*.* //所有库下的所有库

                       web.*  //web库下的所有表

                       web.stu_info   //web库下的stu_info表

grant select(id),insert(name,sex,age) on teacher.student to 'zhangsan'@'localhost' identified by 'ZhangSan@123';

        四、MySQL权限示例:1.赋予权限:

                                                (1)授予目标:授予zhangsan对teacher库下所有表,具有所有权限

grant all on teacher.* to 'zhangsan'@'localhost' identified by 'ZhangSan@123';

 

                                         2.回收权限:

                                                (1)查看权限:查看自己权限:show grants; 

                                                    查看别人权限:show grants for 'zhangsan'@'localhost';

                                                 (2)回收Revoke权限:

                                                    语法:revoke 权限列表 on 数据库名 from ‘用户名’@‘客户端主机’

                                                                revoke all on teacher.* from 'zhangsan'@'localhost';

 删除用户的版本问题:5.6版本以前,先revoke all privilege 再 drop user

                                     5.7之后,直接drop user

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值