mysql常见操作

今天无意之间看见一个写数据库比较好的文章就粘下来了。

转载自:https://blog.csdn.net/qq_21397217/article/details/51656783  (各个小知识点)

https://blog.csdn.net/zdwzzu2006/article/details/2298777  (整合小知识点清晰)

https://www.cnblogs.com/dinglinyong/p/6656315.html      (MySQL 的七种 join

主要内容:

  • 启动MySQL服务
  • 使用root用户登陆
  • 查看命令帮助信息
  • 查看授予用户的安全权限
  • 注释
  • 取消正在输入的命令
  • 查看当前含有哪些数据库
  • 连接数据库
  • 查看当前数据库中含有哪些表
  • 显示表属性
  • 显示服务器警告或错误信息
  • 退出数据库
  • 新建数据库
  • 新建数据表
  • 数据类型
  • 插入数据
  • SQL约束
  • MySQL通配符
  • MySQL查询语句关键字顺序
  • SELECT操作
  • 删除数据库
  • 重命名数据表
  • 删除数据表
  • 在表中增加列
  • 删除列
  • 修改列
  • 修改数据类型
  • 修改表中某个值
  • 删除某行记录
  • 为某列建立索引
  • 显示某表的索引
  • 创建视图一种虚拟存在的表
  • 导入将文件中的数据保存进表
  • 导出将表中数据保存到文件中
  • 备份整个数据库
  • 备份整个表
  • 恢复数据库
  • 正则表达式
  • 空白元字符
  • 字符类预定义字符集
  • 匹配多个实例
  • 定位元字符
  • 拼接字段
  • 别名alias
  • MySQL算数操作符
  • SELECT测试
  • SQL函数
  • 常用的文本处理函数
  • 日期和时间处理函数
  • 数值处理函数
  • SQL聚集函数
  • 分组数据
  • SELECT子句顺序
  • 子查询
  • 1、创建基本表
  •     create table <表名> (<列名><数据类型>[列级完整性约束条件]

                                                         [,<列名><数据类型>[列级完整性约束条件]

                                                         .........

                                                         [,<表级完整性约束条件>]);

           2、修改基本表

                 alert  table  <表名>

                                      [add <新列名> <数据类型> [完整性约束]]

                                      [drop <完整性约束名>]

                                      [modify <列名><数据类型>];

              add: 用于向表中增加新列及新列相关的完整性约束条件,新的列增加成功后不带任何数据

              drop:用于删除指定的完整性约束条件

              modify:用于修改原来的列定义,包括修改列名和数据类型,列数据类型修改后可能会丢失原有的数据

     

    alert table student add  Scome date;
    alert 
    table student modify Sage smallint
    ;
    alert 
    table student drop unique(Sname);

             3、SQL中没有提供删除属性列的功能,若需要删除列,必须间接通过select语句来实现,将需要的列的内容复制到另一个表中,再删除原表,然后将新表的名字命名为原表名

            4、删除基本表

                  drop table <表名>

           5、建立与删除索引

                create [unique] [cluster] index <索引名> on <表名> (<列名> [<次序][,<列名>[<次序]].....);

                注:unique:表明此索引的每个索引值只对应惟一的一个记录

                        cluster:表时要建立的索引是聚簇索引,即按某一列建好索引后,硬盘上的数据存储顺序也调整为按这个列的顺序存储,索引的顺序和存储顺序是一致的

                 drop index <索引名>;

     

    create unique index studentIndex on  student (sno);
    drop index studentIndex;

    二、数据查询

           select  [distinct | distinctRow | all]

                        列名[,列名][,....]

                        [into {outfile | dumpfile} '文件名' export_options]

                        [from 表名]

                        [where 查询条件]

                       [group by 列名[, ....]]

                        [having 条件定义]

                       [order by {无符号整数|列名|公式}[asc | desc],...]

                      [limit [偏移量,] 行数]

                      [procedure 过程名称]

                   注:select语句中所有使用的关键词必须精确的以上面的顺序给出 

          如果以降序排列,则在order by中加入关键字desc,升序则加入关键字asc,默认是升序

          having子名能引用任何列或在查询中命名的别名,它最后运用,就在项目被送到客户之前是,没有变化。需要注意,不要对应该在where子句中的项目使用having.

                           limit子名被用来限制select返回的行数,如果给定1个参数,它指出返回行的最大数目;如果给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目,初始行的偏移量是0

    // 返回前5个记录
    select * from table limit 5
    ;

    //
    返回第6到第15个记录
    select * from table limit 5,10;

                        select .... into outfile '文件名' 格式的select语句将选择的行写入一个文件,文件在服务器上被创建,并且不能是已经存在的,且在服务器主机上还必须有file权限以使用这种select

                        distinct,使用了这个关键字后,再执行select语句的结果集中,如果有重复的值,则会在结果集中去掉重复的值而只保留一个值。

    // 选择学生表中所有学生的姓名记录,并且筛选掉重复的记录,将记录保存在名字为name的结果集中,并按学号由大到小排列
    select distinct sname as name, sno from student order by sno desc
    ;

    //
    选择学生表中所有学生的姓名和年龄,并将每个同学的姓名后加上“同学”二字,将每个人的年龄增加1岁,同是计算所有同学年龄的平均值 
    // sum() ---- 求所有数据的总和

    // max() ----求所有数据中的最大值
    // min() -----求所有数据中的最小值
    // count() ---求所有数据的个数
    // avg() ---- 求所有数据的平均值
    select sname, "同学", age+1avg(age) from  student;

    //
    列出学号在1和100之间,并且成绩大于85分的所有姓”赵“同学的所胡记录
    // % ---代表任意字符

    //使用通配符时,前面必须用关键字”like
    select * from student where sname like '
    赵%’ and sno between 1 and 100 and sno in (select sno from student where grade>85);

    //使用学生表、课程表以及学生选课表这3个基本表,列出所有学生的姓名、学号、所选课程的课程名称及该课程的学分
    select sname, sno, cno, credit from student, course, sc where student.sno=sc.sno and sc.cno=course.cno;



    三、数据更新

    1、数据插入

       insert into <表名> [<列名>[,<列名>]....) values (value1, value2,...);

                 如果表中的每一列均有数据插入,则可不用指定任何表名

    2、数据修改

       update <表名> set <列名>=新值 where <条件表达式>

    3、数据删除

               删除指的是删除数据库中的一个记录,而不是删除某一列

               delete from <表名> where <条件表达式>

                       


猜你喜欢

转载自blog.csdn.net/w2blue/article/details/80064045