SQL语言

SQL语言分类


SQL语言(即结构化查询语言)主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。

  • DDL语句,数据库定义语句:数据库、表、视图、索引、存储过程,例如CREATE、DROP、ALTER等等
  • DML语句,数据库操纵语句:插入数据INSERT、删除数据DELETE、更新数据UPDATE
  • DQL语句,数据库查询语言:查询数据SELECT
  • DCL语句,数据库控制语句:例如控制用户的访问权限GRANT、REVOKE

名词解释:
数据库服务器:运行着数据库应用程序的设备——DELL R760+CENTOS+MySQL
                        硬件+系统软件+MySQL软件
数据库:默认数据库——
             表(excel)的管理单元
表:记录的管理单元
记录(行):信息的载体,字段的管理单元
字段(列):字段名,字段类型(长度),字段约束组成
类型:
约束:
图示:


DDL语句:

DDL——库:
定义库:
    创建数据库——语法:

CREATE DATABASE 数据库名;

    数据库名要求:区分大小写
                        唯一性 
                        不能使用关键词,如create等
                        不能单独使用数字或者特殊字符
                        正常的,拼音或者单词都可以
    查看数据库——语法:

show databases;

 选择/进入数据库   

use   数据库名;

删除库:

drop  database 数据库名;


1.数值类型:
    a.整数类型int        
    b.浮点数类型float——小数
2.字符串类型:
    a.字符系列char和varchar
    b.枚举类型enum
    c.集合类型set
3.时间和日期类型:
    a.年year
    b.日期date
    c.时间time
    d.日期和时间datetime

 


DDL——表:
定义表:
表是数据库存储数据的基本单位,由若干个字段(列)组成,主要用来存储数据记录(行)。
    创建数据表——语法

CREATE  TABLE   表名{字段名1  数据类型1,字段名2  数据类型2,.......};        //创建数据表
例如:create table  stu_xinxi(id int,name varchar(20),sex enum('m','f'),age int);            //enum为枚举,只能选择m或者f的yi'z

    查看所有表名

show  tables;

    插入数据

insert  into   表名   values(字段1,字段2,.........);
例如:insert  into  stu_xinxi  values(1,"zhangsan");                 //插入的数据如果是字符类型要用引号括起来

     删除表

drop  table   表名;

    查看表结构

desc 表名;



DML语句

使用DML语句来实现对数据的操作
插入数据INSERT:

完整插入数据——语法:
insert into  表名   vales(值1,值2,值3,................);
部分插入数据——语法:
insert  into    表名(列名,列名) values(值1,值2);

更新数据UPDATE:

语法:
UPDATE  表名  SET 列名=值   WHERE   CONDITION;
例如:update  stu_xinxi   set   name="hzr" where   id=1;
修改数据库root管理员密码
update  mysql.user   set  authentication_string=password("H@@@@@@@")   where  user="root";             //密码不能用明文,所以用password函数进行加密成密文
flush privileges;       //更新数据库配置文件

删除数据DELETE

DELETE FROM 表名 WHERE  CONDITION;



DQL语句

使用DQL语句来实现数据的查询。select查询语句
查询数据SELECT:

简单查询:
select *  from  表名;     //查询表内所有列的数据
select   列1,列2,列3     from   表名;     // 查询表内列1,列2,列3的数据
通过四则运算查询:
select   name,salary,salary*14  from    employee;                //查询employee表中员工的年薪(salary是月薪)
条件查询:
单条件查询where:select  列名  from   表名  where  条件;
多条件查询and/or:select  列名  from   表名  where  条件1 and(or)   条件2;
关键字between   在什么之间:select  列名  from   表名  where 列名  between  ...  and  ...;         
关键字IN集合查询:select  列名  from   表名  where  列名(not) in  (集合内容);
关键字like模糊查询:select   *    from    表名   where   列名   like   ‘al%'      //%代表任意多个字符,_代表一个任意字符
排序查询:
select  *  from  表名  order  by 用来进行排序的列名   ASC;//升序排列
select  *  from  表名  order  by 用来进行排序的列名  DESC;//降序排列
select  *  from  表名  order  by 用来进行排序的列名  DESC  limit  3; //排序最高的前3位



 
DCL语句:

权限级别:

1.Global  level:所有库,所有表的权限;
2.Database level:某个数据库的所有表的权限;
3.Table level:库中某个表的权限;
4.Column level:表中的某个字段的权限。


mysql用户管理

1.创建用户:使用root用户登录创建

create   user  用户名@登录点   identified  by  '密码';
例:create  user  zhangsan@'localhost'   identified  by  'zhangsan123';

2.删除用户

drop  user 用户名@登陆点;
例:drop  user  'zhangsan'@'localhost';

3.修改用户密码 

root修改自己密码:

set  password=password('新密码');   //修改密码后要刷新数据库配置文件

丢失root用户密码:通过破解的方式来登陆系统,修改密码,原理是是系统启动时不加载密码文件
1.修改mysql启动设置

vim  /etc/my.cnf
[mysqld]
skip-grant-tables

2.无密码登录

重启数据库程序——systemctl  restart  mysqld
无密码登录——mysql -uroot
更新自己的密码——update  mysql.user   set  authentication_string=password"H@@@@@@@"   where  user="root" and host='localhost';
刷新缓存——flush privileges;

3.再次修改mysql启动设置,把skip-grant-tables注释掉,再次重启数据库。
4.登录MySQL

mysql  -P 3306 -u root  -p 123 mysql  -e'show tables'
注释:
-P  MySQL服务器端口             默认3306
-u  指定用户名           默认root
-p   指定登陆密码          默认空密码
后边那个mysql为指定登录mysql数据库
-e    接SQL语句
-h  (host)指定要远程登陆的数据库服务器地址
5.
在执行 alter user 'root'@'localhost' identified by '密码'


mysql权限原理:

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

权限列表:all——所有权限(不包括授权权限)
                 select、update——查询更新
数据库.表名:.——所有库下的所有表
                     web.*——web库下的所有表 
                     例:grant  select(id),insert(name,age) on mydb.mytbl  to  'user8'@'localhost'  identified by 'Qianfeng@123';
with_option参数:grant option——授权选项

 

mysql权限示例:

1.赋予权限

授予admin3用户对bbs库所有表,具有所有的权限(不包含授权)

grant all on bbs.*  to 'admin3'@'%' identified by 'QianFeng@123';

授权完后可以自己试着登录测试一下
2.回收权限

查看权限——查看自己的权限:show grants;
        ——查看别人的权限:show grants for 用户名@'客户端主机';
回收权限revoke——语法:revoke 权限列表  on   数据库名 from  用户名@'客户端主机';
示例:revoke all privileges on bbs.* from admin3@'%';   //回收所有权限
删除用户的版本问题:5.6版本先删除权限,再删除用户
                   5.7版本直接删除用户即可

 

posted @   我是小白一枚  阅读(280)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示