zoukankan      html  css  js  c++  java
  • Mysql--SQL语句

    一 SQL分类

     SQL是结构化查询语言,专门用来和关系型数据库进行通信的语言

      DML Data Manipulation Language 数据库操纵语言,对数据的写操作

         INSERT   插入数据

         DELETE  删除数据

         UPDATE  更新数据

      DDL Data Definition Language 数据库定义语言 对非数据以外的写操作(数据库、表、索引、存储过程、函数)

         CREATE  创建

         DROP      删除

         ALTER     修改

      DCL Data Control Language 数据库控制语言(例:控制用户的访问权限)

         GRANT 授权

         REVOKE 撤销

      DQL Data Query Language 数据库查询语言

         SELECT 查询

     大小写

      关键字、函数名、列名和索引名不区分大小写

      数据库的名字、表名、别名区分大小写的(因为linux是区分大小写的)

    二 执行SQL语句

     命令行执行  mysql -u用户 -p密码 -e "sql语句"

     SQL文件   mysql -uroot -p < stu.sql

            mysql -uroot -p -D db1 < stu.sql  -D 指定库

    三 函数

      database()  select database(); #查看当前所在的库

      user()    select user(); #查看当前登陆的用户

      password()         #给字符串加密,一般用于修改密码

     聚合函数

      sum()    select sum(age) from t1;   #显示age字段的和
      avg()      select avg(age) from t1;   #求age字段的平均值
      max()     select max(age) from t1;   #最大值
      min()      select min(age) from t1;    #最小值
      count()      select sex,count(sex) from t1 group by sex;   #统计sex字段每种有多少条记录 
             select count(*) from pass;            # 统计表中有多少条非空的记录

     时间函数

      curtime()    select curtime();      查看当前时间

      curdate()   select curdate();      查看当前日期

      now() sysdate()            查看系统时间

     连接函数

      concat()    select concat(username,uid) from pass;

     转换成小写 lower()

      update pass set username='ROOT' where username='root';

      select lower(username) from pass;

     转换成大写 upper()

      select upper(username) from pass;

     求长度

      select username,length(username) from pass;

    四 其他命令

     status;         查看服务器状态

     show processlist;  查看连接数

     show variables;     查看服务器设置

    五 基本SQL语句

    分类 命令 描述
    创建 create database db; 创建库
      create table stu_info(id int(11),name char(50)); 创建表(一定要有一个字段,类型,宽度)
         
    删除 drop database db; 删除库
      drop table stu_info; 删除表
      truncate stu_info; 清空表/初始化
      alter table stu_info drop phone; 删除字段
      delete from stu_info where id=2 && name='lucy'; 删除记录
      delete from mysql.user where user=' '; 删除匿名用户
      delete from score where id is null; 删除没有值
         
    切换 use wff; 进入wff库(相当于cd)
         
    查看 show databases; 查看所有库
      show create database wff; 查看库的创建属性
      show tables; 查看所有表
      show create table stu_infoG 查看表的创建属性
      show warnings; 查看警告信息
      desc stu_info; 查看表结构
      select * from stu_info; 查看表的所有字段的所有记录
      select id,math form score; 查看具体字段的记录
      select * from mysql.user; 查看另一个表的内容
      select host,user,password from mysql.user; 查看另一个表的user host
      select database(); 查看当前所在的库
      show variables like '%port%'; 查看端口
      show processlist; 查看进程
      status;/show status; 状态
      select user(); 查看当前登录的用户
         
    插入 alter table stu_info add sex char(6); 添加字段(默认末行)
      alter table stu_info add age int first; 添加字段在首行
      alter table stu_info add age int after name; 添加字段在某字段后面
      insert into stu_info set id=2,name='tom'; 添加记录(字符串需加'')
      insert into stu_info values(3,'jin'),(4,'sfe'); 添加记录(数值一一对应)
      insert into stu_info (name) values ('guer'); 添加记录到具体字段
         
    修改 update stu_info set age=18 where id=2; 修改age定位id=2
      update stu_info set age=18 where id=2 and name='lucy'; 精确定位(and && ||or)
         
    算术运算 select 3+4; 直接进行算术运算
      select id,a+b+c from score order by a+b+c desc;

    计算总值(a+b+c)

      select id,a+b+c as total from score order by total desc; 设置别名用于简写
      select id,chinese form score where chinese=(select max(chinese) from score); 显示最大值
         
    统计 select count(id) from score; 统计id个数
      select sex,count(sex) from stu_info group by sex; 分类统计sex
      select sum(english) from score; 统计数值
      select id,chinese from score where chinese >= 90; 统计90以上的id
         
    排序 select id,math form score order by math; 从小到大排序
      select id,math form score order by math desc; 从大到小排序
      select id,math form score order by math desc limit 3; 前三名
         
    平均值 select sum(english)/4 from score; 求平均数
      select avg(english) from score; avg平均函数
         
    匹配 select * from stu_info where name like '%m%'; 包含有m的字段 %--所有
      select * from stu_info where name like 't_m'; _单个字符
      select * from stu_info where name regexp 'm$'; 使用正则
         
    多表查询 select t1.name,t1.sex,t2.math from t1 join t2 on t1.name=t2.name;  
      select a.name,b.sex,t2.math from t1 a join t2 b on a.name=b.name; 设置别名
      select t2.name,t1.sex,t2.math from t1 right join t2 on t1.name=t2.name; 右表显示所有
      select t1.name,t1.sex,t2.math from t1 left join t2 on t1.name=t2.name; 左表显示所有
      select stu.name,score.shell+linux+mysql total from stu join score on stu.id=score.stu_id order by total desc limit 3;  
  • 相关阅读:
    人到中年,奋斗了十几年结果却是负债累累,还要继续创业吗?
    迁移学习简述
    迁移学习简述
    关于mysql数据库的表概况 ,查看表状态
    关于mysql数据库的表概况 ,查看表状态
    关于mysql数据库的表概况 ,查看表状态
    关于mysql数据库的表概况 ,查看表状态
    一个简易的SocketIM
    一个简易的SocketIM
    一个简易的SocketIM
  • 原文地址:https://www.cnblogs.com/Xinenhui/p/14123556.html
Copyright © 2011-2022 走看看